• Home
  • Raw
  • Download

Lines Matching full:lambda

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 …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 …ethodDefinition *CreateCalleeDefault(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda, in CreateCalleeDefault() argument
398 auto *body = lambda->Function()->Body()->AsBlockStatement(); in CreateCalleeDefault()
399 auto calleeName = lambda->Function()->IsAsyncFunc() in CreateCalleeDefault()
402 …auto *forcedReturnType = lambda->Function()->IsAsyncFunc() ? checker->GlobalETSNullishObjectType()… in CreateCalleeDefault()
408 auto *method = CreateCalleeMethod(ctx, lambda, info, &cmInfo); in CreateCalleeDefault()
410 if (lambda->Function()->IsAsyncFunc()) { in CreateCalleeDefault()
417 auto *asyncMethod = CreateCalleeMethod(ctx, lambda, info, &cmInfoAsync); in CreateCalleeDefault()
425 ir::ArrowFunctionExpression *lambda, in CreateArgsForOptionalCall() argument
446 for (; i < lambda->Function()->Params().size(); i++) { in CreateArgsForOptionalCall()
447 auto *param = lambda->Function()->Params()[i]->AsETSParameterExpression(); in CreateArgsForOptionalCall()
459 …::BlockStatement *CreateFunctionBody(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda, in CreateFunctionBody() argument
481 … CreateArgsForOptionalCall(ctx, lambda, defaultMethod), in CreateFunctionBody()
499 …c ir::MethodDefinition *CreateCallee(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda, in CreateCallee() argument
506 auto calleeName = lambda->Function()->IsAsyncFunc() in CreateCallee()
509 …auto *forcedReturnType = lambda->Function()->IsAsyncFunc() ? checker->GlobalETSNullishObjectType()… in CreateCallee()
513 cmInfo.body = CreateFunctionBody(ctx, lambda, defaultMethod); in CreateCallee()
516 …auto *method = CreateCalleeMethod(ctx, lambda, info, &cmInfo, limit, defaultMethod->Id()->Variable… in CreateCallee()
518 if (lambda->Function()->IsAsyncFunc()) { in CreateCallee()
525 auto *asyncMethod = CreateCalleeMethod(ctx, lambda, info, &cmInfoAsync); in CreateCallee()
758 auto *substitution = subst0; // NOTE(gogabr): needed to capture in a lambda later. in CreateLambdaClass()
847 static ir::AstNode *ConvertLambda(public_lib::Context *ctx, ir::ArrowFunctionExpression *lambda) in ConvertLambda() argument
851 auto firstDefaultIndex = lambda->Function()->DefaultParamIndex(); in ConvertLambda()
854 std::tie(info.calleeClass, info.enclosingFunction) = FindEnclosingClassAndFunction(lambda); in ConvertLambda()
856 auto capturedVars = FindCaptured(allocator, lambda); in ConvertLambda()
858 info.callReceiver = CheckIfNeedThis(lambda) ? allocator->New<ir::ThisExpression>() : nullptr; in ConvertLambda()
860 auto *callee = CreateCalleeDefault(ctx, lambda, &info); in ConvertLambda()
862 if (firstDefaultIndex < lambda->Function()->Params().size()) { in ConvertLambda()
863 for (size_t i = firstDefaultIndex; i < lambda->Function()->Params().size(); i++) { in ConvertLambda()
864 auto overload = CreateCallee(ctx, lambda, &info, callee, firstDefaultIndex); in ConvertLambda()
869 ASSERT(lambda->TsType()->IsETSFunctionType()); in ConvertLambda()
870 auto *lambdaType = lambda->TsType()->AsETSFunctionType(); in ConvertLambda()
872 auto *constructorCall = CreateConstructorCall(ctx, lambda, lambdaClass, &info); in ConvertLambda()
962 … auto *lambda = util::NodeAllocator::ForceSetParent<ir::ArrowFunctionExpression>(allocator, func); in CreateWrappingLambda() local
963 lambda->SetParent(parent); in CreateWrappingLambda()
965 auto *nearestScope = NearestScope(lambda); in CreateWrappingLambda()
967 InitScopesPhaseETS::RunExternalNode(lambda, varBinder); in CreateWrappingLambda()
968 varBinder->ResolveReferencesForScopeWithContext(lambda, nearestScope); in CreateWrappingLambda()
976 lambda->Check(ctx->checker->AsETSChecker()); in CreateWrappingLambda()
978 return lambda; in CreateWrappingLambda()
1005 …rect reference to method will be impossible from the lambda class, so replace func ref with a lamb… in ConvertFunctionReference()
1158 …parser::SavedFormattingFileName savedFormattingName(ctx->parser->AsETSParser(), "lambda-conversion… in Perform()