Lines Matching refs:Pack

364   case TemplateArgument::Pack: {  in checkDeducedTemplateArguments()
365 if (Y.getKind() != TemplateArgument::Pack || in checkDeducedTemplateArguments()
861 DeducedPack Pack(Index); in addPack() local
862 Pack.Saved = Deduced[Index]; in addPack()
872 Packs.push_back(Pack); in addPack()
959 for (auto &Pack : Packs) { in finishConstruction() local
960 if (Info.PendingDeducedPacks.size() > Pack.Index) in finishConstruction()
961 Pack.Outer = Info.PendingDeducedPacks[Pack.Index]; in finishConstruction()
963 Info.PendingDeducedPacks.resize(Pack.Index + 1); in finishConstruction()
964 Info.PendingDeducedPacks[Pack.Index] = &Pack; in finishConstruction()
967 std::make_pair(Info.getDeducedDepth(), Pack.Index)) { in finishConstruction()
968 Pack.New.append(PartialPackArgs, PartialPackArgs + NumPartialPackArgs); in finishConstruction()
978 Deduced[Pack.Index] = Pack.New[PackElements]; in finishConstruction()
985 for (auto &Pack : Packs) in ~PackDeductionScope() local
986 Info.PendingDeducedPacks[Pack.Index] = Pack.Outer; in ~PackDeductionScope()
1027 for (auto &Pack : Packs) { in nextPackElement() local
1028 DeducedTemplateArgument &DeducedArg = Deduced[Pack.Index]; in nextPackElement()
1029 if (!Pack.New.empty() || !DeducedArg.isNull()) { in nextPackElement()
1030 while (Pack.New.size() < PackElements) in nextPackElement()
1031 Pack.New.push_back(DeducedTemplateArgument()); in nextPackElement()
1032 if (Pack.New.size() == PackElements) in nextPackElement()
1033 Pack.New.push_back(DeducedArg); in nextPackElement()
1035 Pack.New[PackElements] = DeducedArg; in nextPackElement()
1036 DeducedArg = Pack.New.size() > PackElements + 1 in nextPackElement()
1037 ? Pack.New[PackElements + 1] in nextPackElement()
1050 for (auto &Pack : Packs) { in finish() local
1052 Deduced[Pack.Index] = Pack.Saved; in finish()
1067 Pack.New.resize(PackElements); in finish()
1071 if (Pack.New.empty()) { in finish()
1076 new (S.Context) TemplateArgument[Pack.New.size()]; in finish()
1077 std::copy(Pack.New.begin(), Pack.New.end(), ArgumentPack); in finish()
1079 TemplateArgument(llvm::ArrayRef(ArgumentPack, Pack.New.size())), in finish()
1085 Pack.New[0].wasDeducedFromArrayBound()); in finish()
1090 if (Pack.Outer) { in finish()
1091 if (Pack.Outer->DeferredDeduction.isNull()) { in finish()
1094 Pack.Outer->DeferredDeduction = NewPack; in finish()
1097 Loc = &Pack.Outer->DeferredDeduction; in finish()
1099 Loc = &Deduced[Pack.Index]; in finish()
1108 OldPack.getKind() == TemplateArgument::Pack && in finish()
1109 NewPack.getKind() == TemplateArgument::Pack && in finish()
1113 if (!Result.isNull() && !Pack.DeferredDeduction.isNull()) { in finish()
1115 NewPack = Pack.DeferredDeduction; in finish()
1119 NamedDecl *Param = TemplateParams->getParam(Pack.Index); in finish()
2509 case TemplateArgument::Pack: in DeduceTemplateArguments()
2519 case TemplateArgument::Pack: in DeduceTemplateArguments()
2540 if (Arg.getKind() != TemplateArgument::Pack) in hasTemplateArgumentForDeduction()
2557 if (A.getKind() == TemplateArgument::Pack) in hasPackExpansionBeforeEnd()
2718 case TemplateArgument::Pack: { in isSameTemplateArg()
2807 case TemplateArgument::Pack: in getTrivialTemplateArgumentLoc()
2847 if (Arg.getKind() == TemplateArgument::Pack) { in ConvertDeducedTemplateArgument()
2858 assert(InnerArg.getKind() != TemplateArgument::Pack && in ConvertDeducedTemplateArgument()
3508 if (Arg.getKind() == TemplateArgument::Pack) { in SubstituteExplicitTemplateArguments()
5659 if (TA1.getKind() == TemplateArgument::Pack) { in getMoreSpecializedTemplate()
5663 assert(TA2.getKind() == TemplateArgument::Pack); in getMoreSpecializedTemplate()
6022 if (TA1.getKind() == TemplateArgument::Pack) { in getMoreSpecialized()
6026 assert(TA2.getKind() == TemplateArgument::Pack); in getMoreSpecialized()
6181 if (Arg.getKind() == TemplateArgument::Pack) { in isTemplateTemplateParameterAtLeastAsSpecializedAs()
6687 case TemplateArgument::Pack: in MarkUsedTemplateParameters()