Lines Matching defs:Pack
364 case TemplateArgument::Pack: {
365 if (Y.getKind() != TemplateArgument::Pack ||
861 DeducedPack Pack(Index);
862 Pack.Saved = Deduced[Index];
872 Packs.push_back(Pack);
914 assert(!Packs.empty() && "Pack expansion without unexpanded packs?");
959 for (auto &Pack : Packs) {
960 if (Info.PendingDeducedPacks.size() > Pack.Index)
961 Pack.Outer = Info.PendingDeducedPacks[Pack.Index];
963 Info.PendingDeducedPacks.resize(Pack.Index + 1);
964 Info.PendingDeducedPacks[Pack.Index] = &Pack;
967 std::make_pair(Info.getDeducedDepth(), Pack.Index)) {
968 Pack.New.append(PartialPackArgs, PartialPackArgs + NumPartialPackArgs);
978 Deduced[Pack.Index] = Pack.New[PackElements];
985 for (auto &Pack : Packs)
986 Info.PendingDeducedPacks[Pack.Index] = Pack.Outer;
1027 for (auto &Pack : Packs) {
1028 DeducedTemplateArgument &DeducedArg = Deduced[Pack.Index];
1029 if (!Pack.New.empty() || !DeducedArg.isNull()) {
1030 while (Pack.New.size() < PackElements)
1031 Pack.New.push_back(DeducedTemplateArgument());
1032 if (Pack.New.size() == PackElements)
1033 Pack.New.push_back(DeducedArg);
1035 Pack.New[PackElements] = DeducedArg;
1036 DeducedArg = Pack.New.size() > PackElements + 1
1037 ? Pack.New[PackElements + 1]
1050 for (auto &Pack : Packs) {
1052 Deduced[Pack.Index] = Pack.Saved;
1067 Pack.New.resize(PackElements);
1071 if (Pack.New.empty()) {
1076 new (S.Context) TemplateArgument[Pack.New.size()];
1077 std::copy(Pack.New.begin(), Pack.New.end(), ArgumentPack);
1079 TemplateArgument(llvm::ArrayRef(ArgumentPack, Pack.New.size())),
1085 Pack.New[0].wasDeducedFromArrayBound());
1090 if (Pack.Outer) {
1091 if (Pack.Outer->DeferredDeduction.isNull()) {
1094 Pack.Outer->DeferredDeduction = NewPack;
1097 Loc = &Pack.Outer->DeferredDeduction;
1099 Loc = &Deduced[Pack.Index];
1108 OldPack.getKind() == TemplateArgument::Pack &&
1109 NewPack.getKind() == TemplateArgument::Pack &&
1113 if (!Result.isNull() && !Pack.DeferredDeduction.isNull()) {
1115 NewPack = Pack.DeferredDeduction;
1119 NamedDecl *Param = TemplateParams->getParam(Pack.Index);
2509 case TemplateArgument::Pack:
2519 case TemplateArgument::Pack:
2540 if (Arg.getKind() != TemplateArgument::Pack)
2543 assert(ArgIdx == Args.size() - 1 && "Pack not at the end of argument list?");
2557 if (A.getKind() == TemplateArgument::Pack)
2718 case TemplateArgument::Pack: {
2807 case TemplateArgument::Pack:
2847 if (Arg.getKind() == TemplateArgument::Pack) {
2858 assert(InnerArg.getKind() != TemplateArgument::Pack &&
3508 if (Arg.getKind() == TemplateArgument::Pack) {
5659 if (TA1.getKind() == TemplateArgument::Pack) {
5663 assert(TA2.getKind() == TemplateArgument::Pack);
6022 if (TA1.getKind() == TemplateArgument::Pack) {
6026 assert(TA2.getKind() == TemplateArgument::Pack);
6181 if (Arg.getKind() == TemplateArgument::Pack) {
6687 case TemplateArgument::Pack: