Lines Matching refs:Pack

356   case TemplateArgument::Pack: {
357 if (Y.getKind() != TemplateArgument::Pack ||
711 DeducedPack Pack(Index);
712 Pack.Saved = Deduced[Index];
722 Packs.push_back(Pack);
764 assert(!Packs.empty() && "Pack expansion without unexpanded packs?");
809 for (auto &Pack : Packs) {
810 if (Info.PendingDeducedPacks.size() > Pack.Index)
811 Pack.Outer = Info.PendingDeducedPacks[Pack.Index];
813 Info.PendingDeducedPacks.resize(Pack.Index + 1);
814 Info.PendingDeducedPacks[Pack.Index] = &Pack;
817 std::make_pair(Info.getDeducedDepth(), Pack.Index)) {
818 Pack.New.append(PartialPackArgs, PartialPackArgs + NumPartialPackArgs);
828 Deduced[Pack.Index] = Pack.New[PackElements];
835 for (auto &Pack : Packs)
836 Info.PendingDeducedPacks[Pack.Index] = Pack.Outer;
860 for (auto &Pack : Packs) {
861 DeducedTemplateArgument &DeducedArg = Deduced[Pack.Index];
862 if (!Pack.New.empty() || !DeducedArg.isNull()) {
863 while (Pack.New.size() < PackElements)
864 Pack.New.push_back(DeducedTemplateArgument());
865 if (Pack.New.size() == PackElements)
866 Pack.New.push_back(DeducedArg);
868 Pack.New[PackElements] = DeducedArg;
869 DeducedArg = Pack.New.size() > PackElements + 1
870 ? Pack.New[PackElements + 1]
883 for (auto &Pack : Packs) {
885 Deduced[Pack.Index] = Pack.Saved;
900 Pack.New.resize(PackElements);
904 if (Pack.New.empty()) {
909 new (S.Context) TemplateArgument[Pack.New.size()];
910 std::copy(Pack.New.begin(), Pack.New.end(), ArgumentPack);
912 TemplateArgument(llvm::makeArrayRef(ArgumentPack, Pack.New.size())),
918 Pack.New[0].wasDeducedFromArrayBound());
923 if (Pack.Outer) {
924 if (Pack.Outer->DeferredDeduction.isNull()) {
927 Pack.Outer->DeferredDeduction = NewPack;
930 Loc = &Pack.Outer->DeferredDeduction;
932 Loc = &Deduced[Pack.Index];
941 if (!Result.isNull() && !Pack.DeferredDeduction.isNull()) {
943 NewPack = Pack.DeferredDeduction;
947 NamedDecl *Param = TemplateParams->getParam(Pack.Index);
2415 case TemplateArgument::Pack:
2436 if (Arg.getKind() != TemplateArgument::Pack)
2439 assert(ArgIdx == Args.size() - 1 && "Pack not at the end of argument list?");
2453 if (A.getKind() == TemplateArgument::Pack)
2604 case TemplateArgument::Pack:
2689 case TemplateArgument::Pack:
2730 if (Arg.getKind() == TemplateArgument::Pack) {
2740 assert(InnerArg.getKind() != TemplateArgument::Pack &&
3281 if (Arg.getKind() == TemplateArgument::Pack) {
5669 if (Arg.getKind() == TemplateArgument::Pack) {
6140 case TemplateArgument::Pack: