@@ -3569,51 +3569,41 @@ class PackElementExpr final : public Expr {
35693569// / call argument lists, the elements of a tuple value, and the source
35703570// / of a for-in loop.
35713571class PackExpansionExpr final : public Expr,
3572- private llvm::TrailingObjects<PackExpansionExpr,
3573- OpaqueValueExpr *, Expr *> {
3572+ private llvm::TrailingObjects<PackExpansionExpr, PackElementExpr *> {
35743573 friend TrailingObjects;
35753574
35763575 Expr *PatternExpr;
35773576 SourceLoc DotsLoc;
35783577 GenericEnvironment *Environment;
35793578
35803579 PackExpansionExpr (Expr *patternExpr,
3581- ArrayRef<OpaqueValueExpr *> opaqueValues,
3582- ArrayRef<Expr *> bindings,
3580+ ArrayRef<PackElementExpr *> packElements,
35833581 SourceLoc dotsLoc,
35843582 GenericEnvironment *environment,
35853583 bool implicit, Type type)
35863584 : Expr(ExprKind::PackExpansion, implicit, type),
35873585 PatternExpr (patternExpr), DotsLoc(dotsLoc), Environment(environment) {
3588- assert (opaqueValues.size () == bindings.size ());
3589- Bits.PackExpansionExpr .NumBindings = opaqueValues.size ();
3586+ Bits.PackExpansionExpr .NumBindings = packElements.size ();
35903587
35913588 assert (Bits.PackExpansionExpr .NumBindings > 0 &&
35923589 " PackExpansionExpr must have pack references" );
35933590
3594- std::uninitialized_copy (opaqueValues.begin (), opaqueValues.end (),
3595- getTrailingObjects<OpaqueValueExpr *>());
3596- std::uninitialized_copy (bindings.begin (), bindings.end (),
3597- getTrailingObjects<Expr *>());
3598- }
3599-
3600- size_t numTrailingObjects (OverloadToken<OpaqueValueExpr *>) const {
3601- return getNumBindings ();
3591+ std::uninitialized_copy (packElements.begin (), packElements.end (),
3592+ getTrailingObjects<PackElementExpr *>());
36023593 }
36033594
3604- size_t numTrailingObjects (OverloadToken<Expr *>) const {
3595+ size_t numTrailingObjects (OverloadToken<PackElementExpr *>) const {
36053596 return getNumBindings ();
36063597 }
36073598
3608- MutableArrayRef<Expr *> getMutableBindings () {
3609- return {getTrailingObjects<Expr *>(), getNumBindings ()};
3599+ MutableArrayRef<PackElementExpr *> getMutableBindings () {
3600+ return {getTrailingObjects<PackElementExpr *>(), getNumBindings ()};
36103601 }
36113602
36123603public:
36133604 static PackExpansionExpr *create (ASTContext &ctx,
36143605 Expr *patternExpr,
3615- ArrayRef<OpaqueValueExpr *> opaqueValues,
3616- ArrayRef<Expr *> bindings,
3606+ ArrayRef<PackElementExpr *> packElements,
36173607 SourceLoc dotsLoc,
36183608 GenericEnvironment *environment,
36193609 bool implicit = false ,
@@ -3629,15 +3619,11 @@ class PackExpansionExpr final : public Expr,
36293619 return Bits.PackExpansionExpr .NumBindings ;
36303620 }
36313621
3632- ArrayRef<OpaqueValueExpr *> getOpaqueValues () {
3633- return {getTrailingObjects<OpaqueValueExpr *>(), getNumBindings ()};
3634- }
3635-
3636- ArrayRef<Expr *> getBindings () {
3637- return {getTrailingObjects<Expr *>(), getNumBindings ()};
3622+ ArrayRef<PackElementExpr *> getPackElements () {
3623+ return {getTrailingObjects<PackElementExpr *>(), getNumBindings ()};
36383624 }
36393625
3640- void setBinding (unsigned i, Expr *e) {
3626+ void setBinding (unsigned i, PackElementExpr *e) {
36413627 getMutableBindings ()[i] = e;
36423628 }
36433629
0 commit comments