Lines Matching refs:TemplateArgument
89 const TemplateArgument &Param,
90 TemplateArgument Arg,
107 const TemplateArgument *Params, unsigned NumParams,
108 const TemplateArgument *Args, unsigned NumArgs,
161 case TemplateArgument::Null: in checkDeducedTemplateArguments()
164 case TemplateArgument::Type: in checkDeducedTemplateArguments()
166 if (Y.getKind() == TemplateArgument::Type && in checkDeducedTemplateArguments()
172 case TemplateArgument::Integral: in checkDeducedTemplateArguments()
176 if (Y.getKind() == TemplateArgument::Expression || in checkDeducedTemplateArguments()
177 Y.getKind() == TemplateArgument::Declaration || in checkDeducedTemplateArguments()
178 (Y.getKind() == TemplateArgument::Integral && in checkDeducedTemplateArguments()
187 case TemplateArgument::Template: in checkDeducedTemplateArguments()
188 if (Y.getKind() == TemplateArgument::Template && in checkDeducedTemplateArguments()
195 case TemplateArgument::TemplateExpansion: in checkDeducedTemplateArguments()
196 if (Y.getKind() == TemplateArgument::TemplateExpansion && in checkDeducedTemplateArguments()
204 case TemplateArgument::Expression: in checkDeducedTemplateArguments()
208 if (Y.getKind() == TemplateArgument::Integral || in checkDeducedTemplateArguments()
209 Y.getKind() == TemplateArgument::Declaration) in checkDeducedTemplateArguments()
213 if (Y.getKind() == TemplateArgument::Expression) { in checkDeducedTemplateArguments()
225 case TemplateArgument::Declaration: in checkDeducedTemplateArguments()
228 if (Y.getKind() == TemplateArgument::Expression) in checkDeducedTemplateArguments()
233 if (Y.getKind() == TemplateArgument::Integral) in checkDeducedTemplateArguments()
238 if (Y.getKind() == TemplateArgument::Declaration && in checkDeducedTemplateArguments()
245 case TemplateArgument::NullPtr: in checkDeducedTemplateArguments()
248 if (Y.getKind() == TemplateArgument::Expression) in checkDeducedTemplateArguments()
253 if (Y.getKind() == TemplateArgument::Integral) in checkDeducedTemplateArguments()
257 if (Y.getKind() == TemplateArgument::NullPtr && in checkDeducedTemplateArguments()
264 case TemplateArgument::Pack: in checkDeducedTemplateArguments()
265 if (Y.getKind() != TemplateArgument::Pack || in checkDeducedTemplateArguments()
269 for (TemplateArgument::pack_iterator XA = X.pack_begin(), in checkDeducedTemplateArguments()
357 TemplateArgument New(D, NTTP->getType()); in DeduceNonTypeTemplateArgument()
409 Info.FirstArg = TemplateArgument(Param); in DeduceTemplateArguments()
410 Info.SecondArg = TemplateArgument(Arg); in DeduceTemplateArguments()
467 Info.FirstArg = TemplateArgument(QualType(Param, 0)); in DeduceTemplateArguments()
468 Info.SecondArg = TemplateArgument(Arg); in DeduceTemplateArguments()
475 Info.FirstArg = TemplateArgument(QualType(Param, 0)); in DeduceTemplateArguments()
476 Info.SecondArg = TemplateArgument(Arg); in DeduceTemplateArguments()
581 TemplateDeductionInfo &Info, TemplateArgument Pattern) in PackDeductionScope()
599 Deduced[Index] = TemplateArgument(); in PackDeductionScope()
617 const TemplateArgument *ExplicitArgs; in PackDeductionScope()
669 Pack.DeferredDeduction = TemplateArgument(); in finish()
672 NewPack = DeducedTemplateArgument(TemplateArgument::getEmptyPack()); in finish()
674 TemplateArgument *ArgumentPack = in finish()
675 new (S.Context) TemplateArgument[Pack.New.size()]; in finish()
678 TemplateArgument(llvm::makeArrayRef(ArgumentPack, Pack.New.size())), in finish()
1000 Info.FirstArg = TemplateArgument(ParamIn); in DeduceTemplateArgumentsByTypeMatch()
1001 Info.SecondArg = TemplateArgument(ArgIn); in DeduceTemplateArgumentsByTypeMatch()
1083 Info.FirstArg = TemplateArgument(Param); in DeduceTemplateArgumentsByTypeMatch()
1084 Info.SecondArg = TemplateArgument(Arg); in DeduceTemplateArgumentsByTypeMatch()
1110 Info.FirstArg = TemplateArgument(Param); in DeduceTemplateArgumentsByTypeMatch()
1111 Info.SecondArg = TemplateArgument(Arg); in DeduceTemplateArgumentsByTypeMatch()
1145 Info.FirstArg = TemplateArgument(ParamIn); in DeduceTemplateArgumentsByTypeMatch()
1146 Info.SecondArg = TemplateArgument(ArgIn); in DeduceTemplateArgumentsByTypeMatch()
1678 const TemplateArgument &Param, in DeduceTemplateArguments()
1679 TemplateArgument Arg, in DeduceTemplateArguments()
1689 case TemplateArgument::Null: in DeduceTemplateArguments()
1692 case TemplateArgument::Type: in DeduceTemplateArguments()
1693 if (Arg.getKind() == TemplateArgument::Type) in DeduceTemplateArguments()
1702 case TemplateArgument::Template: in DeduceTemplateArguments()
1703 if (Arg.getKind() == TemplateArgument::Template) in DeduceTemplateArguments()
1711 case TemplateArgument::TemplateExpansion: in DeduceTemplateArguments()
1714 case TemplateArgument::Declaration: in DeduceTemplateArguments()
1715 if (Arg.getKind() == TemplateArgument::Declaration && in DeduceTemplateArguments()
1723 case TemplateArgument::NullPtr: in DeduceTemplateArguments()
1724 if (Arg.getKind() == TemplateArgument::NullPtr && in DeduceTemplateArguments()
1732 case TemplateArgument::Integral: in DeduceTemplateArguments()
1733 if (Arg.getKind() == TemplateArgument::Integral) { in DeduceTemplateArguments()
1742 if (Arg.getKind() == TemplateArgument::Expression) { in DeduceTemplateArguments()
1752 case TemplateArgument::Expression: { in DeduceTemplateArguments()
1755 if (Arg.getKind() == TemplateArgument::Integral) in DeduceTemplateArguments()
1761 if (Arg.getKind() == TemplateArgument::Expression) in DeduceTemplateArguments()
1764 if (Arg.getKind() == TemplateArgument::Declaration) in DeduceTemplateArguments()
1776 case TemplateArgument::Pack: in DeduceTemplateArguments()
1791 static bool hasTemplateArgumentForDeduction(const TemplateArgument *&Args, in hasTemplateArgumentForDeduction()
1797 const TemplateArgument &Arg = Args[ArgIdx]; in hasTemplateArgumentForDeduction()
1798 if (Arg.getKind() != TemplateArgument::Pack) in hasTemplateArgumentForDeduction()
1810 static bool hasPackExpansionBeforeEnd(const TemplateArgument *Args, in hasPackExpansionBeforeEnd()
1814 const TemplateArgument &Arg = Args[ArgIdx]; in hasPackExpansionBeforeEnd()
1817 if (Args[ArgIdx].getKind() == TemplateArgument::Pack) { in hasPackExpansionBeforeEnd()
1837 const TemplateArgument *Params, unsigned NumParams, in DeduceTemplateArguments()
1838 const TemplateArgument *Args, unsigned NumArgs, in DeduceTemplateArguments()
1889 TemplateArgument Pattern = Params[ParamIdx].getPackExpansionPattern(); in DeduceTemplateArguments()
1938 const TemplateArgument &X, in isSameTemplateArg()
1939 const TemplateArgument &Y) { in isSameTemplateArg()
1944 case TemplateArgument::Null: in isSameTemplateArg()
1947 case TemplateArgument::Type: in isSameTemplateArg()
1951 case TemplateArgument::Declaration: in isSameTemplateArg()
1954 case TemplateArgument::NullPtr: in isSameTemplateArg()
1957 case TemplateArgument::Template: in isSameTemplateArg()
1958 case TemplateArgument::TemplateExpansion: in isSameTemplateArg()
1964 case TemplateArgument::Integral: in isSameTemplateArg()
1967 case TemplateArgument::Expression: { in isSameTemplateArg()
1974 case TemplateArgument::Pack: in isSameTemplateArg()
1978 for (TemplateArgument::pack_iterator XP = X.pack_begin(), in isSameTemplateArg()
2007 const TemplateArgument &Arg, in getTrivialTemplateArgumentLoc()
2011 case TemplateArgument::Null: in getTrivialTemplateArgumentLoc()
2014 case TemplateArgument::Type: in getTrivialTemplateArgumentLoc()
2018 case TemplateArgument::Declaration: { in getTrivialTemplateArgumentLoc()
2022 return TemplateArgumentLoc(TemplateArgument(E), E); in getTrivialTemplateArgumentLoc()
2025 case TemplateArgument::NullPtr: { in getTrivialTemplateArgumentLoc()
2029 return TemplateArgumentLoc(TemplateArgument(NTTPType, /*isNullPtr*/true), in getTrivialTemplateArgumentLoc()
2033 case TemplateArgument::Integral: { in getTrivialTemplateArgumentLoc()
2036 return TemplateArgumentLoc(TemplateArgument(E), E); in getTrivialTemplateArgumentLoc()
2039 case TemplateArgument::Template: in getTrivialTemplateArgumentLoc()
2040 case TemplateArgument::TemplateExpansion: { in getTrivialTemplateArgumentLoc()
2049 if (Arg.getKind() == TemplateArgument::Template) in getTrivialTemplateArgumentLoc()
2059 case TemplateArgument::Expression: in getTrivialTemplateArgumentLoc()
2062 case TemplateArgument::Pack: in getTrivialTemplateArgumentLoc()
2078 SmallVectorImpl<TemplateArgument> &Output) { in ConvertDeducedTemplateArgument()
2115 if (Arg.getKind() == TemplateArgument::Pack) { in ConvertDeducedTemplateArgument()
2118 SmallVector<TemplateArgument, 2> PackedArgsBuilder; in ConvertDeducedTemplateArgument()
2125 assert(InnerArg.getKind() != TemplateArgument::Pack && in ConvertDeducedTemplateArgument()
2155 TemplateArgument::CreatePackCopy(S.Context, PackedArgsBuilder)); in ConvertDeducedTemplateArgument()
2179 SmallVector<TemplateArgument, 4> Builder; in FinishTemplateArgumentDeduction()
2235 SmallVector<TemplateArgument, 4> ConvertedInstArgs; in FinishTemplateArgumentDeduction()
2243 TemplateArgument InstArg = ConvertedInstArgs.data()[I]; in FinishTemplateArgumentDeduction()
2287 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in DeduceTemplateArguments()
2319 SmallVector<TemplateArgument, 4> Builder; in FinishTemplateArgumentDeduction()
2372 SmallVector<TemplateArgument, 4> ConvertedInstArgs; in FinishTemplateArgumentDeduction()
2379 TemplateArgument InstArg = ConvertedInstArgs.data()[I]; in FinishTemplateArgumentDeduction()
2426 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in DeduceTemplateArguments()
2504 SmallVector<TemplateArgument, 4> Builder; in SubstituteExplicitTemplateArguments()
2509 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in SubstituteExplicitTemplateArguments()
2546 const TemplateArgument &Arg = Builder[I]; in SubstituteExplicitTemplateArguments()
2547 if (Arg.getKind() == TemplateArgument::Pack) { in SubstituteExplicitTemplateArguments()
2636 const TemplateArgument &Arg = ExplicitArgumentList->get(I); in SubstituteExplicitTemplateArguments()
2637 if (Arg.getKind() == TemplateArgument::Pack) in SubstituteExplicitTemplateArguments()
2771 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in FinishTemplateArgumentDeduction()
2784 SmallVector<TemplateArgument, 4> Builder; in FinishTemplateArgumentDeduction()
2830 const TemplateArgument *ExplicitArgs; in FinishTemplateArgumentDeduction()
2836 Builder.push_back(TemplateArgument( in FinishTemplateArgumentDeduction()
2845 DeducedTemplateArgument DeducedPack(TemplateArgument::getEmptyPack()); in FinishTemplateArgumentDeduction()
2941 Info.FirstArg = TemplateArgument(DeducedA); in FinishTemplateArgumentDeduction()
2942 Info.SecondArg = TemplateArgument(OriginalArg.OriginalArgType); in FinishTemplateArgumentDeduction()
4078 if (Deduced[0].getKind() != TemplateArgument::Type) in DeduceAutoType()
4555 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(),Deduced.end()); in getMoreSpecializedPartialSpecialization()
4568 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), in getMoreSpecializedPartialSpecialization()
4609 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), in getMoreSpecializedPartialSpecialization()
4625 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(),Deduced.end()); in getMoreSpecializedPartialSpecialization()
4640 const TemplateArgument &TemplateArg,
4967 const TemplateArgument &TemplateArg, in MarkUsedTemplateParameters()
4972 case TemplateArgument::Null: in MarkUsedTemplateParameters()
4973 case TemplateArgument::Integral: in MarkUsedTemplateParameters()
4974 case TemplateArgument::Declaration: in MarkUsedTemplateParameters()
4977 case TemplateArgument::NullPtr: in MarkUsedTemplateParameters()
4982 case TemplateArgument::Type: in MarkUsedTemplateParameters()
4987 case TemplateArgument::Template: in MarkUsedTemplateParameters()
4988 case TemplateArgument::TemplateExpansion: in MarkUsedTemplateParameters()
4994 case TemplateArgument::Expression: in MarkUsedTemplateParameters()
4999 case TemplateArgument::Pack: in MarkUsedTemplateParameters()