Lines Matching refs:SS

178                                       CXXScopeSpec &SS,  in isTemplateName()  argument
213 if (LookupTemplateName(R, S, SS, ObjectType, EnteringContext, in isTemplateName()
296 if (!SS.isInvalid()) { in isTemplateName()
297 NestedNameSpecifier *Qualifier = SS.getScopeRep(); in isTemplateName()
323 SourceLocation NameLoc, CXXScopeSpec &SS, in isDeductionGuideName() argument
329 if (LookupTemplateName(R, S, SS, /*ObjectType*/ QualType(), in isDeductionGuideName()
348 SS.getScopeRep(), /*TemplateKeyword=*/false, TemplateName(TD)); in isDeductionGuideName()
357 const CXXScopeSpec *SS, in DiagnoseUnknownTemplateName() argument
363 if (!SS || !SS->isSet() || !isDependentScopeSpecifier(*SS) || in DiagnoseUnknownTemplateName()
364 computeDeclContext(*SS)) in DiagnoseUnknownTemplateName()
369 NestedNameSpecifier *Qualifier = (NestedNameSpecifier*)SS->getScopeRep(); in DiagnoseUnknownTemplateName()
379 bool Sema::LookupTemplateName(LookupResult &Found, Scope *S, CXXScopeSpec &SS, in LookupTemplateName() argument
387 if (SS.isInvalid()) in LookupTemplateName()
398 assert(SS.isEmpty() && "ObjectType and scope specifier cannot coexist"); in LookupTemplateName()
425 } else if (SS.isNotEmpty()) { in LookupTemplateName()
428 LookupCtx = computeDeclContext(SS, EnteringContext); in LookupTemplateName()
429 IsDependent = !LookupCtx && isDependentScopeSpecifier(SS); in LookupTemplateName()
432 if (LookupCtx && RequireCompleteDeclContext(SS, LookupCtx)) in LookupTemplateName()
456 if (SS.isEmpty() && (ObjectType.isNull() || Found.empty())) { in LookupTemplateName()
483 if (ATK && SS.isEmpty() && ObjectType.isNull() && in LookupTemplateName()
522 &SS, FilterCCC, CTK_ErrorRecovery, LookupCtx)) { in LookupTemplateName()
536 << SS.getRange()); in LookupTemplateName()
557 << Found.getLookupName() << SS.getRange() in LookupTemplateName()
629 CXXScopeSpec SS; in diagnoseExprIntendedAsTemplateName() local
639 SS.Adopt(DRE->getQualifierLoc()); in diagnoseExprIntendedAsTemplateName()
644 SS.Adopt(ME->getQualifierLoc()); in diagnoseExprIntendedAsTemplateName()
651 SS.Adopt(DSDRE->getQualifierLoc()); in diagnoseExprIntendedAsTemplateName()
656 SS.Adopt(DSME->getQualifierLoc()); in diagnoseExprIntendedAsTemplateName()
692 if (TypoCorrection Corrected = CorrectTypo(NameInfo, LookupKind, S, &SS, CCC, in diagnoseExprIntendedAsTemplateName()
705 << SS.getRange(), false); in diagnoseExprIntendedAsTemplateName()
725 Sema::ActOnDependentIdExpression(const CXXScopeSpec &SS, in ActOnDependentIdExpression() argument
730 if (SS.isEmpty()) { in ActOnDependentIdExpression()
746 return BuildDependentDeclRefExpr(SS, TemplateKWLoc, NameInfo, TemplateArgs); in ActOnDependentIdExpression()
750 Sema::BuildDependentDeclRefExpr(const CXXScopeSpec &SS, in BuildDependentDeclRefExpr() argument
755 if (!SS.isValid()) in BuildDependentDeclRefExpr()
757 SS.getBeginLoc(), in BuildDependentDeclRefExpr()
761 Context, SS.getWithLocInContext(Context), TemplateKWLoc, NameInfo, in BuildDependentDeclRefExpr()
967 CXXScopeSpec SS; in ActOnTemplateTypeArgument() local
969 SS.Adopt(ET.getQualifierLoc()); in ActOnTemplateTypeArgument()
975 ParsedTemplateArgument Result(SS, TemplateTy::make(Name), in ActOnTemplateTypeArgument()
1094 bool Sema::ActOnTypeConstraint(const CXXScopeSpec &SS, in ActOnTypeConstraint() argument
1098 return BuildTypeConstraint(SS, TypeConstr, ConstrainedParameter, EllipsisLoc, in ActOnTypeConstraint()
1102 bool Sema::BuildTypeConstraint(const CXXScopeSpec &SS, in BuildTypeConstraint() argument
1131 SS.isSet() ? SS.getWithLocInContext(Context) : NestedNameSpecifierLoc(), in BuildTypeConstraint()
1157 CXXScopeSpec SS; in formImmediatelyDeclaredConstraint() local
1158 SS.Adopt(NS); in formImmediatelyDeclaredConstraint()
1160 SS, /*TemplateKWLoc=*/SourceLocation(), NameInfo, in formImmediatelyDeclaredConstraint()
1760 const CXXScopeSpec &SS) { in SetNestedNameSpecifier() argument
1761 if (SS.isSet()) in SetNestedNameSpecifier()
1762 T->setQualifierInfo(SS.getWithLocInContext(S.Context)); in SetNestedNameSpecifier()
1796 CXXScopeSpec &SS, IdentifierInfo *Name, SourceLocation NameLoc, in CheckClassTemplate() argument
1826 (SS.isEmpty() && TUK == TagUseKind::Friend) in CheckClassTemplate()
1830 if (SS.isNotEmpty() && !SS.isInvalid()) { in CheckClassTemplate()
1831 SemanticContext = computeDeclContext(SS, true); in CheckClassTemplate()
1839 << SS.getScopeRep() << SS.getRange(); in CheckClassTemplate()
1843 if (RequireCompleteDeclContext(SS, SemanticContext)) in CheckClassTemplate()
1856 diagnoseQualifiedDeclaration(SS, SemanticContext, Name, NameLoc, in CheckClassTemplate()
1916 if (!SS.isSet()) { in CheckClassTemplate()
1948 SemanticContext, S, SS.isValid())) in CheckClassTemplate()
1953 if (SS.isEmpty() && in CheckClassTemplate()
2038 (SS.isSet() && SemanticContext && SemanticContext->isRecord() && in CheckClassTemplate()
2046 if (SS.isSet()) { in CheckClassTemplate()
2049 if (!SS.isInvalid() && !Invalid && !PrevClassTemplate) { in CheckClassTemplate()
2053 << Name << SemanticContext << /*IsDefinition*/ true << SS.getRange(); in CheckClassTemplate()
2071 SetNestedNameSpecifier(*this, NewClass, SS); in CheckClassTemplate()
2660 const CXXScopeSpec &SS) { in getRangeOfTypeInNestedNameSpecifier() argument
2661 NestedNameSpecifierLoc NNSLoc(SS.getScopeRep(), SS.location_data()); in getRangeOfTypeInNestedNameSpecifier()
2676 SourceLocation DeclStartLoc, SourceLocation DeclLoc, const CXXScopeSpec &SS, in MatchTemplateParametersToScopeSpecifier() argument
2688 if (SS.getScopeRep()) { in MatchTemplateParametersToScopeSpecifier()
2690 = dyn_cast_or_null<CXXRecordDecl>(computeDeclContext(SS, true))) in MatchTemplateParametersToScopeSpecifier()
2693 T = QualType(SS.getScopeRep()->getAsType(), 0); in MatchTemplateParametersToScopeSpecifier()
2909 << getRangeOfTypeInNestedNameSpecifier(Context, T, SS); in MatchTemplateParametersToScopeSpecifier()
2921 getRangeOfTypeInNestedNameSpecifier(Context, T, SS))) in MatchTemplateParametersToScopeSpecifier()
2960 << getRangeOfTypeInNestedNameSpecifier(Context, T, SS); in MatchTemplateParametersToScopeSpecifier()
3554 Scope *S, CXXScopeSpec &SS, SourceLocation TemplateKWLoc, in ActOnTemplateIdType() argument
3560 if (SS.isInvalid()) in ActOnTemplateIdType()
3563 if (!IsCtorOrDtorName && !IsClassName && SS.isSet()) { in ActOnTemplateIdType()
3564 DeclContext *LookupCtx = computeDeclContext(SS, /*EnteringContext*/false); in ActOnTemplateIdType()
3572 if (!LookupCtx && isDependentScopeSpecifier(SS)) { in ActOnTemplateIdType()
3576 Diag(SS.getBeginLoc(), diag::warn_cxx17_compat_implicit_typename); in ActOnTemplateIdType()
3578 Diag(SS.getBeginLoc(), diag::ext_implicit_typename) in ActOnTemplateIdType()
3579 << SS.getScopeRep() << TemplateII->getName() in ActOnTemplateIdType()
3580 << FixItHint::CreateInsertion(SS.getBeginLoc(), "typename "); in ActOnTemplateIdType()
3582 Diag(SS.getBeginLoc(), diag::err_typename_missing_template) in ActOnTemplateIdType()
3583 << SS.getScopeRep() << TemplateII->getName(); in ActOnTemplateIdType()
3588 return ActOnTypenameType(nullptr, SourceLocation(), SS, TemplateKWLoc, in ActOnTemplateIdType()
3618 assert(SS.getScopeRep() == DTN->getQualifier()); in ActOnTemplateIdType()
3627 SpecTL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnTemplateIdType()
3655 !IsCtorOrDtorName ? SS : CXXScopeSpec(), SpecTy); in ActOnTemplateIdType()
3659 ElabTL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnTemplateIdType()
3666 CXXScopeSpec &SS, in ActOnTagTemplateIdType() argument
3673 if (SS.isInvalid()) in ActOnTagTemplateIdType()
3688 assert(SS.getScopeRep() == DTN->getQualifier()); in ActOnTagTemplateIdType()
3698 SpecTL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnTagTemplateIdType()
3752 Result = Context.getElaboratedType(Keyword, SS.getScopeRep(), Result); in ActOnTagTemplateIdType()
3755 ElabTL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnTagTemplateIdType()
4301 const CXXScopeSpec &SS, const DeclarationNameInfo &NameInfo, in CheckVarTemplateId() argument
4319 return BuildDeclarationNameExpr(SS, NameInfo, Var, FoundD, TemplateArgs); in CheckVarTemplateId()
4331 void Sema::diagnoseMissingTemplateArguments(const CXXScopeSpec &SS, in diagnoseMissingTemplateArguments() argument
4336 SS.getScopeRep(), TemplateKeyword, TemplateName(TD)); in diagnoseMissingTemplateArguments()
4341 Sema::CheckConceptTemplateId(const CXXScopeSpec &SS, in CheckConceptTemplateId() argument
4376 SourceRange(SS.isSet() ? SS.getBeginLoc() : ConceptNameInfo.getLoc(), in CheckConceptTemplateId()
4382 SS.isSet() ? SS.getWithLocInContext(Context) : NestedNameSpecifierLoc{}, in CheckConceptTemplateId()
4389 ExprResult Sema::BuildTemplateIdExpr(const CXXScopeSpec &SS, in BuildTemplateIdExpr() argument
4411 SS, /*TemplateKeyword=*/TemplateKWLoc.isValid(), TD, R.getNameLoc()); in BuildTemplateIdExpr()
4419 SS, R.getLookupNameInfo(), R.getAsSingle<VarTemplateDecl>(), in BuildTemplateIdExpr()
4428 return CheckConceptTemplateId(SS, TemplateKWLoc, R.getLookupNameInfo(), in BuildTemplateIdExpr()
4437 Context, R.getNamingClass(), SS.getWithLocInContext(Context), in BuildTemplateIdExpr()
4453 CXXScopeSpec &SS, SourceLocation TemplateKWLoc, in BuildQualifiedTemplateIdExpr() argument
4459 if (LookupTemplateName(R, /*S=*/nullptr, SS, /*ObjectType=*/QualType(), in BuildQualifiedTemplateIdExpr()
4466 if (R.wasNotFoundInCurrentInstantiation() || SS.isInvalid()) in BuildQualifiedTemplateIdExpr()
4467 return BuildDependentDeclRefExpr(SS, TemplateKWLoc, NameInfo, TemplateArgs); in BuildQualifiedTemplateIdExpr()
4470 DeclContext *DC = computeDeclContext(SS); in BuildQualifiedTemplateIdExpr()
4472 << NameInfo.getName() << DC << SS.getRange(); in BuildQualifiedTemplateIdExpr()
4477 if (isPotentialImplicitMemberAccess(SS, R, IsAddressOfOperand)) in BuildQualifiedTemplateIdExpr()
4478 return BuildPossibleImplicitMemberExpr(SS, TemplateKWLoc, R, TemplateArgs, in BuildQualifiedTemplateIdExpr()
4481 return BuildTemplateIdExpr(SS, TemplateKWLoc, R, /*ADL=*/false, TemplateArgs); in BuildQualifiedTemplateIdExpr()
4485 CXXScopeSpec &SS, in ActOnTemplateName() argument
4499 if (SS.isInvalid()) in ActOnTemplateName()
4504 if (SS.isNotEmpty()) in ActOnTemplateName()
4505 LookupCtx = computeDeclContext(SS, EnteringContext); in ActOnTemplateName()
4526 TemplateNameKind TNK = isTemplateName(S, SS, TemplateKWLoc.isValid(), Name, in ActOnTemplateName()
4532 if (!AllowInjectedClassName && SS.isNotEmpty() && LookupRD && in ActOnTemplateName()
4566 if (!LookupTemplateName(R, S, SS, ObjectType.get(), EnteringContext, RTK, in ActOnTemplateName()
4571 << DNI.getName() << LookupCtx << SS.getRange(); in ActOnTemplateName()
4574 << DNI.getName() << SS.getRange(); in ActOnTemplateName()
4579 NestedNameSpecifier *Qualifier = SS.getScopeRep(); in ActOnTemplateName()
4639 CXXScopeSpec SS; in CheckTemplateTypeArgument() local
4644 SS.Adopt(ArgExpr->getQualifierLoc()); in CheckTemplateTypeArgument()
4649 SS.Adopt(ArgExpr->getQualifierLoc()); in CheckTemplateTypeArgument()
4656 LookupParsedName(Result, CurScope, &SS, /*ObjectType=*/QualType()); in CheckTemplateTypeArgument()
4660 assert(SS.getScopeRep() && "dependent scope expr must has a scope!"); in CheckTemplateTypeArgument()
4672 SS.getScopeRep(), II); in CheckTemplateTypeArgument()
4676 TL.setQualifierLoc(SS.getWithLocInContext(Context)); in CheckTemplateTypeArgument()
5094 CXXScopeSpec SS; in CheckTemplateArgument() local
5095 SS.Adopt(Arg.getTemplateQualifierLoc()); in CheckTemplateArgument()
5101 Context, SS.getWithLocInContext(Context), TemplateKWLoc, NameInfo, in CheckTemplateArgument()
7257 CXXScopeSpec SS; in BuildExpressionFromDeclTemplateArgument() local
7269 SS.MakeTrivial(Context, Qualifier, Loc); in BuildExpressionFromDeclTemplateArgument()
7273 SS, DeclarationNameInfo(VD->getDeclName(), Loc), VD); in BuildExpressionFromDeclTemplateArgument()
8068 SourceLocation ModulePrivateLoc, CXXScopeSpec &SS, in ActOnClassTemplateSpecialization() argument
8092 if (SS.isSet()) { in ActOnClassTemplateSpecialization()
8094 diagnoseQualifiedDeclaration(SS, ClassTemplate->getDeclContext(), in ActOnClassTemplateSpecialization()
8108 KWLoc, TemplateNameLoc, SS, &TemplateId, TemplateParameterLists, in ActOnClassTemplateSpecialization()
8266 return CheckClassTemplate(S, TagSpec, TUK, KWLoc, SS, in ActOnClassTemplateSpecialization()
8286 SetNestedNameSpecifier(*this, Partial, SS); in ActOnClassTemplateSpecialization()
8287 if (TemplateParameterLists.size() > 1 && SS.isSet()) { in ActOnClassTemplateSpecialization()
8309 SetNestedNameSpecifier(*this, Specialization, SS); in ActOnClassTemplateSpecialization()
9358 static bool ScopeSpecifierHasTemplateId(const CXXScopeSpec &SS) { in ScopeSpecifierHasTemplateId() argument
9359 if (!SS.isSet()) in ScopeSpecifierHasTemplateId()
9369 for (NestedNameSpecifier *NNS = SS.getScopeRep(); NNS; in ScopeSpecifierHasTemplateId()
9404 unsigned TagSpec, SourceLocation KWLoc, const CXXScopeSpec &SS, in ActOnExplicitInstantiation() argument
9525 SS.isSet(), TSK)) in ActOnExplicitInstantiation()
9566 SetNestedNameSpecifier(*this, Specialization, SS); in ActOnExplicitInstantiation()
9699 SourceLocation KWLoc, CXXScopeSpec &SS, in ActOnExplicitInstantiation() argument
9706 ActOnTag(S, TagSpec, TagUseKind::Reference, KWLoc, SS, Name, NameLoc, in ActOnExplicitInstantiation()
9738 if (!ScopeSpecifierHasTemplateId(SS)) in ActOnExplicitInstantiation()
9740 << Record << SS.getRange(); in ActOnExplicitInstantiation()
10229 const CXXScopeSpec &SS, in ActOnDependentTag() argument
10236 NestedNameSpecifier *NNS = SS.getScopeRep(); in ActOnDependentTag()
10245 << SS.getRange(); in ActOnDependentTag()
10257 TL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnDependentTag()
10263 const CXXScopeSpec &SS, in ActOnTypenameType() argument
10267 if (SS.isInvalid()) in ActOnTypenameType()
10277 NestedNameSpecifierLoc QualifierLoc = SS.getWithLocInContext(Context); in ActOnTypenameType()
10293 const CXXScopeSpec &SS, SourceLocation TemplateKWLoc, in ActOnTypenameType() argument
10309 dyn_cast_or_null<CXXRecordDecl>(computeDeclContext(SS, false)); in ActOnTypenameType()
10326 assert(DTN->getQualifier() == SS.getScopeRep()); in ActOnTypenameType()
10343 SpecTL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnTypenameType()
10369 SS.getScopeRep(), T); in ActOnTypenameType()
10372 TL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnTypenameType()
10463 CXXScopeSpec SS; in CheckTypenameType() local
10464 SS.Adopt(QualifierLoc); in CheckTypenameType()
10468 Ctx = computeDeclContext(SS); in CheckTypenameType()
10484 if (RequireCompleteDeclContext(SS, Ctx)) in CheckTypenameType()
10491 LookupQualifiedName(Result, Ctx, SS); in CheckTypenameType()
10532 SourceRange FullRange(KeywordLoc.isValid() ? KeywordLoc : SS.getBeginLoc(), in CheckTypenameType()
10628 SourceRange FullRange(KeywordLoc.isValid() ? KeywordLoc : SS.getBeginLoc(), in CheckTypenameType()
10704 bool Sema::RebuildNestedNameSpecifierInCurrentInstantiation(CXXScopeSpec &SS) { in RebuildNestedNameSpecifierInCurrentInstantiation() argument
10705 if (SS.isInvalid()) in RebuildNestedNameSpecifierInCurrentInstantiation()
10708 NestedNameSpecifierLoc QualifierLoc = SS.getWithLocInContext(Context); in RebuildNestedNameSpecifierInCurrentInstantiation()
10709 CurrentInstantiationRebuilder Rebuilder(*this, SS.getRange().getBegin(), in RebuildNestedNameSpecifierInCurrentInstantiation()
10716 SS.Adopt(Rebuilt); in RebuildNestedNameSpecifierInCurrentInstantiation()