mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 04:08:41 +00:00
fix(codegen): print export @decorator declare abstract class Foo correctly (#5303)
This commit is contained in:
parent
6633972663
commit
5c4c00123d
3 changed files with 10 additions and 6 deletions
|
|
@ -2158,16 +2158,16 @@ impl<'a> Gen for MetaProperty<'a> {
|
|||
impl<'a> Gen for Class<'a> {
|
||||
fn gen(&self, p: &mut Codegen, ctx: Context) {
|
||||
p.add_source_mapping(self.span.start);
|
||||
if self.declare {
|
||||
p.print_str("declare ");
|
||||
}
|
||||
if self.r#abstract {
|
||||
p.print_str("abstract ");
|
||||
}
|
||||
let n = p.code_len();
|
||||
let wrap = self.is_expression() && (p.start_of_stmt == n || p.start_of_default_export == n);
|
||||
p.wrap(wrap, |p| {
|
||||
self.decorators.gen(p, ctx);
|
||||
if self.declare {
|
||||
p.print_str("declare ");
|
||||
}
|
||||
if self.r#abstract {
|
||||
p.print_str("abstract ");
|
||||
}
|
||||
p.print_str("class");
|
||||
if let Some(id) = &self.id {
|
||||
p.print_hard_space();
|
||||
|
|
|
|||
|
|
@ -106,3 +106,6 @@ c = foo<string>;
|
|||
|
||||
d = x satisfies y;
|
||||
d = ((x) satisfies y);
|
||||
|
||||
export @x declare abstract class C {}
|
||||
export @x declare abstract class C {}
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ fn ts() {
|
|||
"b = (x as y);",
|
||||
"c = foo<string>;",
|
||||
"d = x satisfies y;",
|
||||
"export @x declare abstract class C {}",
|
||||
];
|
||||
|
||||
let snapshot = cases.into_iter().fold(String::new(), |mut w, case| {
|
||||
|
|
|
|||
Loading…
Reference in a new issue