Lines Matching defs:Template

38 #include "clang/Sema/Template.h"
268 TemplateName Template;
275 Template = Context.getOverloadedTemplateName(R.begin(), R.end());
293 Template =
298 Template = Context.getQualifiedTemplateName(Qualifier, hasTemplateKeyword,
299 Template);
318 TemplateResult = TemplateTy::make(Template);
324 ParsedTemplateTy *Template /*=nullptr*/) {
346 if (Template) {
349 *Template = TemplateTy::make(Name);
406 // Template names cannot appear inside an Objective-C class or object type
890 assert(Kind == Template &&
893 "Template template argument pack expansion without packs");
916 case ParsedTemplateArgument::Template: {
917 TemplateName Template = Arg.getAsTemplate().get();
920 TArg = TemplateArgument(Template, std::optional<unsigned int>());
922 TArg = Template;
1002 "Template type parameter not in template parameter scope!");
1070 TemplateName TN = TypeConstr->Template.get();
1111 TemplateName TN = TypeConstr->Template.get();
1580 "Template template parameter not in template parameter scope!");
2729 if (TemplateDecl *Template = TST->getTemplateName().getAsTemplateDecl()) {
2730 if (TypeDecl *Parent = dyn_cast<TypeDecl>(Template->getDeclContext()))
2868 if (TemplateDecl *Template = TST->getTemplateName().getAsTemplateDecl()) {
2869 ExpectedTemplateParams = Template->getTemplateParameters();
3037 if (TemplateDecl *Template = Name.getAsTemplateDecl()) {
3038 Diag(Template->getLocation(), diag::note_template_declared_here)
3039 << (isa<FunctionTemplateDecl>(Template)
3041 : isa<ClassTemplateDecl>(Template)
3043 : isa<VarTemplateDecl>(Template)
3045 : isa<TypeAliasTemplateDecl>(Template) ? 3 : 4)
3046 << Template->getDeclName();
3302 TemplateDecl *Template = Name.getAsTemplateDecl();
3303 if (!Template || isa<FunctionTemplateDecl>(Template) ||
3304 isa<VarTemplateDecl>(Template) || isa<ConceptDecl>(Template)) {
3320 if (CheckTemplateArgumentList(Template, TemplateLoc, TemplateArgs, false,
3328 dyn_cast<TypeAliasTemplateDecl>(Template)) {
3337 TemplateArgLists.addOuterTemplateArguments(Template, CanonicalConverted,
3396 } else if (auto *BTD = dyn_cast<BuiltinTemplateDecl>(Template)) {
3418 if (isa<ClassTemplateDecl>(Template)) {
3450 dyn_cast<ClassTemplateDecl>(Template)) {
3475 MultiLevelTemplateArgumentList TemplateArgLists(Template,
3608 TemplateName Template = TemplateD.get();
3609 if (Template.getAsAssumedTemplateName() &&
3610 resolveAssumedTemplateNameAsType(S, Template, TemplateIILoc))
3617 if (DependentTemplateName *DTN = Template.getAsDependentTemplateName()) {
3637 QualType SpecTy = CheckTemplateIdType(Template, TemplateIILoc, TemplateArgs);
3676 TemplateName Template = TemplateD.get();
3687 if (DependentTemplateName *DTN = Template.getAsDependentTemplateName()) {
3709 dyn_cast_or_null<TypeAliasTemplateDecl>(Template.getAsTemplateDecl())) {
3719 QualType Result = CheckTemplateIdType(Template, TemplateLoc, TemplateArgs);
3795 case TemplateArgument::Template:
3841 auto *Template = Partial->getSpecializedTemplate();
3844 << isa<VarTemplateDecl>(Template);
3857 S.NoteTemplateLocation(*Template);
3859 Template->getAssociatedConstraints(TemplateAC);
3861 S.MaybeEmitAmbiguousAtomicConstraintsDiagnostic(Partial, PartialAC, Template,
3961 TemplateName Name = TemplateId->Template.get();
4149 Sema::CheckVarTemplateId(VarTemplateDecl *Template, SourceLocation TemplateLoc,
4152 assert(Template && "A variable template id without template?");
4157 Template, TemplateNameLoc,
4164 if (Template->getDeclContext()->isDependentContext() ||
4173 Template->findSpecialization(CanonicalConverted, InsertPos)) {
4183 VarDecl *InstantiationPattern = Template->getTemplatedDecl();
4198 Template->getPartialSpecializations(PartialSpecs);
4210 DeclAccessPair::make(Template, AS_public), Partial,
4263 // InstantiationPattern = Template->getTemplatedDecl();
4271 Template, InstantiationPattern, PartialSpecArgs, TemplateArgs,
4302 VarTemplateDecl *Template, NamedDecl *FoundD, SourceLocation TemplateLoc,
4305 DeclResult Decl = CheckVarTemplateId(Template, TemplateLoc, NameInfo.getLoc(),
4627 case TemplateArgument::Template:
4737 /// \param Template the template that we are synthesizing template arguments
4756 Sema &SemaRef, TemplateDecl *Template, SourceLocation TemplateLoc,
4766 Sema::InstantiatingTemplate Inst(SemaRef, TemplateLoc, Param, Template,
4773 MultiLevelTemplateArgumentList TemplateArgLists(Template, SugaredConverted,
4779 if (const auto *Rec = dyn_cast<CXXRecordDecl>(Template->getDeclContext()))
4781 Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext(),
4799 /// \param Template the template that we are synthesizing template arguments
4816 Sema &SemaRef, TemplateDecl *Template, SourceLocation TemplateLoc,
4821 Sema::InstantiatingTemplate Inst(SemaRef, TemplateLoc, Param, Template,
4828 MultiLevelTemplateArgumentList TemplateArgLists(Template, SugaredConverted,
4833 Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext());
4846 /// \param Template the template that we are synthesizing template arguments
4866 Sema &SemaRef, TemplateDecl *Template, SourceLocation TemplateLoc,
4872 SemaRef, TemplateLoc, TemplateParameter(Param), Template,
4878 MultiLevelTemplateArgumentList TemplateArgLists(Template, SugaredConverted,
4883 Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext());
4901 TemplateDecl *Template, SourceLocation TemplateLoc,
4913 if (SubstDefaultTemplateArgument(*this, Template, TemplateLoc, RAngleLoc,
4927 if (SubstDefaultTemplateArgument(*this, Template, TemplateLoc, RAngleLoc,
4942 *this, Template, TemplateLoc, RAngleLoc, TempTempParm, SugaredConverted,
4988 NamedDecl *Param, TemplateArgumentLoc &Arg, NamedDecl *Template,
5009 !isa<TemplateTemplateParmDecl>(Template) &&
5010 !Template->getDeclContext()->isDependentContext()) {
5012 InstantiatingTemplate Inst(*this, TemplateLoc, Template, NTTP,
5018 MultiLevelTemplateArgumentList MLTAL(Template, SugaredConverted,
5079 case TemplateArgument::Template:
5176 InstantiatingTemplate Inst(*this, TemplateLoc, Template, TempParm,
5185 Template, SugaredConverted, /*Final=*/true),
5206 case TemplateArgument::Template:
5277 TemplateDecl *Template, SourceLocation TemplateLoc,
5292 TemplateParameterList *Params = GetTemplateParameterList(Template);
5301 bool isTemplateTemplateParameter = isa<TemplateTemplateParmDecl>(Template);
5330 << (int)getTemplateNameKindForDiagnostics(TemplateName(Template))
5331 << Template;
5332 NoteTemplateLocation(*Template, Params->getSourceRange());
5339 if (CheckTemplateArgument(*Param, NewArgs[ArgIdx], Template, TemplateLoc,
5358 (isa<TypeAliasTemplateDecl>(Template) ||
5359 isa<ConceptDecl>(Template))) {
5367 << (isa<ConceptDecl>(Template) ? 1 : 0)
5442 (Template->getMostRecentDecl()->getKind() != Decl::Kind::Concept) &&
5469 return diagnoseMissingArgument(*this, TemplateLoc, Template, TTP,
5472 if (SubstDefaultTemplateArgument(*this, Template, TemplateLoc, RAngleLoc,
5479 return diagnoseMissingArgument(*this, TemplateLoc, Template, NTTP,
5482 if (SubstDefaultTemplateArgument(*this, Template, TemplateLoc, RAngleLoc,
5491 return diagnoseMissingArgument(*this, TemplateLoc, Template, TempParm,
5496 *this, Template, TemplateLoc, RAngleLoc, TempParm, SugaredConverted,
5510 InstantiatingTemplate Inst(*this, RAngleLoc, Template, *Param,
5517 if (CheckTemplateArgument(*Param, Arg, Template, TemplateLoc, RAngleLoc, 0,
5554 << (int)getTemplateNameKindForDiagnostics(TemplateName(Template))
5555 << Template
5557 NoteTemplateLocation(*Template, Params->getSourceRange());
5569 DeclContext *NewContext = Template->getDeclContext();
5579 dyn_cast_or_null<CXXMethodDecl>(Template->getTemplatedDecl()))
5586 Template, NewContext, /*Final=*/false, CanonicalConverted,
5591 Template, MLTAL,
7105 TemplateDecl *Template = Name.getAsTemplateDecl();
7106 if (!Template) {
7112 if (Template->isInvalidDecl())
7127 if (!isa<ClassTemplateDecl>(Template) &&
7128 !isa<TemplateTemplateParmDecl>(Template) &&
7129 !isa<TypeAliasTemplateDecl>(Template) &&
7130 !isa<BuiltinTemplateDecl>(Template)) {
7131 assert(isa<FunctionTemplateDecl>(Template) &&
7134 Diag(Template->getLocation(), diag::note_template_arg_refers_here_func)
7135 << Template;
7147 Template->getTemplateParameters(), Params, false,
7152 !Template->hasAssociatedConstraints())
7156 Params, Template, Arg.getLocation(), IsDeduced)) {
7169 Template->getAssociatedConstraints(TemplateAC);
7172 if (IsAtLeastAsConstrained(Param, ParamsAC, Template, TemplateAC,
7178 << Template << Param << Arg.getSourceRange();
7180 Diag(Template->getLocation(), diag::note_entity_declared_at)
7181 << Template;
7182 MaybeEmitAmbiguousAtomicConstraintsDiagnostic(Param, ParamsAC, Template,
7191 return !TemplateParameterListsAreEqual(Template->getTemplateParameters(),
7480 case TemplateArgument::Template:
8078 TemplateName Name = TemplateId.Template.get();
8856 // Template argument deduction failed; record why it failed, so
10322 TemplateName Template = TemplateIn.get();
10323 if (DependentTemplateName *DTN = Template.getAsDependentTemplateName()) {
10329 Diag(TemplateIILoc, diag::err_template_id_not_a_type) << Template;
10330 NoteAllFoundTemplates(Template);
10353 QualType T = CheckTemplateIdType(Template, TemplateIILoc, TemplateArgs);