diff --git a/crates/swc/tests/fixture/sourcemap/011/output/CommentControlller.map b/crates/swc/tests/fixture/sourcemap/011/output/CommentControlller.map index 702d72d17147..284e10f33937 100644 --- a/crates/swc/tests/fixture/sourcemap/011/output/CommentControlller.map +++ b/crates/swc/tests/fixture/sourcemap/011/output/CommentControlller.map @@ -1,5 +1,5 @@ { - "mappings": ";;;AAAA,SAASA,IAAI,EAAEC,UAAU,EAAEC,MAAM,EAAEC,KAAK,EAAEC,GAAG,EAAEC,SAAS,EAAEC,eAAe,QAAQ,iBAAiB;AAElG,SACIC,wBAAwB,EACxBC,uBAAuB,EACvBC,uBAAuB,QACpB,gCAAgC;AACvC,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASC,OAAO,QAAQ,wCAAwC;AAChE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,gBAAgB,QAAQ,uCAAuC;AAIxE,OAAO,MAAMC;IACTC,YAAY,AAAQC,cAA8B,CAAE;aAAhCA,iBAAAA;IAAkC;IAI/CC,cACH,AAAaC,EAAU,EACvB,AAAQC,gBAAkC,EAC1C,AAAQC,IAAc,EACxB;QACE,OAAO,IAAI,CAACJ,cAAc,CAACK,MAAM,CAACH,IAAIC,kBAAkBC,KAAKF,EAAE;IACnE;IAIOI,cAAc,AAAaJ,EAAU,EAAE,AAAQE,IAAc,EAAE;QAClE,OAAO,IAAI,CAACJ,cAAc,CAACO,MAAM,CAACL,IAAIE,KAAKF,EAAE;IACjD;AACJ;;IAfKhB,UAAUQ;IACVT,IAAIK;IAEAN,aAAAA,MAAM;IACNH,aAAAA;IACAc,aAAAA;;;;eADyB,4CAAA;eACZ,oCAAA;;;GARTG;;IAaRZ,UAAUQ;IACVX,OAAOM;IACcL,aAAAA,MAAM;IAAmBW,aAAAA;;;;eAAa,oCAAA;;;GAfnDG;AAAAA;IAFZhB,WAAWM;IACXD,gBAAgBI,mCAAmCC;;;eAEZ,0CAAA;;GAD3BM", + "mappings": ";;;AAAA,SAASA,IAAI,EAAEC,UAAU,EAAEC,MAAM,EAAEC,KAAK,EAAEC,GAAG,EAAEC,SAAS,EAAEC,eAAe,QAAQ,iBAAiB;AAElG,SACIC,wBAAwB,EACxBC,uBAAuB,EACvBC,uBAAuB,QACpB,gCAAgC;AACvC,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASC,OAAO,QAAQ,wCAAwC;AAChE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,gBAAgB,QAAQ,uCAAuC;AAIxE,OAAO,MAAMC;IACTC,YAAY,AAAQC,cAA8B,CAAE;aAAhCA,iBAAAA;IAAkC;IAI/CC,cACH,AAAaC,EAAU,EACvB,AAAQC,gBAAkC,EAC1C,AAAQC,IAAc,EACxB;QACE,OAAO,IAAI,CAACJ,cAAc,CAACK,MAAM,CAACH,IAAIC,kBAAkBC,KAAKF,EAAE;IACnE;IAIOI,cAAc,AAAaJ,EAAU,EAAE,AAAQE,IAAc,EAAE;QAClE,OAAO,IAAI,CAACJ,cAAc,CAACO,MAAM,CAACL,IAAIE,KAAKF,EAAE;IACjD;AACJ", "names": [ "Body", "Controller", @@ -29,7 +29,7 @@ "deleteComment", "delete" ], - "rangeMappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "rangeMappings": ";;;;;;;;;;;;;;;;;;;;;;", "sources": [ "../../input/CommentControlller.ts" ], diff --git a/crates/swc/tests/fixture/sourcemap/012/output/CommentService.map b/crates/swc/tests/fixture/sourcemap/012/output/CommentService.map index 6b1c6b7bf2eb..0d1d6ecbf429 100644 --- a/crates/swc/tests/fixture/sourcemap/012/output/CommentService.map +++ b/crates/swc/tests/fixture/sourcemap/012/output/CommentService.map @@ -1,5 +1,5 @@ { - "mappings": "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", + "mappings": "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", "names": [ "Model", "Connection", @@ -51,7 +51,7 @@ "$pull", "name" ], - "rangeMappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "rangeMappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "sources": [ "../../input/CommentService.ts" ], diff --git a/crates/swc/tests/fixture/sourcemap/013/output/PistController.map b/crates/swc/tests/fixture/sourcemap/013/output/PistController.map index 0cb3859285b4..54cb7bfd5db7 100644 --- a/crates/swc/tests/fixture/sourcemap/013/output/PistController.map +++ b/crates/swc/tests/fixture/sourcemap/013/output/PistController.map @@ -1,5 +1,5 @@ { - "mappings": ";;;AAAA,SACIA,IAAI,EACJC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,IAAI,EACJC,GAAG,EACHC,SAAS,EACTC,eAAe,QACZ,iBAAiB;AAExB,SACIC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,iBAAiB,EACjBC,4BAA4B,EAC5BC,oBAAoB,EACpBC,oBAAoB,QACjB,gCAAgC;AACvC,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASX,QAAQY,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,gBAAgB,QAAQ,uCAAuC;AACxE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,OAAO,QAAQ,wCAAwC;AAIhE,OAAO,MAAMC;IACTC,YAAY,AAAQC,WAAwB,EAAE,AAAQC,cAA8B,CAAE;aAAlED,cAAAA;aAAkCC,iBAAAA;IAAkC;IAGjFC,WAAW;QACd,OAAO,IAAI,CAACF,WAAW,CAACG,MAAM;IAClC;IAGOC,QAAQ,AAAaC,EAAU,EAAE;QACpC,OAAO,IAAI,CAACL,WAAW,CAACM,OAAO,CAACD;IACpC;IAIOE,WAAW,AAAQC,aAA4B,EAAE,AAAQC,IAAc,EAAE;QAC5E,OAAO,IAAI,CAACT,WAAW,CAACU,MAAM,CAACF,eAAeC,KAAKJ,EAAE;IACzD;IAIOM,WACH,AAAaN,EAAU,EACvB,AAAQO,aAA4B,EACpC,AAAQH,IAAc,EACxB;QACE,OAAO,IAAI,CAACT,WAAW,CAACa,MAAM,CAACR,IAAIO,eAAeH,KAAKJ,EAAE;IAC7D;IAIOS,WAAW,AAAaT,EAAU,EAAE,AAAQI,IAAc,EAAE;QAC/D,OAAO,IAAI,CAACT,WAAW,CAACe,MAAM,CAACV,IAAII,KAAKJ,EAAE;IAC9C;IAKOW,kBACH,AAAaX,EAAU,EACvB,AAAQY,gBAAkC,EAC1C,AAAQR,IAAc,EACxB;QACE,OAAO,IAAI,CAACR,cAAc,CAACS,MAAM,CAACO,kBAAkBZ,IAAII,KAAKJ,EAAE;IACnE;AACJ;;IA1CK9B,IAAIQ;;;;GAHIe;;IAQRvB,IAAIS;IACWR,aAAAA,MAAM;;;;;;GATbsB;;IAaRnB,UAAUa;IACVf,KAAKS;IACad,aAAAA;IAAsCqB,aAAAA;;;eAAhB,yCAAA;eAA6B,oCAAA;;;GAf7DK;;IAmBRnB,UAAUa;IACVd,IAAIS;IAEAX,aAAAA,MAAM;IACNJ,aAAAA;IACAqB,aAAAA;;;;eADsB,yCAAA;eACT,oCAAA;;;GAxBTK;;IA6BRnB,UAAUa;IACVlB,OAAOQ;IACWN,aAAAA,MAAM;IAAmBiB,aAAAA;;;;eAAa,oCAAA;;;GA/BhDK;;IAmCRlB,gBAAgBQ,mCAAmCS;IACnDlB,UAAUa;IACVf,KAAKQ;IAEDT,aAAAA,MAAM;IACNJ,aAAAA;IACAqB,aAAAA;;;;eADyB,4CAAA;eACZ,oCAAA;;;GAzCTK;AAAAA;IAFZzB,WAAWQ;IACXD,gBAAgBQ,mCAAmCC;;;eAEf,uCAAA;eAAqC,0CAAA;;GAD7DS", + "mappings": ";;;AAAA,SACIA,IAAI,EACJC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,IAAI,EACJC,GAAG,EACHC,SAAS,EACTC,eAAe,QACZ,iBAAiB;AAExB,SACIC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,iBAAiB,EACjBC,4BAA4B,EAC5BC,oBAAoB,EACpBC,oBAAoB,QACjB,gCAAgC;AACvC,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASX,QAAQY,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,gBAAgB,QAAQ,uCAAuC;AACxE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,OAAO,QAAQ,wCAAwC;AAIhE,OAAO,MAAMC;IACTC,YAAY,AAAQC,WAAwB,EAAE,AAAQC,cAA8B,CAAE;aAAlED,cAAAA;aAAkCC,iBAAAA;IAAkC;IAGjFC,WAAW;QACd,OAAO,IAAI,CAACF,WAAW,CAACG,MAAM;IAClC;IAGOC,QAAQ,AAAaC,EAAU,EAAE;QACpC,OAAO,IAAI,CAACL,WAAW,CAACM,OAAO,CAACD;IACpC;IAIOE,WAAW,AAAQC,aAA4B,EAAE,AAAQC,IAAc,EAAE;QAC5E,OAAO,IAAI,CAACT,WAAW,CAACU,MAAM,CAACF,eAAeC,KAAKJ,EAAE;IACzD;IAIOM,WACH,AAAaN,EAAU,EACvB,AAAQO,aAA4B,EACpC,AAAQH,IAAc,EACxB;QACE,OAAO,IAAI,CAACT,WAAW,CAACa,MAAM,CAACR,IAAIO,eAAeH,KAAKJ,EAAE;IAC7D;IAIOS,WAAW,AAAaT,EAAU,EAAE,AAAQI,IAAc,EAAE;QAC/D,OAAO,IAAI,CAACT,WAAW,CAACe,MAAM,CAACV,IAAII,KAAKJ,EAAE;IAC9C;IAKOW,kBACH,AAAaX,EAAU,EACvB,AAAQY,gBAAkC,EAC1C,AAAQR,IAAc,EACxB;QACE,OAAO,IAAI,CAACR,cAAc,CAACS,MAAM,CAACO,kBAAkBZ,IAAII,KAAKJ,EAAE;IACnE;AACJ", "names": [ "Body", "Controller", @@ -48,7 +48,7 @@ "createPostComment", "createCommentDto" ], - "rangeMappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "rangeMappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "sources": [ "../../input/PistController.ts" ], diff --git a/crates/swc/tests/fixture/sourcemap/014/output/UserController.map b/crates/swc/tests/fixture/sourcemap/014/output/UserController.map index 2e01e73481b2..856825209fc1 100644 --- a/crates/swc/tests/fixture/sourcemap/014/output/UserController.map +++ b/crates/swc/tests/fixture/sourcemap/014/output/UserController.map @@ -1,5 +1,5 @@ { - "mappings": ";;;AAAA,SACIA,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,IAAI,EACJC,GAAG,EACHC,KAAK,EACLC,kBAAkB,EAClBC,eAAe,QACZ,iBAAiB;AAExB,SACIC,qBAAqB,EACrBC,oBAAoB,EACpBC,oBAAoB,QACjB,gCAAgC;AACvC,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASC,WAAW,QAAQ,2BAA2B;AAIvD,OAAO,MAAMC;IACTC,YAAY,AAAQC,WAAwB,CAAE;aAA1BA,cAAAA;IAA4B;IAEhD,MACMC,OAAO,AAAQC,aAA4B,EAAE;QAC/C,OAAO,IAAI,CAACF,WAAW,CAACG,MAAM,CAACD;IACnC;IAEA,MAEME,OACF,AAAaC,MAAc,EAC3B,AAAQC,aAA4B,EACpC,AAAQC,IAAc,EACxB;QACE,IAAIA,KAAKC,EAAE,KAAKH,QAAQ;YACpB,MAAM,IAAInB;QACd;QAEA,OAAO,IAAI,CAACc,WAAW,CAACI,MAAM,CAACC,QAAQC;IAC3C;AACJ;;IAlBKzB,KAAKQ;IACQN,aAAAA;;;eAAsB,yCAAA;;;GAJ3Be;;IAQRhB,UAAUW;IACVT,IAAIM;IAEAL,aAAAA,MAAM;IACNF,aAAAA;IACAW,aAAAA;;;;eADsB,yCAAA;eACT,oCAAA;;;GAbTI;AAAAA;IAFZlB,WAAWQ;IACXD,gBAAgBS,mCAAmCD;;;eAEf,uCAAA;;GADxBG", + "mappings": ";;;AAAA,SACIA,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,IAAI,EACJC,GAAG,EACHC,KAAK,EACLC,kBAAkB,EAClBC,eAAe,QACZ,iBAAiB;AAExB,SACIC,qBAAqB,EACrBC,oBAAoB,EACpBC,oBAAoB,QACjB,gCAAgC;AACvC,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASC,WAAW,QAAQ,2BAA2B;AAIvD,OAAO,MAAMC;IACTC,YAAY,AAAQC,WAAwB,CAAE;aAA1BA,cAAAA;IAA4B;IAEhD,MACMC,OAAO,AAAQC,aAA4B,EAAE;QAC/C,OAAO,IAAI,CAACF,WAAW,CAACG,MAAM,CAACD;IACnC;IAEA,MAEME,OACF,AAAaC,MAAc,EAC3B,AAAQC,aAA4B,EACpC,AAAQC,IAAc,EACxB;QACE,IAAIA,KAAKC,EAAE,KAAKH,QAAQ;YACpB,MAAM,IAAInB;QACd;QAEA,OAAO,IAAI,CAACc,WAAW,CAACI,MAAM,CAACC,QAAQC;IAC3C;AACJ", "names": [ "Controller", "Post", @@ -31,7 +31,7 @@ "user", "id" ], - "rangeMappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "rangeMappings": ";;;;;;;;;;;;;;;;;;;;;;;;;", "sources": [ "../../input/UserController.ts" ], diff --git a/crates/swc_ecma_ast/src/expr.rs b/crates/swc_ecma_ast/src/expr.rs index ed48bcf59b30..897483093a95 100644 --- a/crates/swc_ecma_ast/src/expr.rs +++ b/crates/swc_ecma_ast/src/expr.rs @@ -311,6 +311,65 @@ impl Expr { pub fn directness_maters(&self) -> bool { self.is_ident_ref_to("eval") || matches!(self, Expr::Member(..)) } + + /// #Note + /// + /// This preserves SyntaxContext of [`Expr::Ident`], and noop for + /// [`Expr::JSXMember`] and [`Expr::JSXNamespacedName`]. + pub fn with_span(mut self, span: Span) -> Expr { + self.set_span(span); + self + } + + /// # Note + /// + /// This preserves SyntaxContext of [`Expr::Ident`], and noop for + /// [`Expr::JSXMember`] and [`Expr::JSXNamespacedName`]. + + pub fn set_span(&mut self, span: Span) { + match self { + Expr::Ident(i) => { + i.span = span.with_ctxt(i.span.ctxt); + } + Expr::This(e) => e.span = span, + Expr::Array(e) => e.span = span, + Expr::Object(e) => e.span = span, + Expr::Fn(e) => e.function.span = span, + Expr::Unary(e) => e.span = span, + Expr::Update(e) => e.span = span, + Expr::Bin(e) => e.span = span, + Expr::Assign(e) => e.span = span, + Expr::Member(e) => e.span = span, + Expr::SuperProp(e) => e.span = span, + Expr::Cond(e) => e.span = span, + Expr::Call(e) => e.span = span, + Expr::New(e) => e.span = span, + Expr::Seq(e) => e.span = span, + Expr::Tpl(e) => e.span = span, + Expr::TaggedTpl(e) => e.span = span, + Expr::Arrow(e) => e.span = span, + Expr::Class(e) => e.class.span = span, + Expr::Yield(e) => e.span = span, + Expr::Invalid(e) => e.span = span, + Expr::TsAs(e) => e.span = span, + Expr::TsTypeAssertion(e) => e.span = span, + Expr::TsConstAssertion(e) => e.span = span, + Expr::TsSatisfies(e) => e.span = span, + Expr::TsNonNull(e) => e.span = span, + Expr::TsInstantiation(e) => e.span = span, + Expr::MetaProp(e) => e.span = span, + Expr::Await(e) => e.span = span, + Expr::Paren(e) => e.span = span, + Expr::JSXMember(..) => {} + Expr::JSXNamespacedName(..) => {} + Expr::JSXEmpty(e) => e.span = span, + Expr::JSXElement(e) => e.span = span, + Expr::JSXFragment(e) => e.span = span, + Expr::PrivateName(e) => e.span = span, + Expr::OptChain(e) => e.span = span, + Expr::Lit(e) => e.set_span(span), + } + } } // Implement Clone without inline to avoid multiple copies of the diff --git a/crates/swc_ecma_ast/src/ident.rs b/crates/swc_ecma_ast/src/ident.rs index 5f581d24f6ec..c609b1320230 100644 --- a/crates/swc_ecma_ast/src/ident.rs +++ b/crates/swc_ecma_ast/src/ident.rs @@ -324,6 +324,12 @@ impl Ident { pub fn is_dummy(&self) -> bool { self.sym == js_word!("") && self.span.is_dummy() } + + /// Create a new identifier with the given position. + pub fn with_pos(self, lo: BytePos, hi: BytePos) -> Ident { + let span = Span::new(lo, hi, self.span.ctxt); + Ident { span, ..self } + } } /// See [Ident] for documentation. diff --git a/crates/swc_ecma_ast/src/lit.rs b/crates/swc_ecma_ast/src/lit.rs index 9c9249504c2e..bb7555c59a4b 100644 --- a/crates/swc_ecma_ast/src/lit.rs +++ b/crates/swc_ecma_ast/src/lit.rs @@ -60,6 +60,20 @@ bridge_lit_from!(Number, f64); bridge_lit_from!(Number, usize); bridge_lit_from!(BigInt, BigIntValue); +impl Lit { + pub fn set_span(&mut self, span: Span) { + match self { + Lit::Str(s) => s.span = span, + Lit::Bool(b) => b.span = span, + Lit::Null(n) => n.span = span, + Lit::Num(n) => n.span = span, + Lit::BigInt(n) => n.span = span, + Lit::Regex(n) => n.span = span, + Lit::JSXText(n) => n.span = span, + } + } +} + #[ast_node("BigIntLiteral")] #[derive(Eq, Hash)] pub struct BigInt { diff --git a/crates/swc_ecma_transforms_proposal/src/decorators/legacy/metadata.rs b/crates/swc_ecma_transforms_proposal/src/decorators/legacy/metadata.rs index b82b29446969..9e6c370ad0ee 100644 --- a/crates/swc_ecma_transforms_proposal/src/decorators/legacy/metadata.rs +++ b/crates/swc_ecma_transforms_proposal/src/decorators/legacy/metadata.rs @@ -4,7 +4,7 @@ use swc_atoms::JsWord; use swc_common::{ collections::AHashMap, util::{move_map::MoveMap, take::Take}, - Spanned, DUMMY_SP, + BytePos, Spanned, DUMMY_SP, }; use swc_ecma_ast::*; use swc_ecma_transforms_base::helper; @@ -60,11 +60,17 @@ impl VisitMut for ParamMetadata { } impl ParamMetadata { - fn create_param_decorator(&self, param_index: usize, decorator_expr: Box) -> Decorator { + fn create_param_decorator( + &self, + param_index: usize, + mut decorator_expr: Box, + ) -> Decorator { + remove_span(&mut decorator_expr); + Decorator { span: DUMMY_SP, expr: Box::new(Expr::Call(CallExpr { - span: decorator_expr.span(), + span: DUMMY_SP, callee: helper!(ts, ts_param), args: vec![param_index.as_arg(), decorator_expr.as_arg()], type_args: Default::default(), @@ -73,6 +79,27 @@ impl ParamMetadata { } } +pub(super) fn remove_span(e: &mut Expr) { + match e { + Expr::Member(m) => { + m.span = DUMMY_SP; + remove_span(&mut m.obj); + } + Expr::Call(c) => { + c.span = DUMMY_SP; + if let Callee::Expr(e) = &mut c.callee { + remove_span(e); + } + for arg in &mut c.args { + remove_span(&mut arg.expr); + } + } + _ => { + e.set_span(DUMMY_SP); + } + } +} + type EnumMapType = AHashMap; pub(super) struct EnumMap<'a>(&'a EnumMapType); @@ -512,7 +539,7 @@ fn ts_entity_to_member_expr(type_name: &TsEntityName) -> Expr { prop: MemberProp::Ident(q.right.clone()), }) } - TsEntityName::Ident(i) => Expr::Ident(i.clone()), + TsEntityName::Ident(i) => Expr::Ident(i.clone().with_pos(BytePos::DUMMY, BytePos::DUMMY)), } } diff --git a/crates/swc_ecma_transforms_proposal/src/decorators/legacy/mod.rs b/crates/swc_ecma_transforms_proposal/src/decorators/legacy/mod.rs index ffff8495d43b..e04e8db47e1f 100644 --- a/crates/swc_ecma_transforms_proposal/src/decorators/legacy/mod.rs +++ b/crates/swc_ecma_transforms_proposal/src/decorators/legacy/mod.rs @@ -1,7 +1,8 @@ use std::{iter, mem}; +use metadata::remove_span; use swc_atoms::JsWord; -use swc_common::{collections::AHashMap, util::take::Take, DUMMY_SP}; +use swc_common::{collections::AHashMap, util::take::Take, BytePos, DUMMY_SP}; use swc_ecma_ast::*; use swc_ecma_transforms_base::helper; use swc_ecma_utils::{private_ident, prop_name_to_expr_value, quote_ident, ExprFactory, StmtLike}; @@ -151,20 +152,27 @@ impl TscDecorator { fn add_decorate_call( &mut self, decorators: impl IntoIterator>, - target: ExprOrSpread, + mut target: ExprOrSpread, key: ExprOrSpread, - desc: ExprOrSpread, + mut desc: ExprOrSpread, ) { let decorators = ArrayLit { span: DUMMY_SP, elems: decorators .into_iter() - .map(|v| v.as_arg()) + .map(|mut v| { + remove_span(&mut v); + + v.as_arg() + }) .map(Some) .collect(), } .as_arg(); + remove_span(&mut target.expr); + remove_span(&mut desc.expr); + self.appended_exprs.push(Box::new(Expr::Call(CallExpr { span: DUMMY_SP, callee: helper!(ts, ts_decorate), @@ -235,7 +243,11 @@ impl VisitMut for TscDecorator { .decorators .take() .into_iter() - .map(|v| v.expr.as_arg()) + .map(|mut v| { + remove_span(&mut v.expr); + + v.expr.as_arg() + }) .map(Some) .collect(), } @@ -244,13 +256,19 @@ impl VisitMut for TscDecorator { let decorated = Box::new(Expr::Call(CallExpr { span: DUMMY_SP, callee: helper!(ts, ts_decorate), - args: vec![decorators, class_name.clone().as_arg()], + args: vec![ + decorators, + class_name + .clone() + .with_pos(BytePos::DUMMY, BytePos::DUMMY) + .as_arg(), + ], type_args: Default::default(), })); self.appended_exprs.push(Box::new(Expr::Assign(AssignExpr { span: DUMMY_SP, op: op!("="), - left: class_name.into(), + left: class_name.with_pos(BytePos::DUMMY, BytePos::DUMMY).into(), right: decorated, }))); }