diff --git a/crates/swc_ecma_ast/src/expr.rs b/crates/swc_ecma_ast/src/expr.rs index db3c9d91840e..020bd4926250 100644 --- a/crates/swc_ecma_ast/src/expr.rs +++ b/crates/swc_ecma_ast/src/expr.rs @@ -55,7 +55,7 @@ pub enum Expr { Bin(BinExpr), #[tag("AssignmentExpression")] - Assign(AssignExpr), + Assign(Box), // // Logical { @@ -79,7 +79,7 @@ pub enum Expr { Cond(CondExpr), #[tag("CallExpression")] - Call(CallExpr), + Call(Box), /// `new Cat()` #[tag("NewExpression")] @@ -107,7 +107,7 @@ pub enum Expr { TaggedTpl(TaggedTpl), #[tag("ArrowFunctionExpression")] - Arrow(ArrowExpr), + Arrow(Box), #[tag("ClassExpression")] Class(ClassExpr), @@ -449,18 +449,18 @@ boxed_expr!(FnExpr); boxed_expr!(UnaryExpr); boxed_expr!(UpdateExpr); boxed_expr!(BinExpr); -boxed_expr!(AssignExpr); +boxed_expr!(Box); boxed_expr!(MemberExpr); boxed_expr!(SuperPropExpr); boxed_expr!(CondExpr); -boxed_expr!(CallExpr); +boxed_expr!(Box); boxed_expr!(NewExpr); boxed_expr!(SeqExpr); bridge_from!(Box, Expr, Ident); boxed_expr!(Lit); boxed_expr!(Tpl); boxed_expr!(TaggedTpl); -boxed_expr!(ArrowExpr); +boxed_expr!(Box); boxed_expr!(ClassExpr); boxed_expr!(YieldExpr); boxed_expr!(MetaPropExpr); @@ -1706,13 +1706,13 @@ impl From for Expr { callee, args, type_args, - }) => Self::Call(CallExpr { + }) => Self::Call(Box::new(CallExpr { callee: Callee::Expr(callee), args, span, type_args, ctxt, - }), + })), OptChainBase::Member(member) => Self::Member(member), } } @@ -1746,6 +1746,7 @@ impl From for CallExpr { } } +bridge_expr_from!(Box, CallExpr); bridge_expr_from!(CallExpr, OptCall); test_de!(