Lines Matching refs:LSI
92 const clang::sema::LambdaScopeInfo *LSI = in getStackIndexOfNearestEnclosingCaptureReadyLambda() local
121 if (LSI->ImpCaptureStyle == sema::LambdaScopeInfo::ImpCap_None) { in getStackIndexOfNearestEnclosingCaptureReadyLambda()
122 if (IsCapturingVariable && !LSI->isCaptured(VarToCapture)) in getStackIndexOfNearestEnclosingCaptureReadyLambda()
124 if (IsCapturingThis && !LSI->isCXXThisCaptured()) in getStackIndexOfNearestEnclosingCaptureReadyLambda()
234 getGenericLambdaTemplateParameterList(LambdaScopeInfo *LSI, Sema &SemaRef) { in getGenericLambdaTemplateParameterList() argument
235 if (!LSI->GLTemplateParameterList && !LSI->TemplateParams.empty()) { in getGenericLambdaTemplateParameterList()
236 LSI->GLTemplateParameterList = TemplateParameterList::Create( in getGenericLambdaTemplateParameterList()
239 /*L angle loc*/ LSI->ExplicitTemplateParamsRange.getBegin(), in getGenericLambdaTemplateParameterList()
240 LSI->TemplateParams, in getGenericLambdaTemplateParameterList()
241 /*R angle loc*/LSI->ExplicitTemplateParamsRange.getEnd(), in getGenericLambdaTemplateParameterList()
242 LSI->RequiresClause.get()); in getGenericLambdaTemplateParameterList()
244 return LSI->GLTemplateParameterList; in getGenericLambdaTemplateParameterList()
508 static void buildLambdaScopeReturnType(Sema &S, LambdaScopeInfo *LSI, in buildLambdaScopeReturnType() argument
512 LSI->HasImplicitReturnType = false; in buildLambdaScopeReturnType()
513 LSI->ReturnType = CallOperator->getReturnType(); in buildLambdaScopeReturnType()
514 if (!LSI->ReturnType->isDependentType() && !LSI->ReturnType->isVoidType()) in buildLambdaScopeReturnType()
515 S.RequireCompleteType(CallOperator->getBeginLoc(), LSI->ReturnType, in buildLambdaScopeReturnType()
518 LSI->HasImplicitReturnType = true; in buildLambdaScopeReturnType()
522 void Sema::buildLambdaScope(LambdaScopeInfo *LSI, CXXMethodDecl *CallOperator, in buildLambdaScope() argument
527 LSI->CallOperator = CallOperator; in buildLambdaScope()
529 LSI->Lambda = LambdaClass; in buildLambdaScope()
531 LSI->ImpCaptureStyle = LambdaScopeInfo::ImpCap_LambdaByval; in buildLambdaScope()
533 LSI->ImpCaptureStyle = LambdaScopeInfo::ImpCap_LambdaByref; in buildLambdaScope()
534 LSI->CaptureDefaultLoc = CaptureDefaultLoc; in buildLambdaScope()
535 LSI->IntroducerRange = IntroducerRange; in buildLambdaScope()
536 LSI->ExplicitParams = ExplicitParams; in buildLambdaScope()
537 LSI->Mutable = Mutable; in buildLambdaScope()
540 void Sema::finishLambdaExplicitCaptures(LambdaScopeInfo *LSI) { in finishLambdaExplicitCaptures() argument
541 LSI->finishedExplicitCaptures(); in finishLambdaExplicitCaptures()
548 LambdaScopeInfo *LSI = getCurLambda(); in ActOnLambdaExplicitTemplateParameterList() local
549 assert(LSI && "Expected a lambda scope"); in ActOnLambdaExplicitTemplateParameterList()
550 assert(LSI->NumExplicitTemplateParams == 0 && in ActOnLambdaExplicitTemplateParameterList()
552 assert(LSI->TemplateParams.empty() && in ActOnLambdaExplicitTemplateParameterList()
557 LSI->TemplateParams.append(TParams.begin(), TParams.end()); in ActOnLambdaExplicitTemplateParameterList()
558 LSI->NumExplicitTemplateParams = TParams.size(); in ActOnLambdaExplicitTemplateParameterList()
559 LSI->ExplicitTemplateParamsRange = {LAngleLoc, RAngleLoc}; in ActOnLambdaExplicitTemplateParameterList()
560 LSI->RequiresClause = RequiresClause; in ActOnLambdaExplicitTemplateParameterList()
875 void Sema::addInitCapture(LambdaScopeInfo *LSI, VarDecl *Var, bool ByRef) { in addInitCapture() argument
877 LSI->addCapture(Var, /*isBlock=*/false, ByRef, in addInitCapture()
1015 LambdaScopeInfo *LSI = getCurrentLambdaScopeUnsafe(*this); in CompleteLambdaCallOperator() local
1021 getGenericLambdaTemplateParameterList(LSI, *this); in CompleteLambdaCallOperator()
1024 Method->setLexicalDeclContext(LSI->Lambda); in CompleteLambdaCallOperator()
1031 LSI->Lambda->addDecl(TemplateMethod); in CompleteLambdaCallOperator()
1034 LSI->Lambda->addDecl(Method); in CompleteLambdaCallOperator()
1036 LSI->Lambda->setLambdaIsGeneric(TemplateParams); in CompleteLambdaCallOperator()
1037 LSI->Lambda->setLambdaTypeInfo(MethodTyInfo); in CompleteLambdaCallOperator()
1043 Method->setType(buildTypeForLambdaCallOperator(*this, LSI->Lambda, in CompleteLambdaCallOperator()
1056 buildLambdaScopeReturnType(*this, LSI, Method, HasExplicitResultType); in CompleteLambdaCallOperator()
1062 LambdaScopeInfo *LSI = getCurLambda(); in ActOnLambdaExpressionAfterIntroducer() local
1063 assert(LSI && "LambdaScopeInfo should be on stack!"); in ActOnLambdaExpressionAfterIntroducer()
1066 LSI->ImpCaptureStyle = LambdaScopeInfo::ImpCap_LambdaByval; in ActOnLambdaExpressionAfterIntroducer()
1068 LSI->ImpCaptureStyle = LambdaScopeInfo::ImpCap_LambdaByref; in ActOnLambdaExpressionAfterIntroducer()
1069 LSI->CaptureDefaultLoc = Intro.DefaultLoc; in ActOnLambdaExpressionAfterIntroducer()
1070 LSI->IntroducerRange = Intro.Range; in ActOnLambdaExpressionAfterIntroducer()
1071 LSI->AfterParameterList = false; in ActOnLambdaExpressionAfterIntroducer()
1073 assert(LSI->NumExplicitTemplateParams == 0); in ActOnLambdaExpressionAfterIntroducer()
1104 LSI->Lambda = Class; in ActOnLambdaExpressionAfterIntroducer()
1107 LSI->CallOperator = Method; in ActOnLambdaExpressionAfterIntroducer()
1131 if (LSI->isCXXThisCaptured()) { in ActOnLambdaExpressionAfterIntroducer()
1133 << "'this'" << SourceRange(LSI->getCXXThisCapture().getLocation()) in ActOnLambdaExpressionAfterIntroducer()
1161 if (!LSI->Captures.empty()) in ActOnLambdaExpressionAfterIntroducer()
1162 LSI->ExplicitCaptureRanges[LSI->Captures.size() - 1] = C->ExplicitRange; in ActOnLambdaExpressionAfterIntroducer()
1320 addInitCapture(LSI, cast<VarDecl>(Var), C->Kind == LCK_ByRef); in ActOnLambdaExpressionAfterIntroducer()
1326 if (!LSI->Captures.empty()) in ActOnLambdaExpressionAfterIntroducer()
1327 LSI->ExplicitCaptureRanges[LSI->Captures.size() - 1] = C->ExplicitRange; in ActOnLambdaExpressionAfterIntroducer()
1329 finishLambdaExplicitCaptures(LSI); in ActOnLambdaExpressionAfterIntroducer()
1330 LSI->ContainsUnexpandedParameterPack |= ContainsUnexpandedParameterPack; in ActOnLambdaExpressionAfterIntroducer()
1337 LambdaScopeInfo *LSI = getCurrentLambdaScopeUnsafe(*this); in ActOnLambdaClosureQualifiers() local
1338 LSI->Mutable = MutableLoc.isValid(); in ActOnLambdaClosureQualifiers()
1339 ContextRAII Context(*this, LSI->CallOperator, /*NewThisContext*/ false); in ActOnLambdaClosureQualifiers()
1353 !LSI->Lambda->getParent()->isFunctionOrMethod() && in ActOnLambdaClosureQualifiers()
1362 LambdaScopeInfo *LSI = getCurrentLambdaScopeUnsafe(*this); in ActOnLambdaClosureParameters() local
1363 PushDeclContext(LambdaScope, LSI->CallOperator); in ActOnLambdaClosureParameters()
1367 Param->setOwningFunction(LSI->CallOperator); in ActOnLambdaClosureParameters()
1377 getGenericLambdaTemplateParameterList(LSI, *this); in ActOnLambdaClosureParameters()
1379 AddTemplateParametersToLambdaCallOperator(LSI->CallOperator, LSI->Lambda, in ActOnLambdaClosureParameters()
1381 LSI->Lambda->setLambdaIsGeneric(true); in ActOnLambdaClosureParameters()
1382 LSI->ContainsUnexpandedParameterPack |= in ActOnLambdaClosureParameters()
1385 LSI->AfterParameterList = true; in ActOnLambdaClosureParameters()
1392 LambdaScopeInfo *LSI = getCurrentLambdaScopeUnsafe(*this); in ActOnStartOfLambdaDefinition() local
1393 LSI->CallOperator->setConstexprKind(DS.getConstexprSpecifier()); in ActOnStartOfLambdaDefinition()
1410 CXXRecordDecl *Class = LSI->Lambda; in ActOnStartOfLambdaDefinition()
1411 CXXMethodDecl *Method = LSI->CallOperator; in ActOnStartOfLambdaDefinition()
1416 LSI->ExplicitParams = ParamInfo.getNumTypeObjects() != 0; in ActOnStartOfLambdaDefinition()
1462 for (auto &&C : LSI->Captures) { in ActOnStartOfLambdaDefinition()
1497 getGenericLambdaTemplateParameterList(LSI, *this); in ActOnStartOfLambdaDefinition()
1545 LSI->CallOperator->isConsteval() in ActOnStartOfLambdaDefinition()
1549 LSI->CallOperator->isConsteval(); in ActOnStartOfLambdaDefinition()
1551 getLangOpts().CPlusPlus20 && LSI->CallOperator->isImmediateEscalating(); in ActOnStartOfLambdaDefinition()
1556 LambdaScopeInfo *LSI = cast<LambdaScopeInfo>(FunctionScopes.back()); in ActOnLambdaError() local
1567 CXXRecordDecl *Class = LSI->Lambda; in ActOnLambdaError()
1947 LambdaScopeInfo LSI = *cast<LambdaScopeInfo>(FunctionScopes.back()); in ActOnLambdaExpr() local
1948 ActOnFinishFunctionBody(LSI.CallOperator, Body); in ActOnLambdaExpr()
1949 return BuildLambdaExpr(StartLoc, Body->getEndLoc(), &LSI); in ActOnLambdaExpr()
2068 LambdaScopeInfo *LSI) { in BuildLambdaExpr() argument
2072 SourceLocation CaptureDefaultLoc = LSI->CaptureDefaultLoc; in BuildLambdaExpr()
2074 mapImplicitCaptureStyle(LSI->ImpCaptureStyle); in BuildLambdaExpr()
2084 CallOperator = LSI->CallOperator; in BuildLambdaExpr()
2085 Class = LSI->Lambda; in BuildLambdaExpr()
2086 IntroducerRange = LSI->IntroducerRange; in BuildLambdaExpr()
2087 ExplicitParams = LSI->ExplicitParams; in BuildLambdaExpr()
2088 ExplicitResultType = !LSI->HasImplicitReturnType; in BuildLambdaExpr()
2089 LambdaCleanup = LSI->Cleanup; in BuildLambdaExpr()
2090 ContainsUnexpandedParameterPack = LSI->ContainsUnexpandedParameterPack; in BuildLambdaExpr()
2110 for (unsigned I = 0, N = LSI->Captures.size(); I != N; ++I) { in BuildLambdaExpr()
2111 const Capture &From = LSI->Captures[I]; in BuildLambdaExpr()
2117 bool IsImplicit = I >= LSI->NumExplicitCaptures; in BuildLambdaExpr()
2122 SourceRange CaptureRange = LSI->ExplicitCaptureRanges[I]; in BuildLambdaExpr()
2133 bool IsLast = (I + 1) == LSI->NumExplicitCaptures; in BuildLambdaExpr()
2249 DiagnoseShadowingLambdaDecls(LSI); in BuildLambdaExpr()