Lines Matching defs:Expansion
411 // expanded NTTP should be a pack expansion type?
417 if (auto *Expansion = dyn_cast<PackExpansionType>(ParamType))
418 ParamType = Expansion->getPattern();
710 // by this pack expansion, then clear out the deduction.
727 // parameter packs expanded by the pack expansion.
737 // Deducing a parameter pack that is a pack expansion also constrains the
744 if (auto *Expansion = dyn_cast<PackExpansionType>(NTTP->getType()))
745 ExtraDeductions.push_back(Expansion->getPattern());
764 assert(!Packs.empty() && "Pack expansion without unexpanded packs?");
786 // This pack expansion will have been partially or fully expanded if
843 /// Determine whether this pack expansion scope has a known, fixed arity.
858 // by this pack expansion, add them to the list of arguments we've deduced
882 // pack expansion.
1033 const PackExpansionType *Expansion
1035 if (!Expansion) {
1068 QualType Pattern = Expansion->getPattern();
1096 // with a non-trailing pack-expansion in its arguments, which renders the
1101 // by the expansion.
1102 Optional<unsigned> NumExpansions = Expansion->getNumExpansions();
1111 // pack expansion.
1358 // If the argument type is a pack expansion, look at its pattern.
1561 // expansion have arguments.
2315 // If the template argument is a pack expansion, perform template argument
2316 // deduction against the pattern of that expansion. This only occurs during
2446 /// expansion that is not the last template argument.
2456 // FIXME: If this is a fixed-arity pack expansion from an outer level of
2457 // templates, it should not be treated as a pack expansion.
2473 // If the template argument list of P contains a pack expansion that is not
2495 // During partial ordering, if Ai was originally a pack expansion [and]
2496 // Pi is not a pack expansion, template argument deduction fails.
2512 // The parameter is a pack expansion.
2515 // If Pi is a pack expansion, then the pattern of Pi is compared with
2525 // expanded by this pack expansion (the outer index) and for each
2540 // pack expansion.
2745 // context in a pack expansion (such as an overload set in one of the
3540 return -1; // Not a pack expansion
4194 // by the expansion.
4208 // pack expansion.
5745 // We can deduce from a pack expansion.
5746 if (const PackExpansionExpr *Expansion = dyn_cast<PackExpansionExpr>(E))
5747 E = Expansion->getPattern();
5978 // If the template argument list of P contains a pack expansion that is
6175 // If the template argument list of P contains a pack expansion that is not