Home | History | Annotate | Download | only in Sema

Lines Matching defs:Pack

708 /// \brief Retrieve the depth and index of a parameter pack.
774 void ExpandingFunctionParameterPack(ParmVarDecl *Pack) {
775 SemaRef.CurrentInstantiationScope->MakeInstantiatedLocalArgPack(Pack);
867 /// \brief Transform a reference to a function parameter pack.
872 /// expand a function parameter pack reference which refers to an expanded
873 /// pack.
893 /// \brief Transforms an already-substituted template type parameter pack
894 /// into either itself (if we aren't substituting into its pack expansion)
965 assert(Arg.getKind() == TemplateArgument::Pack &&
966 "Missing argument pack");
1006 assert(Arg.getKind() == TemplateArgument::Pack &&
1007 "Missing argument pack");
1105 assert(Arg.getKind() == TemplateArgument::Pack &&
1106 "Missing argument pack");
1109 // We have the template argument pack to substitute, but we're not
1110 // actually expanding the enclosing pack expansion yet. So, just
1111 // keep the entire argument pack.
1185 assert(Arg.getKind() == TemplateArgument::Pack &&
1186 "Missing argument pack");
1189 // We have an argument pack, but we can't select a particular argument
1191 // argument pack.
1279 // We aren't expanding the parameter pack, so just return ourselves.
1300 // We can expand this parameter pack now.
1336 assert(Found && "no instantiation for parameter pack");
1339 if (DeclArgumentPack *Pack = Found->dyn_cast<DeclArgumentPack *>()) {
1340 // If this is a reference to a function parameter pack which we can substitute
1347 E->getExprLoc(), *Pack);
1350 TransformedDecl = (*Pack)[getSema().ArgumentPackSubstitutionIndex];
1355 // We have either an unexpanded pack or a specific expansion.
1440 assert(Arg.getKind() == TemplateArgument::Pack &&
1441 "Missing argument pack");
1444 // We have the template argument pack, but we're not expanding the
1445 // enclosing pack expansion yet. Just save the template argument
1446 // pack for later substitution.
1497 // We aren't expanding the parameter pack, so just return ourselves.
1687 // We have a function parameter pack. Substitute into the pattern of the
1696 // our function parameter is still a function parameter pack.
1697 // Therefore, make its type a pack expansion type.
1701 // We expected to get a parameter pack but didn't (because the type
1702 // itself is not a pack expansion type), so complain. This can occur when
1704 // pack expansion.
1748 // Add the new parameter to the instantiated parameter pack.
1812 // This is a pack expansion. See whether we should expand it now, or
1830 // If we should expand this pack expansion now, do so.
1859 // The resulting base specifier will (still) be a pack expansion.
2768 else if (DeclArgumentPack *Pack = Stored.dyn_cast<DeclArgumentPack *>())
2769 Pack->push_back(Inst);
2777 DeclArgumentPack *Pack = LocalDecls[D].get<DeclArgumentPack *>();
2778 Pack->push_back(Inst);
2785 DeclArgumentPack *Pack = new DeclArgumentPack;
2786 Stored = Pack;
2787 ArgumentPacks.push_back(Pack);
2790 void LocalInstantiationScope::SetPartiallySubstitutedPack(NamedDecl *Pack,
2793 assert((!PartiallySubstitutedPack || PartiallySubstitutedPack == Pack) &&
2794 "Already have a partially-substituted pack");
2797 "Wrong number of arguments in partially-substituted pack");
2798 PartiallySubstitutedPack = Pack;