Home
last modified time | relevance | path

Searched refs:substitution (Results 1 - 25 of 31) sorted by relevance

12

/arkcompiler/ets_frontend/ets2panda/checker/ets/
H A Dfunction_helpers.h72 ETSChecker *checker, Substitution *substitution) in InferUntilFail()
82 while (anyChange && substitution->size() < sigParams.size()) { in InferUntilFail()
106 if (checker->EnhanceSubstitutionForType(sigInfo->typeParams, paramType, argType, substitution)) { in InferUntilFail()
109 if (lastSubsititutionSize != substitution->size()) { in InferUntilFail()
110 lastSubsititutionSize = substitution->size(); in InferUntilFail()
120 Substitution *substitution = checker->NewSubstitution(); in BuildImplicitSubstitutionForArguments() local
124 InferUntilFail(signature, arguments, checker, substitution); in BuildImplicitSubstitutionForArguments()
126 if (substitution->size() != sigParams.size()) { in BuildImplicitSubstitutionForArguments()
129 if (auto it = substitution->find(newTypeParam); it != substitution in BuildImplicitSubstitutionForArguments()
71 InferUntilFail(Signature const *const signature, const ArenaVector<ir::Expression *> &arguments, ETSChecker *checker, Substitution *substitution) InferUntilFail() argument
159 auto *substitution = checker->NewSubstitution(); BuildExplicitSubstitutionForArguments() local
206 const Substitution *substitution = MaybeSubstituteTypeParameters() local
[all...]
H A DtypeRelationContext.cpp114 const Substitution *substitution, lexer::SourcePosition pos) in CheckInstantiationConstraints()
123 auto typeArg = typeParam->Substitute(relation, substitution); in CheckInstantiationConstraints()
131 auto constraint = typeParam->GetConstraintType()->Substitute(relation, substitution); in CheckInstantiationConstraints()
143 for (auto const &[typeParams, substitution, pos] : records) { in TryCheckConstraints()
144 CheckInstantiationConstraints(checker_, *typeParams, substitution, pos); in TryCheckConstraints()
160 auto *substitution = checker_->NewSubstitution(); in InstantiateType() local
165 ETSChecker::EmplaceSubstituted(substitution, typeParams[idx]->AsETSTypeParameter(), typeArgTypes[idx]); in InstantiateType()
170 checker_->PendingConstraintCheckRecords().push_back({&typeParams, substitution, pos}); in InstantiateType()
173 result_ = type->Substitute(checker_->Relation(), substitution)->AsETSObjectType(); in InstantiateType()
113 CheckInstantiationConstraints(ETSChecker *checker, ArenaVector<Type *> const &typeParams, const Substitution *substitution, lexer::SourcePosition pos) CheckInstantiationConstraints() argument
H A Dfunction.cpp65 const Substitution *substitution) in IsCompatibleTypeArgument()
71 auto *constraint = typeParam->GetConstraintType()->Substitute(Relation(), substitution); in IsCompatibleTypeArgument()
94 const size_t index, Substitution *substitution, Type *objectParam) in InsertTypeIntoSubstitution()
98 IsCompatibleTypeArgument(typeParams[index]->AsETSTypeParameter(), objectParam, substitution) && in InsertTypeIntoSubstitution()
100 substitution->emplace(typeParams[index]->AsETSTypeParameter(), objectParam); in InsertTypeIntoSubstitution()
108 const Type *paramType, Substitution *substitution) in EnhanceSubstitutionForGenericType()
140 res = InsertTypeIntoSubstitution(typeParams, paramTypeArgs[j], j, substitution, objectParams[j]); in EnhanceSubstitutionForGenericType()
143 argType->AsETSObjectType()->TypeArguments()[j], substitution); in EnhanceSubstitutionForGenericType()
151 Type *argumentType, Substitution *substitution) in EnhanceSubstitutionForReadonly()
154 substitution); in EnhanceSubstitutionForReadonly()
64 IsCompatibleTypeArgument(ETSTypeParameter *typeParam, Type *typeArgument, const Substitution *substitution) IsCompatibleTypeArgument() argument
93 InsertTypeIntoSubstitution(const ArenaVector<Type *> &typeParams, const Type *typeParam, const size_t index, Substitution *substitution, Type *objectParam) InsertTypeIntoSubstitution() argument
107 EnhanceSubstitutionForGenericType(const ArenaVector<Type *> &typeParams, const Type *argType, const Type *paramType, Substitution *substitution) EnhanceSubstitutionForGenericType() argument
150 EnhanceSubstitutionForReadonly(const ArenaVector<Type *> &typeParams, ETSReadonlyType *paramType, Type *argumentType, Substitution *substitution) EnhanceSubstitutionForReadonly() argument
158 EnhanceSubstitutionForType(const ArenaVector<Type *> &typeParams, Type *paramType, Type *argumentType, Substitution *substitution) EnhanceSubstitutionForType() argument
199 EnhanceSubstitutionForUnion(const ArenaVector<Type *> &typeParams, ETSUnionType *paramUn, Type *argumentType, Substitution *substitution) EnhanceSubstitutionForUnion() argument
239 EnhanceSubstitutionForObject(const ArenaVector<Type *> &typeParams, ETSObjectType *paramType, Type *argumentType, Substitution *substitution) EnhanceSubstitutionForObject() argument
289 EnhanceSubstitutionForArray(const ArenaVector<Type *> &typeParams, ETSArrayType *const paramType, Type *const argumentType, Substitution *const substitution) EnhanceSubstitutionForArray() argument
1504 auto *substitution = NewSubstitution(); AdjustForTypeParameters() local
[all...]
H A DtypeCreation.cpp660 auto *substitution = NewSubstitution(); in FunctionTypeToFunctionalInterfaceType() local
661 substitution->emplace(functionN->TypeArguments()[0]->AsETSTypeParameter(), MaybePromotedBuiltinType(retType)); in FunctionTypeToFunctionalInterfaceType()
662 return functionN->Substitute(Relation(), substitution); in FunctionTypeToFunctionalInterfaceType()
672 auto *substitution = NewSubstitution(); in FunctionTypeToFunctionalInterfaceType() local
675 substitution->emplace(funcIface->TypeArguments()[i]->AsETSTypeParameter(), in FunctionTypeToFunctionalInterfaceType()
678 substitution->emplace(funcIface->TypeArguments()[signature->Params().size()]->AsETSTypeParameter(), in FunctionTypeToFunctionalInterfaceType()
680 return funcIface->Substitute(Relation(), substitution); in FunctionTypeToFunctionalInterfaceType()
/arkcompiler/ets_frontend/ets2panda/checker/types/ets/
H A DetsTypeParameter.cpp106 Type *ETSTypeParameter::Substitute([[maybe_unused]] TypeRelation *relation, const Substitution *substitution) in Substitute() argument
108 if (substitution == nullptr || substitution->empty()) { in Substitute()
111 if (auto repl = substitution->find(GetOriginal()); repl != substitution->end()) { in Substitute()
H A DetsFunctionType.cpp99 auto *substitution = relation->GetChecker()->AsETSChecker()->NewSubstitution(); in ProcessSignatures() local
104 target->GetSignatureInfo()->params[ix]->TsType(), substitution); in ProcessSignatures()
109 substitution); in ProcessSignatures()
114 it = it->Substitute(relation, substitution); in ProcessSignatures()
193 ETSFunctionType *ETSFunctionType::Substitute(TypeRelation *relation, const Substitution *substitution) in Substitute() argument
195 if (substitution == nullptr || substitution->empty()) { in Substitute()
205 auto *newSig = sig->Substitute(relation, substitution); in Substitute()
H A DetsArrayType.cpp152 Type *ETSArrayType::Substitute(TypeRelation *relation, const Substitution *substitution) in Substitute() argument
154 if (substitution == nullptr || substitution->empty()) { in Substitute()
158 auto *resultElt = element_->Substitute(relation, substitution); in Substitute()
H A DetsObjectType.cpp842 static Type *SubstituteVariableType(TypeRelation *relation, const Substitution *substitution, Type *const varType) in SubstituteVariableType() argument
844 auto *substitutedType = varType->Substitute(relation, substitution); in SubstituteVariableType()
854 const Substitution *substitution) in CopyPropertyWithTypeArguments()
858 auto *const copiedPropType = SubstituteVariableType(relation, substitution, varType); in CopyPropertyWithTypeArguments()
879 const Substitution *const substitution) in SubstituteTypeArgs()
885 auto *const newArg = arg->Substitute(relation, substitution); in SubstituteTypeArgs()
958 ETSObjectType *ETSObjectType::Substitute(TypeRelation *relation, const Substitution *substitution, bool cache) in Substitute() argument
960 if (substitution == nullptr || substitution->empty()) { in Substitute()
968 const bool anyChange = SubstituteTypeArgs(relation, newTypeArgs, substitution); in Substitute()
853 CopyPropertyWithTypeArguments(varbinder::LocalVariable *prop, TypeRelation *relation, const Substitution *substitution) CopyPropertyWithTypeArguments() argument
878 SubstituteTypeArgs(TypeRelation *const relation, ArenaVector<Type *> &newTypeArgs, const Substitution *const substitution) SubstituteTypeArgs() argument
1008 Substitute(TypeRelation *relation, const Substitution *substitution) Substitute() argument
1020 auto *substitution = checker->NewSubstitution(); SubstituteArguments() local
[all...]
H A DetsTupleType.cpp140 Type *ETSTupleType::Substitute(TypeRelation *relation, const Substitution *substitution) in Substitute() argument
146 newTypeList.emplace_back(tupleTypeListElement->Substitute(relation, substitution)); in Substitute()
149 auto *newSpreadType = spreadType_ == nullptr ? nullptr : spreadType_->Substitute(relation, substitution); in Substitute()
H A DetsReadonlyType.cpp92 Type *ETSReadonlyType::Substitute([[maybe_unused]] TypeRelation *relation, const Substitution *substitution) in Substitute() argument
94 auto *substituted = GetUnderlying()->Substitute(relation, substitution); in Substitute()
H A DetsNonNullishType.cpp88 Type *ETSNonNullishType::Substitute([[maybe_unused]] TypeRelation *relation, const Substitution *substitution) in Substitute() argument
90 auto *substituted = GetUnderlying()->Substitute(relation, substitution); in Substitute()
H A DetsReadonlyType.h41 Type *Substitute(TypeRelation *relation, const Substitution *substitution) override;
H A DetsArrayType.h63 Type *Substitute(TypeRelation *relation, const Substitution *substitution) override;
H A DetsNonNullishType.h40 Type *Substitute(TypeRelation *relation, const Substitution *substitution) override;
H A DetsTypeParameter.h74 Type *Substitute(TypeRelation *relation, const Substitution *substitution) override;
H A DetsObjectType.h387 ETSObjectType *Substitute(TypeRelation *relation, const Substitution *substitution) override;
388 ETSObjectType *Substitute(TypeRelation *relation, const Substitution *substitution, bool cache);
469 bool SubstituteTypeArgs(TypeRelation *relation, ArenaVector<Type *> &newTypeArgs, const Substitution *substitution);
H A DetsTupleType.h88 Type *Substitute(TypeRelation *relation, const Substitution *substitution) override;
H A DetsFunctionType.h126 ETSFunctionType *Substitute(TypeRelation *relation, const Substitution *substitution) override;
H A DetsUnionType.h42 Type *Substitute(TypeRelation *relation, const Substitution *substitution) override;
/arkcompiler/ets_frontend/ets2panda/compiler/lowering/ets/
H A DlambdaLowering.cpp44 checker::Substitution *substitution = nullptr; member
51 checker::Substitution *substitution = nullptr; member
103 auto *substitution = checker->NewSubstitution(); in CloneTypeParams() local
125 substitution->emplace(oldTypeParam, newTypeParam); in CloneTypeParams()
132 auto *newConstraint = oldConstraint->Substitute(checker->Relation(), substitution); in CloneTypeParams()
138 auto *newDefault = oldDefault->Substitute(checker->Relation(), substitution); in CloneTypeParams()
149 return {newIrTypeParams, substitution}; in CloneTypeParams()
166 auto *newType = capturedVar->TsType()->Substitute(checker->Relation(), calleeParameterInfo.substitution); in CreateLambdaCalleeParameters()
188 auto *newParamType = oldParamType->Substitute(checker->Relation(), calleeParameterInfo.substitution); in CreateLambdaCalleeParameters()
207 checker::Substitution *substitution, in ProcessCalleeMethodBody()
206 ProcessCalleeMethodBody(ir::AstNode *body, checker::ETSChecker *checker, varbinder::Scope *paramScope, checker::Substitution *substitution, ArenaMap<varbinder::Variable *, varbinder::Variable *> const &varMap) ProcessCalleeMethodBody() argument
340 auto *substitution = subst0; // NOTE(gogabr): needed to capture in a lambda later. CreateCalleeMethod() local
346 CalleeParameterInfo cpi {lambda, *info->capturedVars, paramScope, substitution, limit}; CreateCalleeMethod() local
539 CreateLambdaClassFields(public_lib::Context *ctx, ir::ClassDefinition *classDefinition, LambdaInfo const *info, checker::Substitution *substitution) CreateLambdaClassFields() argument
564 CreateLambdaClassConstructor(public_lib::Context *ctx, ir::ClassDefinition *classDefinition, LambdaInfo const *info, checker::Substitution *substitution) CreateLambdaClassConstructor() argument
726 BuildLambdaClass(public_lib::Context *ctx, ArenaVector<checker::Signature *> &lambdaSigs, checker::Substitution *substitution, ArenaVector<checker::Type *> &funcInterfaces) BuildLambdaClass() argument
758 auto *substitution = subst0; // NOTE(gogabr): needed to capture in a lambda later. CreateLambdaClass() local
[all...]
/arkcompiler/ets_frontend/ets2panda/checker/types/
H A Dsignature.cpp27 Signature *Signature::Substitute(TypeRelation *relation, const Substitution *substitution) in Substitute() argument
29 if (substitution == nullptr || substitution->empty()) { in Substitute()
39 auto *newTparam = tparam->Substitute(relation, substitution); in Substitute()
48 auto *newParamType = param->TsType()->Substitute(relation, substitution); in Substitute()
58 auto *newRestType = signatureInfo_->restVar->TsType()->Substitute(relation, substitution); in Substitute()
70 auto *newReturnType = returnType_->Substitute(relation, substitution); in Substitute()
/arkcompiler/ets_frontend/ets2panda/checker/
H A DETSAnalyzerHelpers.h70 Substitution *substitution, size_t optionalParameterIndex);
72 ETSObjectType *genericInterfaceType, Substitution *substitution);
H A DETSAnalyzerHelpers.cpp699 Substitution *substitution, size_t optionalParameterIndex) in CreateOptionalSignaturesForFunctionalType()
706 substitution, genericInterfaceType->TypeArguments()[i]->AsETSTypeParameter()->GetOriginal(), in CreateOptionalSignaturesForFunctionalType()
713 substitution, genericInterfaceType->TypeArguments()[i]->AsETSTypeParameter()->GetOriginal(), in CreateOptionalSignaturesForFunctionalType()
718 substitution, in CreateOptionalSignaturesForFunctionalType()
724 return genericInterfaceType->Substitute(checker->Relation(), substitution)->AsETSObjectType(); in CreateOptionalSignaturesForFunctionalType()
728 ETSObjectType *genericInterfaceType, Substitution *substitution) in CreateInterfaceTypeForETSFunctionType()
734 substitution, genericInterfaceType->TypeArguments()[i]->AsETSTypeParameter()->GetOriginal(), in CreateInterfaceTypeForETSFunctionType()
741 substitution, genericInterfaceType->TypeArguments()[i]->AsETSTypeParameter()->GetOriginal(), in CreateInterfaceTypeForETSFunctionType()
743 return genericInterfaceType->Substitute(checker->Relation(), substitution)->AsETSObjectType(); in CreateInterfaceTypeForETSFunctionType()
697 CreateOptionalSignaturesForFunctionalType(ETSChecker *checker, ir::ETSFunctionType *node, ETSObjectType *genericInterfaceType, Substitution *substitution, size_t optionalParameterIndex) CreateOptionalSignaturesForFunctionalType() argument
727 CreateInterfaceTypeForETSFunctionType(ETSChecker *checker, ir::ETSFunctionType *node, ETSObjectType *genericInterfaceType, Substitution *substitution) CreateInterfaceTypeForETSFunctionType() argument
H A DETSchecker.cpp504 auto *substitution = NewSubstitution(); in GlobalBuiltinBoxType() local
505 substitution->emplace(base->TypeArguments()[0]->AsETSTypeParameter(), contents); in GlobalBuiltinBoxType()
506 return base->Substitute(Relation(), substitution); in GlobalBuiltinBoxType()
H A DETSchecker.h363 bool IsCompatibleTypeArgument(ETSTypeParameter *typeParam, Type *typeArgument, const Substitution *substitution);
372 static void EmplaceSubstituted(Substitution *substitution, ETSTypeParameter *tparam, Type *typeArg);
374 Type *argumentType, Substitution *substitution);
376 Type *argumentType, Substitution *substitution);
378 Type *argumentType, Substitution *substitution);
380 Type *argumentType, Substitution *substitution);
382 Type *argumentType, Substitution *substitution);
384 const Type *paramType, Substitution *substitution);
387 const size_t index, Substitution *substitution, Type *objectParam);
608 util::StringView GetHashFromSubstitution(const Substitution *substitution);
[all...]

Completed in 19 milliseconds

12