/arkcompiler/runtime_core/static_core/plugins/ets/runtime/ |
H A D | ets_utils.cpp | 41 void LambdaUtils::InvokeVoid(EtsCoroutine *coro, EtsObject *lambda) in InvokeVoid() argument 43 EtsMethod *invoke = lambda->GetClass()->GetMethod("invoke"); in InvokeVoid() 48 Value arg(lambda->GetCoreType()); in InvokeVoid()
|
H A D | ets_utils.h | 33 PANDA_PUBLIC_API static void InvokeVoid(EtsCoroutine *coro, EtsObject *lambda);
|
/arkcompiler/ets_frontend/ets2panda/compiler/lowering/ets/ |
H A D | lambdaLowering.cpp | 48 ir::ArrowFunctionExpression *lambda = nullptr; member 69 static bool CheckIfNeedThis(ir::ArrowFunctionExpression const *lambda) in CheckIfNeedThis() argument 71 return lambda->IsAnyChild([](ir::AstNode *ast) { return ast->IsThisExpression(); }); in CheckIfNeedThis() 84 auto name = util::UString(util::StringView("lambda$invoke$"), allocator); in CreateCalleeName() 182 for (auto *oldParam : calleeParameterInfo.lambda->Function()->Params()) { in CreateLambdaCalleeParameters() 324 static ir::MethodDefinition *CreateCalleeMethod(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda, in CreateCalleeMethod() argument 340 auto *substitution = subst0; // NOTE(gogabr): needed to capture in a lambda later. in CreateCalleeMethod() 346 CalleeParameterInfo cpi {lambda, *info->capturedVars, paramScope, substitution, limit}; in CreateCalleeMethod() 354 : lambda->Function()->Signature()->ReturnType()->Substitute(checker->Relation(), substitution); in CreateCalleeMethod() 393 static ir::MethodDefinition *CreateCalleeDefault(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda, in CreateCalleeDefault() argument 424 CreateArgsForOptionalCall(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda, ir::MethodDefinition *defaultMethod) CreateArgsForOptionalCall() argument 459 CreateFunctionBody(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda, ir::MethodDefinition *defaultMethod) CreateFunctionBody() argument 499 CreateCallee(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda, LambdaInfo const *info, ir::MethodDefinition *defaultMethod, size_t limit = std::numeric_limits<size_t>::max()) CreateCallee() argument 850 ConvertLambda(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda) ConvertLambda() argument 965 auto *lambda = util::NodeAllocator::ForceSetParent<ir::ArrowFunctionExpression>(allocator, func); CreateWrappingLambda() local [all...] |
/arkcompiler/runtime_core/static_core/runtime/coroutines/ |
H A D | stackful_coroutine.h | 91 /// Executes a foreign lambda function within this context (does not corrupt the saved context) 93 bool ExecuteOnThisContext(L *lambda, StackfulCoroutineContext *requester) in ExecuteOnThisContext() argument 96 return rpcCallContext_.Execute(lambda, &requester->context_, &context_); in ExecuteOnThisContext() 129 /// @brief The remote lambda call functionality implementation. 137 bool Execute(L *lambda, fibers::FiberContext *requesterContextPtr, fibers::FiberContext *hostContextPtr) in Execute() argument 144 lambda_ = lambda; in Execute()
|
/arkcompiler/ets_frontend/ets2panda/checker/ets/ |
H A D | typeCheckingHelpers.cpp | 908 bool ETSChecker::CheckLambdaAssignable(ir::Expression *param, ir::ScriptFunction *lambda) 917 return CheckLambdaAssignableUnion(typeAnn, lambda); 923 return lambda->Params().size() == calleeType->Params().size(); 937 ir::ScriptFunction *const lambda = arrowFuncExpr->Function(); 942 InferTypesForLambda(lambda, calleeType, functionSignature); 966 // Preserve actual lambda types 967 ir::ScriptFunction *const lambda = arrowFuncExpr->Function(); 969 for (auto *const lambdaParam : lambda->Params()) { 972 auto *const lambdaReturnTypeAnnotation = lambda->ReturnTypeAnnotation(); 985 // Restore inferring lambda type [all...] |
H A D | helpers.cpp | 607 ir::ScriptFunction *const lambda = arrowFuncExpr->Function(); in InferAliasLambdaType() member in ark::es2panda::checker::ir 608 if (lambda->Params().size() == localTypeAnnotation->AsETSFunctionType()->Params().size() && in InferAliasLambdaType() 609 NeedTypeInference(lambda)) { in InferAliasLambdaType() 610 InferTypesForLambda(lambda, localTypeAnnotation->AsETSFunctionType()); in InferAliasLambdaType() 2201 bool ETSChecker::NeedTypeInference(const ir::ScriptFunction *lambda) in NeedTypeInference() argument 2203 if (lambda->ReturnTypeAnnotation() == nullptr) { in NeedTypeInference() 2206 for (auto *const param : lambda->Params()) { in NeedTypeInference() 2221 ir::ScriptFunction *const lambda = arg->AsArrowFunctionExpression()->Function(); in FindTypeInferenceArguments() member in ark::es2panda::checker::ir 2222 if (NeedTypeInference(lambda)) { in FindTypeInferenceArguments() 2231 bool ETSChecker::CheckLambdaAssignableUnion(ir::AstNode *typeAnn, ir::ScriptFunction *lambda) in CheckLambdaAssignableUnion() argument 2242 InferTypesForLambda(ir::ScriptFunction *lambda, ir::ETSFunctionType *calleeType, Signature *maybeSubstitutedFunctionSig) InferTypesForLambda() argument [all...] |
H A D | function.cpp | 318 if (ir::ScriptFunction *const lambda = arrowFuncExpr->Function(); in CheckOptionalLambdaFunction() 319 CheckLambdaAssignable(substitutedSig->Function()->Params()[index], lambda)) { in CheckOptionalLambdaFunction() 367 ir::ScriptFunction *const lambda = arrowFuncExpr->Function(); in ValidateSignatureRequiredParams() member in ir 368 if (CheckLambdaAssignable(substitutedSig->Function()->Params()[index], lambda)) { in ValidateSignatureRequiredParams() 1874 // Add the function declarations to the lambda class scope in CreateFuncDecl() 2102 LogTypeError({"No matching call signature with trailing lambda"}, callExpr->Start()); in EnsureValidCurlyBrace()
|
/arkcompiler/runtime_core/static_core/plugins/ets/runtime/intrinsics/ |
H A D | std_core_TypeCreator.cpp | 387 LambdaTypeCreator lambda {ctx}; in PrepareLambdaTypeCreator() 388 lambda.AddParameter(pandasm::Type {typeapi_create_consts::TYPE_OBJECT, 0}); in PrepareLambdaTypeCreator() 389 lambda.AddParameter(pandasm::Type {typeapi_create_consts::TYPE_OBJECT, 0}); in PrepareLambdaTypeCreator() 390 lambda.AddResult(pandasm::Type {typeapi_create_consts::TYPE_OBJECT, 0}); in PrepareLambdaTypeCreator() 391 lambda.Create(); in PrepareLambdaTypeCreator() 392 return lambda; in PrepareLambdaTypeCreator() 432 auto lambda = PrepareLambdaTypeCreator(m->Ctx()); in TypeAPITypeCreatorCtxMethodAddBodyFromErasedLambda() local 434 auto savedLambdaField = m->Ctx()->AddInitField(lambdaId, lambda.GetType()); in TypeAPITypeCreatorCtxMethodAddBodyFromErasedLambda() 458 fn.AddInstruction(pandasm::Create_CALL_VIRT(LMB_REG, RECV_REG, ARR_REG, 0, lambda.GetFunctionName())); in TypeAPITypeCreatorCtxMethodAddBodyFromErasedLambda()
|
/arkcompiler/ets_frontend/ets2panda/checker/ |
H A D | ETSchecker.h | 351 bool NeedTypeInference(const ir::ScriptFunction *lambda); 353 void InferTypesForLambda(ir::ScriptFunction *lambda, ir::ETSFunctionType *calleeType, 361 bool CheckLambdaAssignable(ir::Expression *param, ir::ScriptFunction *lambda); 362 bool CheckLambdaAssignableUnion(ir::AstNode *typeAnn, ir::ScriptFunction *lambda); 484 ir::ScriptFunction *CreateProxyFunc(ir::ArrowFunctionExpression *lambda, ArenaVector<ir::AstNode *> &captured, 486 ir::AstNode *GetProxyMethodBody(ir::ArrowFunctionExpression *lambda, varbinder::FunctionScope *scope); 693 // Trailing lambda 857 // Trailing lambda
|