Lines Matching defs:Pack

373   case TemplateArgument::Pack: {
374 if (Y.getKind() != TemplateArgument::Pack ||
828 DeducedPack Pack(Index);
830 Pack.Saved = Deduced[Index];
841 Packs.push_back(Pack);
886 assert(!Packs.empty() && "Pack expansion without unexpanded packs?");
933 for (auto &Pack : Packs) {
934 if (Info.PendingDeducedPacks.size() > Pack.Index)
935 Pack.Outer = Info.PendingDeducedPacks[Pack.Index];
937 Info.PendingDeducedPacks.resize(Pack.Index + 1);
938 Info.PendingDeducedPacks[Pack.Index] = &Pack;
941 std::make_pair(Info.getDeducedDepth(), Pack.Index)) {
942 Pack.New.append(PartialPackArgs, PartialPackArgs + NumPartialPackArgs);
952 Deduced[Pack.Index] = Pack.New[PackElements];
959 for (auto &Pack : Packs)
960 Info.PendingDeducedPacks[Pack.Index] = Pack.Outer;
1002 for (auto &Pack : Packs) {
1003 DeducedTemplateArgument &DeducedArg = Deduced[Pack.Index];
1004 if (!Pack.New.empty() || !DeducedArg.isNull()) {
1005 while (Pack.New.size() < PackElements)
1006 Pack.New.push_back(DeducedTemplateArgument());
1007 if (Pack.New.size() == PackElements)
1008 Pack.New.push_back(DeducedArg);
1010 Pack.New[PackElements] = DeducedArg;
1011 DeducedArg = Pack.New.size() > PackElements + 1
1012 ? Pack.New[PackElements + 1]
1028 for (auto &Pack : Packs) {
1031 Deduced[Pack.Index] = Pack.Saved;
1046 Pack.New.resize(PackElements);
1050 if (Pack.New.empty()) {
1055 new (S.Context) TemplateArgument[Pack.New.size()];
1056 std::copy(Pack.New.begin(), Pack.New.end(), ArgumentPack);
1058 TemplateArgument(llvm::ArrayRef(ArgumentPack, Pack.New.size())),
1064 Pack.New[0].wasDeducedFromArrayBound());
1069 if (Pack.Outer) {
1070 if (Pack.Outer->DeferredDeduction.isNull()) {
1073 Pack.Outer->DeferredDeduction = NewPack;
1076 Loc = &Pack.Outer->DeferredDeduction;
1078 Loc = &Deduced[Pack.Index];
1087 OldPack.getKind() == TemplateArgument::Pack &&
1088 NewPack.getKind() == TemplateArgument::Pack &&
1092 if (!Result.isNull() && !Pack.DeferredDeduction.isNull()) {
1094 NewPack = Pack.DeferredDeduction;
1098 NamedDecl *Param = TemplateParams->getParam(Pack.Index);
2621 case TemplateArgument::Pack:
2631 case TemplateArgument::Pack:
2652 if (Arg.getKind() != TemplateArgument::Pack)
2655 assert(ArgIdx == Args.size() - 1 && "Pack not at the end of argument list?");
2669 if (A.getKind() == TemplateArgument::Pack)
2856 case TemplateArgument::Pack: {
2945 case TemplateArgument::Pack:
2989 if (Arg.getKind() == TemplateArgument::Pack) {
3000 assert(InnerArg.getKind() != TemplateArgument::Pack &&
3410 if (X.getKind() == TemplateArgument::Pack) {
3716 if (Arg.getKind() == TemplateArgument::Pack) {
6010 if (TA1.getKind() == TemplateArgument::Pack) {
6014 assert(TA2.getKind() == TemplateArgument::Pack);
6379 if (TA1.getKind() == TemplateArgument::Pack) {
6383 assert(TA2.getKind() == TemplateArgument::Pack);
6539 if (Arg.getKind() == TemplateArgument::Pack) {
7122 case TemplateArgument::Pack: