Lines Matching refs:Pack

362   case TemplateArgument::Pack: {  in checkDeducedTemplateArguments()
363 if (Y.getKind() != TemplateArgument::Pack || in checkDeducedTemplateArguments()
733 DeducedPack Pack(Index); in addPack() local
734 Pack.Saved = Deduced[Index]; in addPack()
744 Packs.push_back(Pack); in addPack()
831 for (auto &Pack : Packs) { in finishConstruction() local
832 if (Info.PendingDeducedPacks.size() > Pack.Index) in finishConstruction()
833 Pack.Outer = Info.PendingDeducedPacks[Pack.Index]; in finishConstruction()
835 Info.PendingDeducedPacks.resize(Pack.Index + 1); in finishConstruction()
836 Info.PendingDeducedPacks[Pack.Index] = &Pack; in finishConstruction()
839 std::make_pair(Info.getDeducedDepth(), Pack.Index)) { in finishConstruction()
840 Pack.New.append(PartialPackArgs, PartialPackArgs + NumPartialPackArgs); in finishConstruction()
850 Deduced[Pack.Index] = Pack.New[PackElements]; in finishConstruction()
857 for (auto &Pack : Packs) in ~PackDeductionScope() local
858 Info.PendingDeducedPacks[Pack.Index] = Pack.Outer; in ~PackDeductionScope()
882 for (auto &Pack : Packs) { in nextPackElement() local
883 DeducedTemplateArgument &DeducedArg = Deduced[Pack.Index]; in nextPackElement()
884 if (!Pack.New.empty() || !DeducedArg.isNull()) { in nextPackElement()
885 while (Pack.New.size() < PackElements) in nextPackElement()
886 Pack.New.push_back(DeducedTemplateArgument()); in nextPackElement()
887 if (Pack.New.size() == PackElements) in nextPackElement()
888 Pack.New.push_back(DeducedArg); in nextPackElement()
890 Pack.New[PackElements] = DeducedArg; in nextPackElement()
891 DeducedArg = Pack.New.size() > PackElements + 1 in nextPackElement()
892 ? Pack.New[PackElements + 1] in nextPackElement()
905 for (auto &Pack : Packs) { in finish() local
907 Deduced[Pack.Index] = Pack.Saved; in finish()
922 Pack.New.resize(PackElements); in finish()
926 if (Pack.New.empty()) { in finish()
931 new (S.Context) TemplateArgument[Pack.New.size()]; in finish()
932 std::copy(Pack.New.begin(), Pack.New.end(), ArgumentPack); in finish()
934 TemplateArgument(llvm::ArrayRef(ArgumentPack, Pack.New.size())), in finish()
940 Pack.New[0].wasDeducedFromArrayBound()); in finish()
945 if (Pack.Outer) { in finish()
946 if (Pack.Outer->DeferredDeduction.isNull()) { in finish()
949 Pack.Outer->DeferredDeduction = NewPack; in finish()
952 Loc = &Pack.Outer->DeferredDeduction; in finish()
954 Loc = &Deduced[Pack.Index]; in finish()
963 OldPack.getKind() == TemplateArgument::Pack && in finish()
964 NewPack.getKind() == TemplateArgument::Pack && in finish()
968 if (!Result.isNull() && !Pack.DeferredDeduction.isNull()) { in finish()
970 NewPack = Pack.DeferredDeduction; in finish()
974 NamedDecl *Param = TemplateParams->getParam(Pack.Index); in finish()
2346 case TemplateArgument::Pack: in DeduceTemplateArguments()
2356 case TemplateArgument::Pack: in DeduceTemplateArguments()
2377 if (Arg.getKind() != TemplateArgument::Pack) in hasTemplateArgumentForDeduction()
2394 if (A.getKind() == TemplateArgument::Pack) in hasPackExpansionBeforeEnd()
2546 case TemplateArgument::Pack: { in isSameTemplateArg()
2646 case TemplateArgument::Pack: in getTrivialTemplateArgumentLoc()
2686 if (Arg.getKind() == TemplateArgument::Pack) { in ConvertDeducedTemplateArgument()
2697 assert(InnerArg.getKind() != TemplateArgument::Pack && in ConvertDeducedTemplateArgument()
3313 if (Arg.getKind() == TemplateArgument::Pack) { in SubstituteExplicitTemplateArguments()
5505 if (TA1.getKind() == TemplateArgument::Pack) { in getMoreSpecializedTemplate()
5509 assert(TA2.getKind() == TemplateArgument::Pack); in getMoreSpecializedTemplate()
5869 if (TA1.getKind() == TemplateArgument::Pack) { in getMoreSpecialized()
5873 assert(TA2.getKind() == TemplateArgument::Pack); in getMoreSpecialized()
6038 if (Arg.getKind() == TemplateArgument::Pack) { in isTemplateTemplateParameterAtLeastAsSpecializedAs()
6504 case TemplateArgument::Pack: in MarkUsedTemplateParameters()