Lines Matching full:pack
46 // could have reached a dependent parameter pack. in addUnexpanded()
116 /// elements that are pack expansions.
167 // A function parameter pack is a pack expansion, so cannot contain in TraverseDecl()
168 // an unexpanded parameter pack. Likewise for a template parameter in TraverseDecl()
169 // pack that contains any references to other packs. in TraverseDecl()
176 /// Suppress traversal of pack-expanded attributes.
184 /// Suppress traversal of pack expansion expressions and types.
202 /// Suppress traversal of using-declaration pack expansion.
210 /// Suppress traversal of using-declaration pack expansion.
218 /// Suppress traversal of template argument pack expansions.
226 /// Suppress traversal of template argument pack expansions.
234 /// Suppress traversal of base specifier pack expansions.
242 /// Suppress traversal of mem-initializer pack expansions.
251 /// parameter pack. In this case, the unexpanded pack can occur anywhere,
253 /// lambda, we don't propagate the 'contains unexpanded parameter pack' bit
275 /// Suppress traversal within pack expansions in lambda captures.
286 /// Determine whether it's possible for an unexpanded parameter pack to
309 // If we are within a lambda expression and referencing a pack that is not in DiagnoseUnexpandedParameterPacks()
311 // parameter pack, and we are done. in DiagnoseUnexpandedParameterPacks()
316 for (auto &Pack : Unexpanded) { in DiagnoseUnexpandedParameterPacks() local
318 if (auto *TTPT = Pack.first.dyn_cast<const TemplateTypeParmType *>()) { in DiagnoseUnexpandedParameterPacks()
322 return declaresSameEntity(Pack.first.get<NamedDecl *>(), LocalPack); in DiagnoseUnexpandedParameterPacks()
325 LambdaParamPackReferences.push_back(Pack); in DiagnoseUnexpandedParameterPacks()
331 // unexpanded pack in this case, which will require expansion outside the in DiagnoseUnexpandedParameterPacks()
334 // We do not permit pack expansion that would duplicate a statement in DiagnoseUnexpandedParameterPacks()
339 // f( ({ bad: 0; }) + pack ... ); in DiagnoseUnexpandedParameterPacks()
397 // An appearance of a name of a parameter pack that is not expanded is in DiagnoseUnexpandedParameterPack()
412 // An appearance of a name of a parameter pack that is not expanded is in DiagnoseUnexpandedParameterPack()
456 // An appearance of a name of a parameter pack that is not expanded is in DiagnoseUnexpandedParameterPack()
473 // An appearance of a name of a parameter pack that is not expanded is in DiagnoseUnexpandedParameterPack()
632 // Create the pack expansion type and source-location information. in CheckPackExpansion()
651 // The pattern of a pack expansion shall name one or more in CheckPackExpansion()
652 // parameter packs that are not expanded by a nested pack in CheckPackExpansion()
656 // the desugaring of an init-capture pack. in CheckPackExpansion()
678 // The pattern of a pack expansion shall name one or more in CheckPackExpansion()
679 // parameter packs that are not expanded by a nested pack in CheckPackExpansion()
688 // Create the pack expansion expression and source-location information. in CheckPackExpansion()
706 // Compute the depth and index for this parameter pack. in CheckParameterPacksForExpansion()
726 // Determine the size of this argument pack. in CheckParameterPacksForExpansion()
729 // Figure out whether we're instantiating to an argument pack or not. in CheckParameterPacksForExpansion()
736 // We could expand this function parameter pack. in CheckParameterPacksForExpansion()
739 // We can't expand this function parameter pack, so we can't expand in CheckParameterPacksForExpansion()
740 // the pack expansion. in CheckParameterPacksForExpansion()
746 // cannot expand the pack expansion. Make a note of this, but we still in CheckParameterPacksForExpansion()
754 // Determine the size of the argument pack. in CheckParameterPacksForExpansion()
760 // arguments corresponding to a template parameter pack, even when the in CheckParameterPacksForExpansion()
769 // We don't actually know the new pack size yet. in CheckParameterPacksForExpansion()
778 // The is the first pack we've seen for which we have an argument. in CheckParameterPacksForExpansion()
789 // All of the parameter packs expanded by a pack expansion shall have in CheckParameterPacksForExpansion()
810 // ... a call to 'A<int, int>().f<int>' should expand the pack once and in CheckParameterPacksForExpansion()
836 // Compute the depth and index for this parameter pack. in getNumArgumentsInExpansion()
847 // Function parameter pack or init-capture pack. in getNumArgumentsInExpansion()
854 // The pattern refers to an unexpanded pack. We're not ready to expand in getNumArgumentsInExpansion()
855 // this pack yet. in getNumArgumentsInExpansion()
859 assert((!Result || *Result == Size) && "inconsistent pack sizes"); in getNumArgumentsInExpansion()
869 // expand this pack yet. in getNumArgumentsInExpansion()
872 // Determine the size of the argument pack. in getNumArgumentsInExpansion()
874 assert((!Result || *Result == Size) && "inconsistent pack sizes"); in getNumArgumentsInExpansion()
1023 // The identifier in a sizeof... expression shall name a parameter pack. in ActOnSizeofParameterPackExpr()
1179 case TemplateArgument::Pack: in getTemplateArgumentPackExpansionPattern()
1190 // If this is a substituted pack, grab that pack. If not, we don't know in getFullyPackExpandedSize()
1193 // pack anywhere within this argument, but that's not necessary in the common in getFullyPackExpandedSize()
1195 TemplateArgument Pack; in getFullyPackExpandedSize() local
1199 Pack = Subst->getArgumentPack(); in getFullyPackExpandedSize()
1207 Pack = Subst->getArgumentPack(); in getFullyPackExpandedSize()
1220 Pack = Subst->getArgumentPack(); in getFullyPackExpandedSize()
1230 case TemplateArgument::Pack: in getFullyPackExpandedSize()
1235 // Check that no argument in the pack is itself a pack expansion. in getFullyPackExpandedSize()
1236 for (TemplateArgument Elem : Pack.pack_elements()) { in getFullyPackExpandedSize()
1238 // expanded this pack expansion into the enclosing pack if we could. in getFullyPackExpandedSize()
1241 // Don't guess the size of unexpanded packs. The pack within a template in getFullyPackExpandedSize()
1246 // unexpanded pack regardless of Elem's dependence. For instance, in getFullyPackExpandedSize()
1253 return Pack.pack_size(); in getFullyPackExpandedSize()
1287 // either e1 shall contain an unexpanded parameter pack or e2 shall contain in ActOnCXXFoldExpr()
1288 // an unexpanded parameter pack, but not both. in ActOnCXXFoldExpr()
1302 // parameter pack. in ActOnCXXFoldExpr()
1304 Expr *Pack = LHS ? LHS : RHS; in ActOnCXXFoldExpr() local
1305 assert(Pack && "fold expression with neither LHS nor RHS"); in ActOnCXXFoldExpr()
1306 if (!Pack->containsUnexpandedParameterPack()) { in ActOnCXXFoldExpr()
1309 << Pack->getSourceRange(); in ActOnCXXFoldExpr()