Lines Matching refs:TemplateArgument

142                         ArrayRef<TemplateArgument> Ps,
143 ArrayRef<TemplateArgument> As,
149 const TemplateArgument &TemplateArg,
235 case TemplateArgument::Null: in checkDeducedTemplateArguments()
238 case TemplateArgument::Type: in checkDeducedTemplateArguments()
240 if (Y.getKind() == TemplateArgument::Type && in checkDeducedTemplateArguments()
252 case TemplateArgument::Integral: in checkDeducedTemplateArguments()
256 if (Y.getKind() == TemplateArgument::Expression || in checkDeducedTemplateArguments()
257 Y.getKind() == TemplateArgument::Declaration || in checkDeducedTemplateArguments()
258 (Y.getKind() == TemplateArgument::Integral && in checkDeducedTemplateArguments()
265 case TemplateArgument::Template: in checkDeducedTemplateArguments()
266 if (Y.getKind() == TemplateArgument::Template && in checkDeducedTemplateArguments()
273 case TemplateArgument::TemplateExpansion: in checkDeducedTemplateArguments()
274 if (Y.getKind() == TemplateArgument::TemplateExpansion && in checkDeducedTemplateArguments()
282 case TemplateArgument::Expression: { in checkDeducedTemplateArguments()
283 if (Y.getKind() != TemplateArgument::Expression) in checkDeducedTemplateArguments()
297 case TemplateArgument::Declaration: in checkDeducedTemplateArguments()
302 if (Y.getKind() == TemplateArgument::Expression) in checkDeducedTemplateArguments()
308 if (Y.getKind() == TemplateArgument::Integral) { in checkDeducedTemplateArguments()
310 return TemplateArgument(Context, Y.getAsIntegral(), in checkDeducedTemplateArguments()
317 if (Y.getKind() == TemplateArgument::Declaration && in checkDeducedTemplateArguments()
324 case TemplateArgument::NullPtr: in checkDeducedTemplateArguments()
327 if (Y.getKind() == TemplateArgument::Expression) in checkDeducedTemplateArguments()
332 if (Y.getKind() == TemplateArgument::Integral) in checkDeducedTemplateArguments()
336 if (Y.getKind() == TemplateArgument::NullPtr) in checkDeducedTemplateArguments()
342 case TemplateArgument::Pack: { in checkDeducedTemplateArguments()
343 if (Y.getKind() != TemplateArgument::Pack || in checkDeducedTemplateArguments()
347 llvm::SmallVector<TemplateArgument, 8> NewPack; in checkDeducedTemplateArguments()
348 for (TemplateArgument::pack_iterator XA = X.pack_begin(), in checkDeducedTemplateArguments()
352 TemplateArgument Merged = checkDeducedTemplateArguments( in checkDeducedTemplateArguments()
361 TemplateArgument::CreatePackCopy(Context, NewPack), in checkDeducedTemplateArguments()
479 TemplateArgument New(D, T); in DeduceNonTypeTemplateArgument()
524 Info.FirstArg = TemplateArgument(Param); in DeduceTemplateArguments()
525 Info.SecondArg = TemplateArgument(Arg); in DeduceTemplateArguments()
558 ArrayRef<TemplateArgument> PResolved = TP->template_arguments(); in DeduceTemplateSpecArguments()
589 Info.FirstArg = TemplateArgument(P); in DeduceTemplateSpecArguments()
590 Info.SecondArg = TemplateArgument(A); in DeduceTemplateSpecArguments()
677 TemplateDeductionInfo &Info, TemplateArgument Pattern) in PackDeductionScope()
698 Deduced[Index] = TemplateArgument(); in addPack()
710 unsigned addPacks(TemplateArgument Pattern) { in addPacks()
714 llvm::SmallVector<TemplateArgument, 4> ExtraDeductions; in addPacks()
736 auto Collect = [&](TemplateArgument Pattern) { in addPacks()
763 const TemplateArgument *PartialPackArgs = nullptr; in finishConstruction()
891 NewPack = DeducedTemplateArgument(TemplateArgument::getEmptyPack()); in finish()
893 TemplateArgument *ArgumentPack = in finish()
894 new (S.Context) TemplateArgument[Pack.New.size()]; in finish()
897 TemplateArgument(llvm::makeArrayRef(ArgumentPack, Pack.New.size())), in finish()
1387 Info.FirstArg = TemplateArgument(P); in DeduceTemplateArgumentsByTypeMatch()
1388 Info.SecondArg = TemplateArgument(A); in DeduceTemplateArgumentsByTypeMatch()
1461 Info.FirstArg = TemplateArgument(P); in DeduceTemplateArgumentsByTypeMatch()
1462 Info.SecondArg = TemplateArgument(A); in DeduceTemplateArgumentsByTypeMatch()
1495 Info.FirstArg = TemplateArgument(P); in DeduceTemplateArgumentsByTypeMatch()
1496 Info.SecondArg = TemplateArgument(A); in DeduceTemplateArgumentsByTypeMatch()
1525 Info.FirstArg = TemplateArgument(P); in DeduceTemplateArgumentsByTypeMatch()
1526 Info.SecondArg = TemplateArgument(A); in DeduceTemplateArgumentsByTypeMatch()
2195 const TemplateArgument &P, TemplateArgument A, in DeduceTemplateArguments()
2205 case TemplateArgument::Null: in DeduceTemplateArguments()
2208 case TemplateArgument::Type: in DeduceTemplateArguments()
2209 if (A.getKind() == TemplateArgument::Type) in DeduceTemplateArguments()
2216 case TemplateArgument::Template: in DeduceTemplateArguments()
2217 if (A.getKind() == TemplateArgument::Template) in DeduceTemplateArguments()
2224 case TemplateArgument::TemplateExpansion: in DeduceTemplateArguments()
2227 case TemplateArgument::Declaration: in DeduceTemplateArguments()
2228 if (A.getKind() == TemplateArgument::Declaration && in DeduceTemplateArguments()
2236 case TemplateArgument::NullPtr: in DeduceTemplateArguments()
2237 if (A.getKind() == TemplateArgument::NullPtr && in DeduceTemplateArguments()
2245 case TemplateArgument::Integral: in DeduceTemplateArguments()
2246 if (A.getKind() == TemplateArgument::Integral) { in DeduceTemplateArguments()
2254 case TemplateArgument::Expression: in DeduceTemplateArguments()
2257 if (A.getKind() == TemplateArgument::Integral) in DeduceTemplateArguments()
2261 if (A.getKind() == TemplateArgument::NullPtr) in DeduceTemplateArguments()
2264 if (A.getKind() == TemplateArgument::Expression) in DeduceTemplateArguments()
2267 if (A.getKind() == TemplateArgument::Declaration) in DeduceTemplateArguments()
2279 case TemplateArgument::Pack: in DeduceTemplateArguments()
2294 static bool hasTemplateArgumentForDeduction(ArrayRef<TemplateArgument> &Args, in hasTemplateArgumentForDeduction()
2299 const TemplateArgument &Arg = Args[ArgIdx]; in hasTemplateArgumentForDeduction()
2300 if (Arg.getKind() != TemplateArgument::Pack) in hasTemplateArgumentForDeduction()
2311 static bool hasPackExpansionBeforeEnd(ArrayRef<TemplateArgument> Args) { in hasPackExpansionBeforeEnd()
2317 if (A.getKind() == TemplateArgument::Pack) in hasPackExpansionBeforeEnd()
2331 ArrayRef<TemplateArgument> Ps, in DeduceTemplateArguments()
2332 ArrayRef<TemplateArgument> As, in DeduceTemplateArguments()
2349 const TemplateArgument &P = Ps[ParamIdx]; in DeduceTemplateArguments()
2382 TemplateArgument Pattern = P.getPackExpansionPattern(); in DeduceTemplateArguments()
2423 TemplateArgument X, in isSameTemplateArg()
2424 const TemplateArgument &Y, in isSameTemplateArg()
2435 case TemplateArgument::Null: in isSameTemplateArg()
2438 case TemplateArgument::Type: in isSameTemplateArg()
2442 case TemplateArgument::Declaration: in isSameTemplateArg()
2445 case TemplateArgument::NullPtr: in isSameTemplateArg()
2448 case TemplateArgument::Template: in isSameTemplateArg()
2449 case TemplateArgument::TemplateExpansion: in isSameTemplateArg()
2455 case TemplateArgument::Integral: in isSameTemplateArg()
2458 case TemplateArgument::Expression: { in isSameTemplateArg()
2465 case TemplateArgument::Pack: in isSameTemplateArg()
2469 for (TemplateArgument::pack_iterator XP = X.pack_begin(), in isSameTemplateArg()
2496 Sema::getTrivialTemplateArgumentLoc(const TemplateArgument &Arg, in getTrivialTemplateArgumentLoc()
2499 case TemplateArgument::Null: in getTrivialTemplateArgumentLoc()
2502 case TemplateArgument::Type: in getTrivialTemplateArgumentLoc()
2506 case TemplateArgument::Declaration: { in getTrivialTemplateArgumentLoc()
2511 return TemplateArgumentLoc(TemplateArgument(E), E); in getTrivialTemplateArgumentLoc()
2514 case TemplateArgument::NullPtr: { in getTrivialTemplateArgumentLoc()
2519 return TemplateArgumentLoc(TemplateArgument(NTTPType, /*isNullPtr*/true), in getTrivialTemplateArgumentLoc()
2523 case TemplateArgument::Integral: { in getTrivialTemplateArgumentLoc()
2526 return TemplateArgumentLoc(TemplateArgument(E), E); in getTrivialTemplateArgumentLoc()
2529 case TemplateArgument::Template: in getTrivialTemplateArgumentLoc()
2530 case TemplateArgument::TemplateExpansion: { in getTrivialTemplateArgumentLoc()
2539 if (Arg.getKind() == TemplateArgument::Template) in getTrivialTemplateArgumentLoc()
2547 case TemplateArgument::Expression: in getTrivialTemplateArgumentLoc()
2550 case TemplateArgument::Pack: in getTrivialTemplateArgumentLoc()
2572 SmallVectorImpl<TemplateArgument> &Output) { in ConvertDeducedTemplateArgument()
2591 if (Arg.getKind() == TemplateArgument::Pack) { in ConvertDeducedTemplateArgument()
2594 SmallVector<TemplateArgument, 2> PackedArgsBuilder; in ConvertDeducedTemplateArgument()
2601 assert(InnerArg.getKind() != TemplateArgument::Pack && in ConvertDeducedTemplateArgument()
2647 TemplateArgument::CreatePackCopy(S.Context, PackedArgsBuilder)); in ConvertDeducedTemplateArgument()
2661 TemplateDeductionInfo &Info, SmallVectorImpl<TemplateArgument> &Builder, in ConvertDeducedTemplateArguments()
2790 ArrayRef<TemplateArgument> DeducedArgs, in CheckDeducedArgumentConstraints()
2823 SmallVector<TemplateArgument, 4> Builder; in FinishTemplateArgumentDeduction()
2862 SmallVector<TemplateArgument, 4> ConvertedInstArgs; in FinishTemplateArgumentDeduction()
2872 TemplateArgument InstArg = ConvertedInstArgs.data()[I]; in FinishTemplateArgumentDeduction()
2908 SmallVector<TemplateArgument, 4> Builder; in FinishTemplateArgumentDeduction()
2916 TemplateArgument InstArg = Builder[I]; in FinishTemplateArgumentDeduction()
2970 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in DeduceTemplateArguments()
3020 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in DeduceTemplateArguments()
3115 SmallVector<TemplateArgument, 4> Builder; in SubstituteExplicitTemplateArguments()
3120 SmallVector<TemplateArgument, 4> DeducedArgs; in SubstituteExplicitTemplateArguments()
3155 const TemplateArgument &Arg = Builder.back(); in SubstituteExplicitTemplateArguments()
3156 if (Arg.getKind() == TemplateArgument::Pack) { in SubstituteExplicitTemplateArguments()
3267 const TemplateArgument &Arg = ExplicitArgumentList->get(I); in SubstituteExplicitTemplateArguments()
3286 Info.FirstArg = TemplateArgument(DeducedA); in CheckOriginalCallArgDeduction()
3287 Info.SecondArg = TemplateArgument(OriginalArg.OriginalArgType); in CheckOriginalCallArgDeduction()
3443 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), Deduced.end()); in FinishTemplateArgumentDeduction()
3455 SmallVector<TemplateArgument, 4> Builder; in FinishTemplateArgumentDeduction()
4565 TemplateArgumentLoc(TemplateArgument(Deduced), in CheckDeducedPlaceholderConstraints()
4571 llvm::SmallVector<TemplateArgument, 4> Converted; in CheckDeducedPlaceholderConstraints()
4745 Deduced[0].getKind() != TemplateArgument::Null) in DeduceAutoType()
4761 if (Deduced[0].getKind() != TemplateArgument::Type) in DeduceAutoType()
5350 SmallVector<TemplateArgument, 4> DeducedArgs(Deduced.begin(), in isAtLeastAsSpecializedAs()
5479 SmallVector<TemplateArgument, 8> PrimaryArgs; in isMoreSpecializedThanPrimary()
5529 SmallVector<TemplateArgument, 8> AArgs; in isTemplateTemplateParameterAtLeastAsSpecializedAs()
5536 SmallVector<TemplateArgument, 4> PArgs; in isTemplateTemplateParameterAtLeastAsSpecializedAs()
5546 TemplateArgument Arg = PArgs[I]; in isTemplateTemplateParameterAtLeastAsSpecializedAs()
5547 if (Arg.getKind() == TemplateArgument::Pack) { in isTemplateTemplateParameterAtLeastAsSpecializedAs()
5986 const TemplateArgument &TemplateArg, in MarkUsedTemplateParameters()
5991 case TemplateArgument::Null: in MarkUsedTemplateParameters()
5992 case TemplateArgument::Integral: in MarkUsedTemplateParameters()
5993 case TemplateArgument::Declaration: in MarkUsedTemplateParameters()
5996 case TemplateArgument::NullPtr: in MarkUsedTemplateParameters()
6001 case TemplateArgument::Type: in MarkUsedTemplateParameters()
6006 case TemplateArgument::Template: in MarkUsedTemplateParameters()
6007 case TemplateArgument::TemplateExpansion: in MarkUsedTemplateParameters()
6013 case TemplateArgument::Expression: in MarkUsedTemplateParameters()
6018 case TemplateArgument::Pack: in MarkUsedTemplateParameters()