Lines Matching refs:Pack
350 case TemplateArgument::Pack: { in checkDeducedTemplateArguments()
351 if (Y.getKind() != TemplateArgument::Pack || in checkDeducedTemplateArguments()
715 DeducedPack Pack(Index); in addPack() local
716 Pack.Saved = Deduced[Index]; in addPack()
726 Packs.push_back(Pack); in addPack()
813 for (auto &Pack : Packs) { in finishConstruction() local
814 if (Info.PendingDeducedPacks.size() > Pack.Index) in finishConstruction()
815 Pack.Outer = Info.PendingDeducedPacks[Pack.Index]; in finishConstruction()
817 Info.PendingDeducedPacks.resize(Pack.Index + 1); in finishConstruction()
818 Info.PendingDeducedPacks[Pack.Index] = &Pack; in finishConstruction()
821 std::make_pair(Info.getDeducedDepth(), Pack.Index)) { in finishConstruction()
822 Pack.New.append(PartialPackArgs, PartialPackArgs + NumPartialPackArgs); in finishConstruction()
832 Deduced[Pack.Index] = Pack.New[PackElements]; in finishConstruction()
839 for (auto &Pack : Packs) in ~PackDeductionScope() local
840 Info.PendingDeducedPacks[Pack.Index] = Pack.Outer; in ~PackDeductionScope()
864 for (auto &Pack : Packs) { in nextPackElement() local
865 DeducedTemplateArgument &DeducedArg = Deduced[Pack.Index]; in nextPackElement()
866 if (!Pack.New.empty() || !DeducedArg.isNull()) { in nextPackElement()
867 while (Pack.New.size() < PackElements) in nextPackElement()
868 Pack.New.push_back(DeducedTemplateArgument()); in nextPackElement()
869 if (Pack.New.size() == PackElements) in nextPackElement()
870 Pack.New.push_back(DeducedArg); in nextPackElement()
872 Pack.New[PackElements] = DeducedArg; in nextPackElement()
873 DeducedArg = Pack.New.size() > PackElements + 1 in nextPackElement()
874 ? Pack.New[PackElements + 1] in nextPackElement()
887 for (auto &Pack : Packs) { in finish() local
889 Deduced[Pack.Index] = Pack.Saved; in finish()
904 Pack.New.resize(PackElements); in finish()
908 if (Pack.New.empty()) { in finish()
913 new (S.Context) TemplateArgument[Pack.New.size()]; in finish()
914 std::copy(Pack.New.begin(), Pack.New.end(), ArgumentPack); in finish()
916 TemplateArgument(llvm::ArrayRef(ArgumentPack, Pack.New.size())), in finish()
922 Pack.New[0].wasDeducedFromArrayBound()); in finish()
927 if (Pack.Outer) { in finish()
928 if (Pack.Outer->DeferredDeduction.isNull()) { in finish()
931 Pack.Outer->DeferredDeduction = NewPack; in finish()
934 Loc = &Pack.Outer->DeferredDeduction; in finish()
936 Loc = &Deduced[Pack.Index]; in finish()
945 if (!Result.isNull() && !Pack.DeferredDeduction.isNull()) { in finish()
947 NewPack = Pack.DeferredDeduction; in finish()
951 NamedDecl *Param = TemplateParams->getParam(Pack.Index); in finish()
2308 case TemplateArgument::Pack: in DeduceTemplateArguments()
2329 if (Arg.getKind() != TemplateArgument::Pack) in hasTemplateArgumentForDeduction()
2346 if (A.getKind() == TemplateArgument::Pack) in hasPackExpansionBeforeEnd()
2495 case TemplateArgument::Pack: { in isSameTemplateArg()
2595 case TemplateArgument::Pack: in getTrivialTemplateArgumentLoc()
2635 if (Arg.getKind() == TemplateArgument::Pack) { in ConvertDeducedTemplateArgument()
2646 assert(InnerArg.getKind() != TemplateArgument::Pack && in ConvertDeducedTemplateArgument()
3262 if (Arg.getKind() == TemplateArgument::Pack) { in SubstituteExplicitTemplateArguments()
5237 if (TA1.getKind() == TemplateArgument::Pack) { in getMoreSpecializedTemplate()
5241 assert(TA2.getKind() == TemplateArgument::Pack); in getMoreSpecializedTemplate()
5601 if (TA1.getKind() == TemplateArgument::Pack) { in getMoreSpecialized()
5605 assert(TA2.getKind() == TemplateArgument::Pack); in getMoreSpecialized()
5770 if (Arg.getKind() == TemplateArgument::Pack) { in isTemplateTemplateParameterAtLeastAsSpecializedAs()
6239 case TemplateArgument::Pack: in MarkUsedTemplateParameters()