Lines Matching refs:Pack
342 case TemplateArgument::Pack: { in checkDeducedTemplateArguments()
343 if (Y.getKind() != TemplateArgument::Pack || in checkDeducedTemplateArguments()
696 DeducedPack Pack(Index); in addPack() local
697 Pack.Saved = Deduced[Index]; in addPack()
707 Packs.push_back(Pack); in addPack()
794 for (auto &Pack : Packs) { in finishConstruction() local
795 if (Info.PendingDeducedPacks.size() > Pack.Index) in finishConstruction()
796 Pack.Outer = Info.PendingDeducedPacks[Pack.Index]; in finishConstruction()
798 Info.PendingDeducedPacks.resize(Pack.Index + 1); in finishConstruction()
799 Info.PendingDeducedPacks[Pack.Index] = &Pack; in finishConstruction()
802 std::make_pair(Info.getDeducedDepth(), Pack.Index)) { in finishConstruction()
803 Pack.New.append(PartialPackArgs, PartialPackArgs + NumPartialPackArgs); in finishConstruction()
813 Deduced[Pack.Index] = Pack.New[PackElements]; in finishConstruction()
820 for (auto &Pack : Packs) in ~PackDeductionScope() local
821 Info.PendingDeducedPacks[Pack.Index] = Pack.Outer; in ~PackDeductionScope()
845 for (auto &Pack : Packs) { in nextPackElement() local
846 DeducedTemplateArgument &DeducedArg = Deduced[Pack.Index]; in nextPackElement()
847 if (!Pack.New.empty() || !DeducedArg.isNull()) { in nextPackElement()
848 while (Pack.New.size() < PackElements) in nextPackElement()
849 Pack.New.push_back(DeducedTemplateArgument()); in nextPackElement()
850 if (Pack.New.size() == PackElements) in nextPackElement()
851 Pack.New.push_back(DeducedArg); in nextPackElement()
853 Pack.New[PackElements] = DeducedArg; in nextPackElement()
854 DeducedArg = Pack.New.size() > PackElements + 1 in nextPackElement()
855 ? Pack.New[PackElements + 1] in nextPackElement()
868 for (auto &Pack : Packs) { in finish() local
870 Deduced[Pack.Index] = Pack.Saved; in finish()
885 Pack.New.resize(PackElements); in finish()
889 if (Pack.New.empty()) { in finish()
894 new (S.Context) TemplateArgument[Pack.New.size()]; in finish()
895 std::copy(Pack.New.begin(), Pack.New.end(), ArgumentPack); in finish()
897 TemplateArgument(llvm::makeArrayRef(ArgumentPack, Pack.New.size())), in finish()
903 Pack.New[0].wasDeducedFromArrayBound()); in finish()
908 if (Pack.Outer) { in finish()
909 if (Pack.Outer->DeferredDeduction.isNull()) { in finish()
912 Pack.Outer->DeferredDeduction = NewPack; in finish()
915 Loc = &Pack.Outer->DeferredDeduction; in finish()
917 Loc = &Deduced[Pack.Index]; in finish()
926 if (!Result.isNull() && !Pack.DeferredDeduction.isNull()) { in finish()
928 NewPack = Pack.DeferredDeduction; in finish()
932 NamedDecl *Param = TemplateParams->getParam(Pack.Index); in finish()
2279 case TemplateArgument::Pack: in DeduceTemplateArguments()
2300 if (Arg.getKind() != TemplateArgument::Pack) in hasTemplateArgumentForDeduction()
2317 if (A.getKind() == TemplateArgument::Pack) in hasPackExpansionBeforeEnd()
2465 case TemplateArgument::Pack: in isSameTemplateArg()
2550 case TemplateArgument::Pack: in getTrivialTemplateArgumentLoc()
2591 if (Arg.getKind() == TemplateArgument::Pack) { in ConvertDeducedTemplateArgument()
2601 assert(InnerArg.getKind() != TemplateArgument::Pack && in ConvertDeducedTemplateArgument()
3156 if (Arg.getKind() == TemplateArgument::Pack) { in SubstituteExplicitTemplateArguments()
5547 if (Arg.getKind() == TemplateArgument::Pack) { in isTemplateTemplateParameterAtLeastAsSpecializedAs()
6018 case TemplateArgument::Pack: in MarkUsedTemplateParameters()