Lines Matching refs:LSI
87 const clang::sema::LambdaScopeInfo *LSI =
116 if (LSI->ImpCaptureStyle == sema::LambdaScopeInfo::ImpCap_None) {
117 if (IsCapturingVariable && !LSI->isCaptured(VarToCapture))
119 if (IsCapturingThis && !LSI->isCXXThisCaptured())
228 getGenericLambdaTemplateParameterList(LambdaScopeInfo *LSI, Sema &SemaRef) {
229 if (!LSI->GLTemplateParameterList && !LSI->TemplateParams.empty()) {
230 LSI->GLTemplateParameterList = TemplateParameterList::Create(
233 /*L angle loc*/ LSI->ExplicitTemplateParamsRange.getBegin(),
234 LSI->TemplateParams,
235 /*R angle loc*/LSI->ExplicitTemplateParamsRange.getEnd(),
236 LSI->RequiresClause.get());
238 return LSI->GLTemplateParameterList;
481 void Sema::buildLambdaScope(LambdaScopeInfo *LSI,
489 LSI->CallOperator = CallOperator;
491 LSI->Lambda = LambdaClass;
493 LSI->ImpCaptureStyle = LambdaScopeInfo::ImpCap_LambdaByval;
495 LSI->ImpCaptureStyle = LambdaScopeInfo::ImpCap_LambdaByref;
496 LSI->CaptureDefaultLoc = CaptureDefaultLoc;
497 LSI->IntroducerRange = IntroducerRange;
498 LSI->ExplicitParams = ExplicitParams;
499 LSI->Mutable = Mutable;
502 LSI->ReturnType = CallOperator->getReturnType();
504 if (!LSI->ReturnType->isDependentType() &&
505 !LSI->ReturnType->isVoidType()) {
506 if (RequireCompleteType(CallOperator->getBeginLoc(), LSI->ReturnType,
512 LSI->HasImplicitReturnType = true;
516 void Sema::finishLambdaExplicitCaptures(LambdaScopeInfo *LSI) {
517 LSI->finishedExplicitCaptures();
524 LambdaScopeInfo *LSI = getCurLambda();
525 assert(LSI && "Expected a lambda scope");
526 assert(LSI->NumExplicitTemplateParams == 0 &&
528 assert(LSI->TemplateParams.empty() &&
533 LSI->TemplateParams.append(TParams.begin(), TParams.end());
534 LSI->NumExplicitTemplateParams = TParams.size();
535 LSI->ExplicitTemplateParamsRange = {LAngleLoc, RAngleLoc};
536 LSI->RequiresClause = RequiresClause;
882 void Sema::addInitCapture(LambdaScopeInfo *LSI, VarDecl *Var) {
884 LSI->addCapture(Var, /*isBlock*/false, Var->getType()->isReferenceType(),
892 LambdaScopeInfo *const LSI = getCurLambda();
893 assert(LSI && "LambdaScopeInfo should be on stack!");
898 if (LSI->NumExplicitTemplateParams > 0) {
1011 buildLambdaScope(LSI, Method, Intro.Range, Intro.Default, Intro.DefaultLoc,
1048 if (LSI->isCXXThisCaptured()) {
1050 << "'this'" << SourceRange(LSI->getCXXThisCapture().getLocation())
1078 if (!LSI->Captures.empty())
1079 LSI->ExplicitCaptureRanges[LSI->Captures.size() - 1] = C->ExplicitRange;
1175 if (Var && LSI->isCaptured(Var)) {
1177 << C->Id << SourceRange(LSI->getCapture(Var).getLocation())
1224 addInitCapture(LSI, Var);
1230 if (!LSI->Captures.empty())
1231 LSI->ExplicitCaptureRanges[LSI->Captures.size() - 1] = C->ExplicitRange;
1233 finishLambdaExplicitCaptures(LSI);
1235 LSI->ContainsUnexpandedParameterPack |= ContainsUnexpandedParameterPack;
1243 LSI->CallOperator->isConsteval()
1250 LambdaScopeInfo *LSI = cast<LambdaScopeInfo>(FunctionScopes.back());
1261 CXXRecordDecl *Class = LSI->Lambda;
1628 LambdaScopeInfo LSI = *cast<LambdaScopeInfo>(FunctionScopes.back());
1629 ActOnFinishFunctionBody(LSI.CallOperator, Body);
1630 return BuildLambdaExpr(StartLoc, Body->getEndLoc(), &LSI);
1743 LambdaScopeInfo *LSI) {
1747 SourceLocation CaptureDefaultLoc = LSI->CaptureDefaultLoc;
1749 mapImplicitCaptureStyle(LSI->ImpCaptureStyle);
1759 CallOperator = LSI->CallOperator;
1760 Class = LSI->Lambda;
1761 IntroducerRange = LSI->IntroducerRange;
1762 ExplicitParams = LSI->ExplicitParams;
1763 ExplicitResultType = !LSI->HasImplicitReturnType;
1764 LambdaCleanup = LSI->Cleanup;
1765 ContainsUnexpandedParameterPack = LSI->ContainsUnexpandedParameterPack;
1785 for (unsigned I = 0, N = LSI->Captures.size(); I != N; ++I) {
1786 const Capture &From = LSI->Captures[I];
1792 bool IsImplicit = I >= LSI->NumExplicitCaptures;
1797 SourceRange CaptureRange = LSI->ExplicitCaptureRanges[I];
1808 bool IsLast = (I + 1) == LSI->NumExplicitCaptures;
1924 DiagnoseShadowingLambdaDecls(LSI);