Lines Matching defs:Expansion
153 /// pack expansion, in order to avoid violating the AST invariant that each
242 /// Determine whether we should expand a pack expansion with the
250 /// pack expansion.
253 /// the pack expansion.
263 /// pack expansion after all of the expanded arguments. This is used
268 /// the expanded form of the corresponding pack expansion. This is both an
420 /// derived class permits such expansion) along the way. When pack expansions
481 "must override transformedLocalDecl if performing pack expansion");
1176 /// Build a new pack expansion type.
3618 /// Build a new template argument pack expansion.
3620 /// By default, performs semantic analysis to build a new pack expansion
3651 llvm_unreachable("Pack expansion pattern has no parameter packs");
3654 if (TypeSourceInfo *Expansion
3658 return TemplateArgumentLoc(TemplateArgument(Expansion->getType()),
3659 Expansion);
3666 /// Build a new expression pack expansion.
3668 /// By default, performs semantic analysis to build a new pack expansion
3911 if (PackExpansionExpr *Expansion = dyn_cast<PackExpansionExpr>(Inputs[I])) {
3912 Expr *Pattern = Expansion->getPattern();
3916 assert(!Unexpanded.empty() && "Pack expansion without parameter packs?");
3922 Optional<unsigned> OrigNumExpansions = Expansion->getNumExpansions();
3924 if (getDerived().TryExpandParameterPacks(Expansion->getEllipsisLoc(),
3933 // transformation on the pack expansion, producing another pack
3934 // expansion.
3941 Expansion->getEllipsisLoc(),
3957 // expansion of the pattern. Do so.
3966 Out.get(), Expansion->getEllipsisLoc(), OrigNumExpansions);
3974 // If we're supposed to retain a pack expansion, do so by temporarily
3984 Out.get(), Expansion->getEllipsisLoc(), OrigNumExpansions);
4482 // TemplateArgumentLocInfo for the pack expansion would be usable for
4498 // We have a pack expansion, for which we will be substituting into
4508 assert(!Unexpanded.empty() && "Pack expansion without parameter packs?");
4525 // transformation on the pack expansion, producing another pack
4526 // expansion.
4542 // expansion of the pattern. Do so.
4559 // If we're supposed to retain a pack expansion, do so by temporarily
5524 // If we're substituting into a pack expansion type and we know the
5644 // If we're supposed to retain a pack expansion, do so by temporarily
5669 // We're done with the pack expansion.
5674 // expansion.
5705 if (const PackExpansionType *Expansion
5708 QualType Pattern = Expansion->getPattern();
5747 // We're done with the pack expansion.
5751 // If we're supposed to retain a pack expansion, do so by temporarily
5767 // expansion.
5768 OldType = Expansion->getPattern();
5944 // We have a pack expansion. Instantiate it.
5948 assert(!Unexpanded.empty() && "Pack expansion without parameter packs?");
5964 // We can't expand this pack expansion into separate arguments yet;
5965 // just substitute into the pattern and create a new pack expansion
5977 // Substitute into the pack expansion pattern for each slice of the
7033 // We have a pack expansion. Instantiate it.
7039 assert(!Unexpanded.empty() && "Pack expansion without parameter packs?");
7053 // We can't expand this pack expansion into separate arguments yet;
7054 // just substitute into the pattern and create a new pack expansion
7074 // Substitute into the pack expansion pattern for each slice of the
11980 // any declarations because the using-declaration was a pack expansion and
12088 // We have a pack expansion. Instantiate it.
12110 // transformation on the pack expansion, producing another pack
12111 // expansion.
12135 // Expand the pack expansion by substituting for each argument in the
12164 // If we're supposed to retain a pack expansion, do so by temporarily
12619 // The location of the ... if the result is retaining a pack expansion.
12859 // The transform has determined that we should perform an expansion;
12861 // expansion of the pattern. Do so.
12877 // FIXME: Retain a pack expansion if RetainExpansion is true.
13288 // Find the pattern of the pack expansion.
13295 // Substitute under the pack expansion. Do not expand the pack (yet).
13306 // No: we must be in an alias template expansion, and we're going to need
13399 assert(!Unexpanded.empty() && "Pack expansion without parameter packs?");
13451 // expansion of the pattern. Do so.
13457 // If we're retaining an expansion for a right fold, it is the innermost
13481 // We still have a pack; retain a pack expansion for this slice.
13505 // If we're retaining an expansion for a left fold, it is the outermost
13506 // component and takes the complete expansion so far as its init (if any).
13521 // If we had no init and an empty pack, and we're not retaining an expansion,
13592 // This key/value element is a pack expansion.
13596 assert(!Unexpanded.empty() && "Pack expansion without parameter packs?");
13613 // transformation on the pack expansion, producing another pack
13614 // expansion.
13630 ObjCDictionaryElement Expansion = {
13633 Elements.push_back(Expansion);
13642 // expansion of the pattern. Do so.
13658 // pack expansion.
13667 // FIXME: Retain a pack expansion if RetainExpansion is true.
13669 // We've finished with this pack expansion.
14328 // A valid resolved using typename pack expansion decl can have multiple
14330 // the same type in every case. But we must have at least one expansion!
14352 "mismatched resolved types in using pack expansion");