Home | History | Annotate | Download | only in Sema

Lines Matching defs:LSI

84     const clang::sema::LambdaScopeInfo *LSI =
113 if (LSI->ImpCaptureStyle == sema::LambdaScopeInfo::ImpCap_None) {
114 if (IsCapturingVariable && !LSI->isCaptured(VarToCapture))
116 if (IsCapturingThis && !LSI->isCXXThisCaptured())
225 getGenericLambdaTemplateParameterList(LambdaScopeInfo *LSI, Sema &SemaRef) {
226 if (LSI->GLTemplateParameterList)
227 return LSI->GLTemplateParameterList;
229 if (LSI->AutoTemplateParams.size()) {
230 SourceRange IntroRange = LSI->IntroducerRange;
233 LSI->GLTemplateParameterList = TemplateParameterList::Create(
236 (NamedDecl **)LSI->AutoTemplateParams.data(),
237 LSI->AutoTemplateParams.size(), RAngleLoc);
239 return LSI->GLTemplateParameterList;
435 void Sema::buildLambdaScope(LambdaScopeInfo *LSI,
443 LSI->CallOperator = CallOperator;
445 LSI->Lambda = LambdaClass;
447 LSI->ImpCaptureStyle = LambdaScopeInfo::ImpCap_LambdaByval;
449 LSI->ImpCaptureStyle = LambdaScopeInfo::ImpCap_LambdaByref;
450 LSI->CaptureDefaultLoc = CaptureDefaultLoc;
451 LSI->IntroducerRange = IntroducerRange;
452 LSI->ExplicitParams = ExplicitParams;
453 LSI->Mutable = Mutable;
456 LSI->ReturnType = CallOperator->getReturnType();
458 if (!LSI->ReturnType->isDependentType() &&
459 !LSI->ReturnType->isVoidType()) {
460 if (RequireCompleteType(CallOperator->getLocStart(), LSI->ReturnType,
466 LSI->HasImplicitReturnType = true;
470 void Sema::finishLambdaExplicitCaptures(LambdaScopeInfo *LSI) {
471 LSI->finishedExplicitCaptures();
819 FieldDecl *Sema::buildInitCaptureField(LambdaScopeInfo *LSI, VarDecl *Var) {
821 Context, LSI->Lambda, Var->getLocation(), Var->getLocation(),
826 LSI->Lambda->addDecl(Field);
828 LSI->addCapture(Var, /*isBlock*/false, Var->getType()->isReferenceType(),
839 LambdaScopeInfo *const LSI = getCurLambda();
840 assert(LSI && "LambdaScopeInfo should be on stack!");
842 getGenericLambdaTemplateParameterList(LSI, *this);
928 buildLambdaScope(LSI, Method,
964 if (LSI->isCXXThisCaptured()) {
966 << "'this'" << SourceRange(LSI->getCXXThisCapture().getLocation())
1066 if (Var && LSI->isCaptured(Var)) {
1068 << C->Id << SourceRange(LSI->getCapture(Var).getLocation())
1114 buildInitCaptureField(LSI, Var);
1121 finishLambdaExplicitCaptures(LSI);
1123 LSI->ContainsUnexpandedParameterPack = ContainsUnexpandedParameterPack;
1135 LambdaScopeInfo *LSI = getCurLambda();
1146 CXXRecordDecl *Class = LSI->Lambda;
1391 LambdaScopeInfo *LSI = getCurLambda();
1392 CallOperator = LSI->CallOperator;
1393 Class = LSI->Lambda;
1394 IntroducerRange = LSI->IntroducerRange;
1395 ExplicitParams = LSI->ExplicitParams;
1396 ExplicitResultType = !LSI->HasImplicitReturnType;
1397 LambdaExprNeedsCleanups = LSI->ExprNeedsCleanups;
1398 ContainsUnexpandedParameterPack = LSI->ContainsUnexpandedParameterPack;
1399 ArrayIndexVars.swap(LSI->ArrayIndexVars);
1400 ArrayIndexStarts.swap(LSI->ArrayIndexStarts);
1403 for (unsigned I = 0, N = LSI->Captures.size(); I != N; ++I) {
1404 LambdaScopeInfo::Capture From = LSI->Captures[I];
1406 bool IsImplicit = I >= LSI->NumExplicitCaptures;
1425 switch (LSI->ImpCaptureStyle) {
1443 CaptureDefaultLoc = LSI->CaptureDefaultLoc;
1454 if (LSI->HasImplicitReturnType && !getLangOpts().CPlusPlus1y) {
1455 deduceClosureReturnType(*LSI);
1461 if (LSI->ReturnType.isNull()) {
1462 LSI->ReturnType = Context.VoidTy;
1469 LSI->ReturnType, Proto->getParamTypes(), Proto->getExtProtoInfo());