From abfccbd9419faac7abba30829ad4261946cb9890 Mon Sep 17 00:00:00 2001 From: overlookmotel <557937+overlookmotel@users.noreply.github.com> Date: Sat, 20 Jul 2024 16:41:16 +0000 Subject: [PATCH] refactor(ast): reduce `#[cfg_attr]` boilerplate in AST type defs (#4375) Remove a ton of `#[cfg_attr(feature = "serialize", serde(...))]` boilerplate from AST type definitions. Before: `#[cfg_attr(feature = "serialize", serde(flatten))]` After: `#[serde(flatten)]` This is a reprise of #2669, which was later reverted, but this time doing it using our existing zero-cost `#[ast]` dummy macro attr, so no compile time penalty this time around. This makes no difference to either runtime or compile time behavior, purely removes the `cfg_attr` boilerplate and makes the code easier to read. --- crates/oxc_ast/src/ast/js.rs | 479 +++++++++++++++--------------- crates/oxc_ast/src/ast/jsx.rs | 74 ++--- crates/oxc_ast/src/ast/literal.rs | 28 +- crates/oxc_ast/src/ast/ts.rs | 333 ++++++++++----------- crates/oxc_ast_macros/src/lib.rs | 11 +- 5 files changed, 455 insertions(+), 470 deletions(-) diff --git a/crates/oxc_ast/src/ast/js.rs b/crates/oxc_ast/src/ast/js.rs index 616db7148c0e7..0214894212d3f 100644 --- a/crates/oxc_ast/src/ast/js.rs +++ b/crates/oxc_ast/src/ast/js.rs @@ -34,9 +34,9 @@ use tsify::Tsify; )] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct Program<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub source_type: SourceType, pub hashbang: Option>, @@ -55,7 +55,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum Expression<'a> { BooleanLiteral(Box<'a, BooleanLiteral>) = 0, NullLiteral(Box<'a, NullLiteral>) = 1, @@ -163,9 +163,9 @@ pub use match_expression; #[ast(visit)] #[derive(Debug, Clone, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename = "Identifier"))] +#[serde(tag = "type", rename = "Identifier")] pub struct IdentifierName<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: Atom<'a>, } @@ -174,14 +174,14 @@ pub struct IdentifierName<'a> { #[ast(visit)] #[derive(Debug, Clone)] #[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename = "Identifier"))] +#[serde(tag = "type", rename = "Identifier")] pub struct IdentifierReference<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: Atom<'a>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub reference_id: Cell>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub reference_flag: ReferenceFlag, } @@ -189,12 +189,12 @@ pub struct IdentifierReference<'a> { #[ast(visit)] #[derive(Debug, Clone)] #[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename = "Identifier"))] +#[serde(tag = "type", rename = "Identifier")] pub struct BindingIdentifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: Atom<'a>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub symbol_id: Cell>, } @@ -202,9 +202,9 @@ pub struct BindingIdentifier<'a> { #[ast(visit)] #[derive(Debug, Clone, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename = "Identifier"))] +#[serde(tag = "type", rename = "Identifier")] pub struct LabelIdentifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: Atom<'a>, } @@ -213,9 +213,9 @@ pub struct LabelIdentifier<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ThisExpression { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } @@ -223,15 +223,15 @@ pub struct ThisExpression { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct ArrayExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, - #[cfg_attr(feature = "serialize", tsify(type = "Array"))] + #[tsify(type = "Array")] pub elements: Vec<'a, ArrayExpressionElement<'a>>, /// Array trailing comma /// - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub trailing_comma: Option, } @@ -245,7 +245,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ArrayExpressionElement<'a> { SpreadElement(Box<'a, SpreadElement<'a>>) = 64, /// Array hole for sparse arrays @@ -269,19 +269,19 @@ pub struct Elision { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ObjectExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub properties: Vec<'a, ObjectPropertyKind<'a>>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub trailing_comma: Option, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ObjectPropertyKind<'a> { ObjectProperty(Box<'a, ObjectProperty<'a>>), SpreadProperty(Box<'a, SpreadElement<'a>>), @@ -290,9 +290,9 @@ pub enum ObjectPropertyKind<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ObjectProperty<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub kind: PropertyKind, pub key: PropertyKey<'a>, @@ -313,7 +313,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum PropertyKey<'a> { StaticIdentifier(Box<'a, IdentifierName<'a>>) = 64, PrivateIdentifier(Box<'a, PrivateIdentifier<'a>>) = 65, @@ -325,7 +325,7 @@ pub enum PropertyKey<'a> { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "lowercase"))] +#[serde(rename_all = "lowercase")] pub enum PropertyKind { Init, Get, @@ -338,9 +338,9 @@ pub enum PropertyKind { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TemplateLiteral<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub quasis: Vec<'a, TemplateElement<'a>>, pub expressions: Vec<'a, Expression<'a>>, @@ -349,9 +349,9 @@ pub struct TemplateLiteral<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TaggedTemplateExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub tag: Expression<'a>, pub quasi: TemplateLiteral<'a>, @@ -361,9 +361,9 @@ pub struct TaggedTemplateExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TemplateElement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub tail: bool, pub value: TemplateElementValue<'a>, @@ -390,7 +390,7 @@ pub struct TemplateElementValue<'a> { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum MemberExpression<'a> { /// `MemberExpression[?Yield, ?Await] [ Expression[+In, ?Yield, ?Await] ]` ComputedMemberExpression(Box<'a, ComputedMemberExpression<'a>>) = 48, @@ -415,9 +415,9 @@ pub use match_member_expression; #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ComputedMemberExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub object: Expression<'a>, pub expression: Expression<'a>, @@ -428,9 +428,9 @@ pub struct ComputedMemberExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct StaticMemberExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub object: Expression<'a>, pub property: IdentifierName<'a>, @@ -441,9 +441,9 @@ pub struct StaticMemberExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct PrivateFieldExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub object: Expression<'a>, pub field: PrivateIdentifier<'a>, @@ -454,9 +454,9 @@ pub struct PrivateFieldExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct CallExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub arguments: Vec<'a, Argument<'a>>, pub callee: Expression<'a>, @@ -468,9 +468,9 @@ pub struct CallExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct NewExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub callee: Expression<'a>, pub arguments: Vec<'a, Argument<'a>>, @@ -481,9 +481,9 @@ pub struct NewExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct MetaProperty<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub meta: IdentifierName<'a>, pub property: IdentifierName<'a>, @@ -493,9 +493,9 @@ pub struct MetaProperty<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct SpreadElement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub argument: Expression<'a>, } @@ -510,7 +510,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum Argument<'a> { SpreadElement(Box<'a, SpreadElement<'a>>) = 64, // `Expression` variants added here by `inherit_variants!` macro @@ -522,9 +522,9 @@ pub enum Argument<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct UpdateExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub operator: UpdateOperator, pub prefix: bool, @@ -535,9 +535,9 @@ pub struct UpdateExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct UnaryExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub operator: UnaryOperator, pub argument: Expression<'a>, @@ -547,9 +547,9 @@ pub struct UnaryExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct BinaryExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub left: Expression<'a>, pub operator: BinaryOperator, @@ -560,9 +560,9 @@ pub struct BinaryExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct PrivateInExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub left: PrivateIdentifier<'a>, pub operator: BinaryOperator, // BinaryOperator::In @@ -573,9 +573,9 @@ pub struct PrivateInExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct LogicalExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub left: Expression<'a>, pub operator: LogicalOperator, @@ -586,9 +586,9 @@ pub struct LogicalExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ConditionalExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub test: Expression<'a>, pub consequent: Expression<'a>, @@ -599,9 +599,9 @@ pub struct ConditionalExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct AssignmentExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub operator: AssignmentOperator, pub left: AssignmentTarget<'a>, @@ -619,7 +619,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum AssignmentTarget<'a> { // `SimpleAssignmentTarget` variants added here by `inherit_variants!` macro @inherit SimpleAssignmentTarget @@ -638,7 +638,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum SimpleAssignmentTarget<'a> { AssignmentTargetIdentifier(Box<'a, IdentifierReference<'a>>) = 0, TSAsExpression(Box<'a, TSAsExpression<'a>>) = 1, @@ -693,7 +693,7 @@ pub use match_simple_assignment_target; #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum AssignmentTargetPattern<'a> { ArrayAssignmentTarget(Box<'a, ArrayAssignmentTarget<'a>>) = 8, ObjectAssignmentTarget(Box<'a, ObjectAssignmentTarget<'a>>) = 9, @@ -712,18 +712,15 @@ pub use match_assignment_target_pattern; #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ArrayAssignmentTarget<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, - #[cfg_attr( - feature = "serialize", - tsify(type = "Array") - )] + #[tsify(type = "Array")] pub elements: Vec<'a, Option>>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub rest: Option>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub trailing_comma: Option, } @@ -731,27 +728,24 @@ pub struct ArrayAssignmentTarget<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ObjectAssignmentTarget<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, - #[cfg_attr( - feature = "serialize", - tsify(type = "Array") - )] + #[tsify(type = "Array")] pub properties: Vec<'a, AssignmentTargetProperty<'a>>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub rest: Option>, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename = "RestElement"))] +#[serde(tag = "type", rename = "RestElement")] pub struct AssignmentTargetRest<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, - #[cfg_attr(feature = "serialize", serde(rename = "argument"))] + #[serde(rename = "argument")] pub target: AssignmentTarget<'a>, } @@ -765,7 +759,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum AssignmentTargetMaybeDefault<'a> { AssignmentTargetWithDefault(Box<'a, AssignmentTargetWithDefault<'a>>) = 16, // `AssignmentTarget` variants added here by `inherit_variants!` macro @@ -776,9 +770,9 @@ pub enum AssignmentTargetMaybeDefault<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct AssignmentTargetWithDefault<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub binding: AssignmentTarget<'a>, pub init: Expression<'a>, @@ -787,7 +781,7 @@ pub struct AssignmentTargetWithDefault<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum AssignmentTargetProperty<'a> { AssignmentTargetPropertyIdentifier(Box<'a, AssignmentTargetPropertyIdentifier<'a>>), AssignmentTargetPropertyProperty(Box<'a, AssignmentTargetPropertyProperty<'a>>), @@ -797,9 +791,9 @@ pub enum AssignmentTargetProperty<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct AssignmentTargetPropertyIdentifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub binding: IdentifierReference<'a>, pub init: Option>, @@ -809,9 +803,9 @@ pub struct AssignmentTargetPropertyIdentifier<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct AssignmentTargetPropertyProperty<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: PropertyKey<'a>, pub binding: AssignmentTargetMaybeDefault<'a>, @@ -821,9 +815,9 @@ pub struct AssignmentTargetPropertyProperty<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct SequenceExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expressions: Vec<'a, Expression<'a>>, } @@ -831,9 +825,9 @@ pub struct SequenceExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct Super { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } @@ -841,9 +835,9 @@ pub struct Super { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct AwaitExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub argument: Expression<'a>, } @@ -851,9 +845,9 @@ pub struct AwaitExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ChainExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: ChainElement<'a>, } @@ -868,7 +862,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ChainElement<'a> { CallExpression(Box<'a, CallExpression<'a>>) = 0, // `MemberExpression` variants added here by `inherit_variants!` macro @@ -880,9 +874,9 @@ pub enum ChainElement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ParenthesizedExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, } @@ -898,7 +892,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum Statement<'a> { // Statements BlockStatement(Box<'a, BlockStatement<'a>>) = 0, @@ -930,9 +924,9 @@ pub enum Statement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct Directive<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, /// Directive with any escapes unescaped pub expression: StringLiteral<'a>, @@ -944,9 +938,9 @@ pub struct Directive<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct Hashbang<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub value: Atom<'a>, } @@ -956,9 +950,9 @@ pub struct Hashbang<'a> { #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct BlockStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub body: Vec<'a, Statement<'a>>, pub scope_id: Cell>, @@ -969,7 +963,7 @@ pub struct BlockStatement<'a> { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum Declaration<'a> { VariableDeclaration(Box<'a, VariableDeclaration<'a>>) = 32, #[visit_args(flags = ScopeFlags::Function)] @@ -1005,9 +999,9 @@ pub use match_declaration; #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct VariableDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub kind: VariableDeclarationKind, pub declarations: Vec<'a, VariableDeclarator<'a>>, @@ -1017,7 +1011,7 @@ pub struct VariableDeclaration<'a> { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "lowercase"))] +#[serde(rename_all = "lowercase")] pub enum VariableDeclarationKind { Var, Const, @@ -1027,11 +1021,11 @@ pub enum VariableDeclarationKind { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct VariableDeclarator<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub kind: VariableDeclarationKind, pub id: BindingPattern<'a>, pub init: Option>, @@ -1043,12 +1037,12 @@ pub struct VariableDeclarator<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct UsingDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub is_await: bool, - #[cfg_attr(feature = "serialize", serde(default))] + #[serde(default)] pub declarations: Vec<'a, VariableDeclarator<'a>>, } @@ -1056,9 +1050,9 @@ pub struct UsingDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct EmptyStatement { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } @@ -1066,9 +1060,9 @@ pub struct EmptyStatement { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ExpressionStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, } @@ -1077,9 +1071,9 @@ pub struct ExpressionStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct IfStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub test: Expression<'a>, pub consequent: Statement<'a>, @@ -1090,9 +1084,9 @@ pub struct IfStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct DoWhileStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub body: Statement<'a>, pub test: Expression<'a>, @@ -1102,9 +1096,9 @@ pub struct DoWhileStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct WhileStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub test: Expression<'a>, pub body: Statement<'a>, @@ -1115,9 +1109,9 @@ pub struct WhileStatement<'a> { #[scope(if(self.init.as_ref().is_some_and(ForStatementInit::is_lexical_declaration)))] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ForStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub init: Option>, pub test: Option>, @@ -1136,7 +1130,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ForStatementInit<'a> { VariableDeclaration(Box<'a, VariableDeclaration<'a>>) = 64, UsingDeclaration(Box<'a, UsingDeclaration<'a>>) = 65, @@ -1150,9 +1144,9 @@ pub enum ForStatementInit<'a> { #[scope(if(self.left.is_lexical_declaration()))] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ForInStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub left: ForStatementLeft<'a>, pub right: Expression<'a>, @@ -1170,7 +1164,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ForStatementLeft<'a> { VariableDeclaration(Box<'a, VariableDeclaration<'a>>) = 16, UsingDeclaration(Box<'a, UsingDeclaration<'a>>) = 17, @@ -1183,9 +1177,9 @@ pub enum ForStatementLeft<'a> { #[scope(if(self.left.is_lexical_declaration()))] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ForOfStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub r#await: bool, pub left: ForStatementLeft<'a>, @@ -1198,9 +1192,9 @@ pub struct ForOfStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ContinueStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub label: Option>, } @@ -1209,9 +1203,9 @@ pub struct ContinueStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct BreakStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub label: Option>, } @@ -1220,9 +1214,9 @@ pub struct BreakStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ReturnStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub argument: Option>, } @@ -1231,9 +1225,9 @@ pub struct ReturnStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct WithStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub object: Expression<'a>, pub body: Statement<'a>, @@ -1244,9 +1238,9 @@ pub struct WithStatement<'a> { #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct SwitchStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub discriminant: Expression<'a>, #[scope(enter_before)] @@ -1257,9 +1251,9 @@ pub struct SwitchStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct SwitchCase<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub test: Option>, pub consequent: Vec<'a, Statement<'a>>, @@ -1269,9 +1263,9 @@ pub struct SwitchCase<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct LabeledStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub label: LabelIdentifier<'a>, pub body: Statement<'a>, @@ -1281,9 +1275,9 @@ pub struct LabeledStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ThrowStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub argument: Expression<'a>, } @@ -1292,9 +1286,9 @@ pub struct ThrowStatement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TryStatement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub block: Box<'a, BlockStatement<'a>>, pub handler: Option>>, @@ -1306,9 +1300,9 @@ pub struct TryStatement<'a> { #[scope(flags(ScopeFlags::CatchClause), if(self.param.is_some()))] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct CatchClause<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub param: Option>, pub body: Box<'a, BlockStatement<'a>>, @@ -1318,9 +1312,9 @@ pub struct CatchClause<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct CatchParameter<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub pattern: BindingPattern<'a>, } @@ -1329,9 +1323,9 @@ pub struct CatchParameter<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct DebuggerStatement { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } @@ -1340,14 +1334,11 @@ pub struct DebuggerStatement { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] +#[serde(rename_all = "camelCase")] pub struct BindingPattern<'a> { // serde(flatten) the attributes because estree has no `BindingPattern` - #[cfg_attr(feature = "serialize", serde(flatten))] - #[cfg_attr( - feature = "serialize", - tsify(type = "(BindingIdentifier | ObjectPattern | ArrayPattern | AssignmentPattern)") - )] + #[serde(flatten)] + #[tsify(type = "(BindingIdentifier | ObjectPattern | ArrayPattern | AssignmentPattern)")] #[span] pub kind: BindingPatternKind<'a>, pub type_annotation: Option>>, @@ -1357,7 +1348,7 @@ pub struct BindingPattern<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum BindingPatternKind<'a> { /// `const a = 1` BindingIdentifier(Box<'a, BindingIdentifier<'a>>), @@ -1375,9 +1366,9 @@ pub enum BindingPatternKind<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct AssignmentPattern<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub left: BindingPattern<'a>, pub right: Expression<'a>, @@ -1387,22 +1378,22 @@ pub struct AssignmentPattern<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ObjectPattern<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, - #[cfg_attr(feature = "serialize", tsify(type = "Array"))] + #[tsify(type = "Array")] pub properties: Vec<'a, BindingProperty<'a>>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub rest: Option>>, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct BindingProperty<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub key: PropertyKey<'a>, pub value: BindingPattern<'a>, @@ -1414,25 +1405,22 @@ pub struct BindingProperty<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ArrayPattern<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, - #[cfg_attr( - feature = "serialize", - tsify(type = "Array") - )] + #[tsify(type = "Array")] pub elements: Vec<'a, Option>>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub rest: Option>>, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename = "RestElement"))] +#[serde(tag = "type", rename = "RestElement")] pub struct BindingRestElement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub argument: BindingPattern<'a>, } @@ -1446,10 +1434,10 @@ pub struct BindingRestElement<'a> { )] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] +#[serde(rename_all = "camelCase")] pub struct Function<'a> { pub r#type: FunctionType, - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub id: Option>, pub generator: bool, @@ -1494,26 +1482,23 @@ pub enum FunctionType { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct FormalParameters<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub kind: FormalParameterKind, - #[cfg_attr( - feature = "serialize", - tsify(type = "Array") - )] + #[tsify(type = "Array")] pub items: Vec<'a, FormalParameter<'a>>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub rest: Option>>, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct FormalParameter<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub decorators: Vec<'a, Decorator<'a>>, pub pattern: BindingPattern<'a>, @@ -1540,9 +1525,9 @@ pub enum FormalParameterKind { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct FunctionBody<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub directives: Vec<'a, Directive<'a>>, pub statements: Vec<'a, Statement<'a>>, @@ -1556,9 +1541,9 @@ pub struct FunctionBody<'a> { )] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct ArrowFunctionExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, /// Is the function body an arrow expression? i.e. `() => expr` instead of `() => {}` pub expression: bool, @@ -1575,9 +1560,9 @@ pub struct ArrowFunctionExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct YieldExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub delegate: bool, pub argument: Option>, @@ -1588,10 +1573,10 @@ pub struct YieldExpression<'a> { #[scope(flags(ScopeFlags::StrictMode))] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] +#[serde(rename_all = "camelCase")] pub struct Class<'a> { pub r#type: ClassType, - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub decorators: Vec<'a, Decorator<'a>>, pub id: Option>, @@ -1618,9 +1603,9 @@ pub enum ClassType { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ClassBody<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub body: Vec<'a, ClassElement<'a>>, } @@ -1628,7 +1613,7 @@ pub struct ClassBody<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ClassElement<'a> { StaticBlock(Box<'a, StaticBlock<'a>>), MethodDefinition(Box<'a, MethodDefinition<'a>>), @@ -1640,10 +1625,10 @@ pub enum ClassElement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] +#[serde(rename_all = "camelCase")] pub struct MethodDefinition<'a> { pub r#type: MethodDefinitionType, - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub decorators: Vec<'a, Decorator<'a>>, pub key: PropertyKey<'a>, @@ -1673,10 +1658,10 @@ pub enum MethodDefinitionType { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] +#[serde(rename_all = "camelCase")] pub struct PropertyDefinition<'a> { pub r#type: PropertyDefinitionType, - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub decorators: Vec<'a, Decorator<'a>>, pub key: PropertyKey<'a>, @@ -1703,7 +1688,7 @@ pub enum PropertyDefinitionType { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "lowercase"))] +#[serde(rename_all = "lowercase")] pub enum MethodDefinitionKind { Constructor, Method, @@ -1714,9 +1699,9 @@ pub enum MethodDefinitionKind { #[ast(visit)] #[derive(Debug, Clone, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct PrivateIdentifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: Atom<'a>, } @@ -1725,9 +1710,9 @@ pub struct PrivateIdentifier<'a> { #[scope(flags(ScopeFlags::ClassStaticBlock))] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct StaticBlock<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub body: Vec<'a, Statement<'a>>, pub scope_id: Cell>, @@ -1737,7 +1722,7 @@ pub struct StaticBlock<'a> { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ModuleDeclaration<'a> { /// `import hello from './world.js';` /// `import * as t from './world.js';` @@ -1783,7 +1768,7 @@ pub enum AccessorPropertyType { #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] pub struct AccessorProperty<'a> { pub r#type: AccessorPropertyType, - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub decorators: Vec<'a, Decorator<'a>>, pub key: PropertyKey<'a>, @@ -1795,9 +1780,9 @@ pub struct AccessorProperty<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ImportExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub source: Expression<'a>, pub arguments: Vec<'a, Expression<'a>>, @@ -1806,9 +1791,9 @@ pub struct ImportExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct ImportDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, /// `None` for `import 'foo'`, `Some([])` for `import {} from 'foo'` pub specifiers: Option>>, @@ -1822,7 +1807,7 @@ pub struct ImportDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ImportDeclarationSpecifier<'a> { /// import {imported} from "source" /// import {imported as local} from "source" @@ -1838,9 +1823,9 @@ pub enum ImportDeclarationSpecifier<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct ImportSpecifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub imported: ModuleExportName<'a>, pub local: BindingIdentifier<'a>, @@ -1851,9 +1836,9 @@ pub struct ImportSpecifier<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ImportDefaultSpecifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub local: BindingIdentifier<'a>, } @@ -1862,9 +1847,9 @@ pub struct ImportDefaultSpecifier<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ImportNamespaceSpecifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub local: BindingIdentifier<'a>, } @@ -1872,9 +1857,9 @@ pub struct ImportNamespaceSpecifier<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct WithClause<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub attributes_keyword: IdentifierName<'a>, // `with` or `assert` pub with_entries: Vec<'a, ImportAttribute<'a>>, @@ -1883,9 +1868,9 @@ pub struct WithClause<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ImportAttribute<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub key: ImportAttributeKey<'a>, pub value: StringLiteral<'a>, @@ -1894,7 +1879,7 @@ pub struct ImportAttribute<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ImportAttributeKey<'a> { Identifier(IdentifierName<'a>), StringLiteral(StringLiteral<'a>), @@ -1903,9 +1888,9 @@ pub enum ImportAttributeKey<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct ExportNamedDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub declaration: Option>, pub specifiers: Vec<'a, ExportSpecifier<'a>>, @@ -1923,9 +1908,9 @@ pub struct ExportNamedDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct ExportDefaultDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub declaration: ExportDefaultDeclarationKind<'a>, pub exported: ModuleExportName<'a>, // the `default` Keyword @@ -1934,9 +1919,9 @@ pub struct ExportDefaultDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct ExportAllDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub exported: Option>, pub source: StringLiteral<'a>, @@ -1947,9 +1932,9 @@ pub struct ExportAllDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct ExportSpecifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub local: ModuleExportName<'a>, pub exported: ModuleExportName<'a>, @@ -1966,7 +1951,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ExportDefaultDeclarationKind<'a> { #[visit_args(flags = ScopeFlags::Function)] FunctionDeclaration(Box<'a, Function<'a>>) = 64, @@ -1988,7 +1973,7 @@ pub enum ExportDefaultDeclarationKind<'a> { #[ast(visit)] #[derive(Debug, Clone, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum ModuleExportName<'a> { IdentifierName(IdentifierName<'a>), /// For `local` in `ExportSpecifier`: `foo` in `export { foo }` diff --git a/crates/oxc_ast/src/ast/jsx.rs b/crates/oxc_ast/src/ast/jsx.rs index bb7d9d2b40395..7aa5e3a14d8f7 100644 --- a/crates/oxc_ast/src/ast/jsx.rs +++ b/crates/oxc_ast/src/ast/jsx.rs @@ -23,9 +23,9 @@ use super::{inherit_variants, js::*, literal::*, ts::*}; #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct JSXElement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub opening_element: Box<'a, JSXOpeningElement<'a>>, pub closing_element: Option>>, @@ -36,9 +36,9 @@ pub struct JSXElement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct JSXOpeningElement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub self_closing: bool, pub name: JSXElementName<'a>, @@ -50,9 +50,9 @@ pub struct JSXOpeningElement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXClosingElement<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: JSXElementName<'a>, } @@ -61,9 +61,9 @@ pub struct JSXClosingElement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct JSXFragment<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub opening_fragment: JSXOpeningFragment, pub closing_fragment: JSXClosingFragment, @@ -73,18 +73,18 @@ pub struct JSXFragment<'a> { #[ast] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXOpeningFragment { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXClosingFragment { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } @@ -92,7 +92,7 @@ pub struct JSXClosingFragment { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum JSXElementName<'a> { /// `` Identifier(Box<'a, JSXIdentifier<'a>>), @@ -106,9 +106,9 @@ pub enum JSXElementName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXNamespacedName<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub namespace: JSXIdentifier<'a>, pub property: JSXIdentifier<'a>, @@ -118,9 +118,9 @@ pub struct JSXNamespacedName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXMemberExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub object: JSXMemberExpressionObject<'a>, pub property: JSXIdentifier<'a>, @@ -129,7 +129,7 @@ pub struct JSXMemberExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum JSXMemberExpressionObject<'a> { Identifier(Box<'a, JSXIdentifier<'a>>), MemberExpression(Box<'a, JSXMemberExpression<'a>>), @@ -138,9 +138,9 @@ pub enum JSXMemberExpressionObject<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXExpressionContainer<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: JSXExpression<'a>, } @@ -155,7 +155,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum JSXExpression<'a> { EmptyExpression(JSXEmptyExpression) = 64, // `Expression` variants added here by `inherit_variants!` macro @@ -166,9 +166,9 @@ pub enum JSXExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXEmptyExpression { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } @@ -178,7 +178,7 @@ pub struct JSXEmptyExpression { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum JSXAttributeItem<'a> { Attribute(Box<'a, JSXAttribute<'a>>), SpreadAttribute(Box<'a, JSXSpreadAttribute<'a>>), @@ -188,9 +188,9 @@ pub enum JSXAttributeItem<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXAttribute<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: JSXAttributeName<'a>, pub value: Option>, @@ -200,9 +200,9 @@ pub struct JSXAttribute<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXSpreadAttribute<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub argument: Expression<'a>, } @@ -211,7 +211,7 @@ pub struct JSXSpreadAttribute<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum JSXAttributeName<'a> { Identifier(Box<'a, JSXIdentifier<'a>>), NamespacedName(Box<'a, JSXNamespacedName<'a>>), @@ -221,7 +221,7 @@ pub enum JSXAttributeName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum JSXAttributeValue<'a> { StringLiteral(Box<'a, StringLiteral<'a>>), ExpressionContainer(Box<'a, JSXExpressionContainer<'a>>), @@ -232,9 +232,9 @@ pub enum JSXAttributeValue<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXIdentifier<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: Atom<'a>, } @@ -245,7 +245,7 @@ pub struct JSXIdentifier<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum JSXChild<'a> { Text(Box<'a, JSXText<'a>>), Element(Box<'a, JSXElement<'a>>), @@ -257,9 +257,9 @@ pub enum JSXChild<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXSpreadChild<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, } @@ -267,9 +267,9 @@ pub struct JSXSpreadChild<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct JSXText<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub value: Atom<'a>, } diff --git a/crates/oxc_ast/src/ast/literal.rs b/crates/oxc_ast/src/ast/literal.rs index 359485df3ec79..5c4e4ffd59ba3 100644 --- a/crates/oxc_ast/src/ast/literal.rs +++ b/crates/oxc_ast/src/ast/literal.rs @@ -21,9 +21,9 @@ use tsify::Tsify; #[ast(visit)] #[derive(Debug, Clone, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct BooleanLiteral { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub value: bool, } @@ -31,43 +31,43 @@ pub struct BooleanLiteral { #[ast(visit)] #[derive(Debug, Clone)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct NullLiteral { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Clone)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct NumericLiteral<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub value: f64, pub raw: &'a str, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub base: NumberBase, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct BigIntLiteral<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub raw: Atom<'a>, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub base: BigintBase, } #[ast(visit)] #[derive(Debug, Clone, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct RegExpLiteral<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, // valid regex is printed as {} // invalid regex is printed as null, which we can't implement yet @@ -91,9 +91,9 @@ pub struct EmptyObject; #[ast(visit)] #[derive(Debug, Clone, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct StringLiteral<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub value: Atom<'a>, } diff --git a/crates/oxc_ast/src/ast/ts.rs b/crates/oxc_ast/src/ast/ts.rs index 5881d347044ae..c6f8649d0a11b 100644 --- a/crates/oxc_ast/src/ast/ts.rs +++ b/crates/oxc_ast/src/ast/ts.rs @@ -36,9 +36,9 @@ export interface TSIndexSignatureName extends Span { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSThisParameter<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub this: IdentifierName<'a>, pub type_annotation: Option>>, @@ -51,9 +51,9 @@ pub struct TSThisParameter<'a> { #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSEnumDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub id: BindingIdentifier<'a>, #[scope(enter_before)] @@ -66,9 +66,9 @@ pub struct TSEnumDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSEnumMember<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub id: TSEnumMemberName<'a>, pub initializer: Option>, @@ -84,7 +84,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum TSEnumMemberName<'a> { StaticIdentifier(Box<'a, IdentifierName<'a>>) = 64, StaticStringLiteral(Box<'a, StringLiteral<'a>>) = 65, @@ -99,9 +99,9 @@ pub enum TSEnumMemberName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeAnnotation<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_annotation: TSType<'a>, } @@ -109,9 +109,9 @@ pub struct TSTypeAnnotation<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSLiteralType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub literal: TSLiteral<'a>, } @@ -119,7 +119,7 @@ pub struct TSLiteralType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged, rename_all = "camelCase"))] +#[serde(untagged, rename_all = "camelCase")] pub enum TSLiteral<'a> { BooleanLiteral(Box<'a, BooleanLiteral>), NullLiteral(Box<'a, NullLiteral>), @@ -135,7 +135,7 @@ pub enum TSLiteral<'a> { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged, rename_all = "camelCase"))] +#[serde(untagged, rename_all = "camelCase")] pub enum TSType<'a> { // Keyword TSAnyKeyword(Box<'a, TSAnyKeyword>) = 0, @@ -233,9 +233,9 @@ pub use match_ts_type; #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSConditionalType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub check_type: TSType<'a>, pub extends_type: TSType<'a>, @@ -250,9 +250,9 @@ pub struct TSConditionalType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSUnionType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub types: Vec<'a, TSType<'a>>, } @@ -263,9 +263,9 @@ pub struct TSUnionType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSIntersectionType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub types: Vec<'a, TSType<'a>>, } @@ -273,9 +273,9 @@ pub struct TSIntersectionType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSParenthesizedType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_annotation: TSType<'a>, } @@ -286,9 +286,9 @@ pub struct TSParenthesizedType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeOperator<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub operator: TSTypeOperatorOperator, pub type_annotation: TSType<'a>, @@ -297,7 +297,7 @@ pub struct TSTypeOperator<'a> { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "lowercase"))] +#[serde(rename_all = "lowercase")] pub enum TSTypeOperatorOperator { Keyof, Unique, @@ -310,9 +310,9 @@ pub enum TSTypeOperatorOperator { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSArrayType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub element_type: TSType<'a>, } @@ -323,9 +323,9 @@ pub struct TSArrayType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSIndexedAccessType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub object_type: TSType<'a>, pub index_type: TSType<'a>, @@ -337,9 +337,9 @@ pub struct TSIndexedAccessType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTupleType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub element_types: Vec<'a, TSTupleElement<'a>>, } @@ -347,9 +347,9 @@ pub struct TSTupleType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSNamedTupleMember<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub element_type: TSTupleElement<'a>, pub label: IdentifierName<'a>, @@ -359,9 +359,9 @@ pub struct TSNamedTupleMember<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSOptionalType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_annotation: TSType<'a>, } @@ -369,9 +369,9 @@ pub struct TSOptionalType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSRestType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_annotation: TSType<'a>, } @@ -386,7 +386,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged, rename_all = "camelCase"))] +#[serde(untagged, rename_all = "camelCase")] pub enum TSTupleElement<'a> { // Discriminants start at 64, so that `TSTupleElement::is_ts_type` is a single // bitwise AND operation on the discriminant (`discriminant & 63 != 0`). @@ -400,45 +400,45 @@ pub enum TSTupleElement<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSAnyKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSStringKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSBooleanKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSNumberKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSNeverKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } @@ -446,81 +446,81 @@ pub struct TSNeverKeyword { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSIntrinsicKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSUnknownKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSNullKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSUndefinedKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSVoidKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSSymbolKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSThisType { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSObjectKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type"))] +#[serde(tag = "type")] pub struct TSBigIntKeyword { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } @@ -530,9 +530,9 @@ pub struct TSBigIntKeyword { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeReference<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_name: TSTypeName<'a>, pub type_parameters: Option>>, @@ -545,7 +545,7 @@ pub struct TSTypeReference<'a> { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum TSTypeName<'a> { IdentifierReference(Box<'a, IdentifierReference<'a>>) = 0, QualifiedName(Box<'a, TSQualifiedName<'a>>) = 1, @@ -563,9 +563,9 @@ pub use match_ts_type_name; #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSQualifiedName<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub left: TSTypeName<'a>, pub right: IdentifierName<'a>, @@ -574,9 +574,9 @@ pub struct TSQualifiedName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeParameterInstantiation<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub params: Vec<'a, TSType<'a>>, } @@ -584,9 +584,9 @@ pub struct TSTypeParameterInstantiation<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeParameter<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: BindingIdentifier<'a>, pub constraint: Option>, @@ -599,9 +599,9 @@ pub struct TSTypeParameter<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeParameterDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub params: Vec<'a, TSTypeParameter<'a>>, } @@ -610,9 +610,9 @@ pub struct TSTypeParameterDeclaration<'a> { #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeAliasDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub id: BindingIdentifier<'a>, #[scope(enter_before)] @@ -625,7 +625,7 @@ pub struct TSTypeAliasDeclaration<'a> { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "lowercase"))] +#[serde(rename_all = "lowercase")] pub enum TSAccessibility { Private, Protected, @@ -635,9 +635,9 @@ pub enum TSAccessibility { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSClassImplements<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: TSTypeName<'a>, pub type_parameters: Option>>, @@ -650,9 +650,9 @@ pub struct TSClassImplements<'a> { #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSInterfaceDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub id: BindingIdentifier<'a>, #[scope(enter_before)] @@ -666,9 +666,9 @@ pub struct TSInterfaceDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSInterfaceBody<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub body: Vec<'a, TSSignature<'a>>, } @@ -676,9 +676,9 @@ pub struct TSInterfaceBody<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSPropertySignature<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub computed: bool, pub optional: bool, @@ -690,7 +690,7 @@ pub struct TSPropertySignature<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged, rename_all = "camelCase"))] +#[serde(untagged, rename_all = "camelCase")] pub enum TSSignature<'a> { TSIndexSignature(Box<'a, TSIndexSignature<'a>>), TSPropertySignature(Box<'a, TSPropertySignature<'a>>), @@ -702,9 +702,9 @@ pub enum TSSignature<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSIndexSignature<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub parameters: Vec<'a, TSIndexSignatureName<'a>>, pub type_annotation: Box<'a, TSTypeAnnotation<'a>>, @@ -714,9 +714,9 @@ pub struct TSIndexSignature<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSCallSignatureDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub this_param: Option>, pub params: Box<'a, FormalParameters<'a>>, @@ -727,7 +727,7 @@ pub struct TSCallSignatureDeclaration<'a> { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "lowercase"))] +#[serde(rename_all = "lowercase")] pub enum TSMethodSignatureKind { Method, Get, @@ -738,9 +738,9 @@ pub enum TSMethodSignatureKind { #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSMethodSignature<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub key: PropertyKey<'a>, pub computed: bool, @@ -757,9 +757,9 @@ pub struct TSMethodSignature<'a> { #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSConstructSignatureDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub params: Box<'a, FormalParameters<'a>>, pub return_type: Option>>, @@ -770,12 +770,9 @@ pub struct TSConstructSignatureDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize))] -#[cfg_attr( - feature = "serialize", - serde(tag = "type", rename = "Identifier", rename_all = "camelCase") -)] +#[serde(tag = "type", rename = "Identifier", rename_all = "camelCase")] pub struct TSIndexSignatureName<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: Atom<'a>, pub type_annotation: Box<'a, TSTypeAnnotation<'a>>, @@ -784,9 +781,9 @@ pub struct TSIndexSignatureName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSInterfaceHeritage<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, pub type_parameters: Option>>, @@ -795,9 +792,9 @@ pub struct TSInterfaceHeritage<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypePredicate<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub parameter_name: TSTypePredicateName<'a>, pub asserts: bool, @@ -807,7 +804,7 @@ pub struct TSTypePredicate<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged, rename_all = "camelCase"))] +#[serde(untagged, rename_all = "camelCase")] pub enum TSTypePredicateName<'a> { Identifier(Box<'a, IdentifierName<'a>>), This(TSThisType), @@ -820,9 +817,9 @@ pub enum TSTypePredicateName<'a> { )] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSModuleDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub id: TSModuleDeclarationName<'a>, #[scope(enter_before)] @@ -844,7 +841,7 @@ pub struct TSModuleDeclaration<'a> { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "lowercase"))] +#[serde(rename_all = "lowercase")] pub enum TSModuleDeclarationKind { Global, Module, @@ -860,7 +857,7 @@ impl TSModuleDeclarationKind { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum TSModuleDeclarationName<'a> { Identifier(IdentifierName<'a>), StringLiteral(StringLiteral<'a>), @@ -869,7 +866,7 @@ pub enum TSModuleDeclarationName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum TSModuleDeclarationBody<'a> { TSModuleDeclaration(Box<'a, TSModuleDeclaration<'a>>), TSModuleBlock(Box<'a, TSModuleBlock<'a>>), @@ -879,11 +876,11 @@ pub enum TSModuleDeclarationBody<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSModuleBlock<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, - #[cfg_attr(feature = "serialize", serde(skip))] + #[serde(skip)] pub directives: Vec<'a, Directive<'a>>, pub body: Vec<'a, Statement<'a>>, } @@ -891,9 +888,9 @@ pub struct TSModuleBlock<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeLiteral<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub members: Vec<'a, TSSignature<'a>>, } @@ -901,9 +898,9 @@ pub struct TSTypeLiteral<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSInferType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_parameter: Box<'a, TSTypeParameter<'a>>, } @@ -911,9 +908,9 @@ pub struct TSInferType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeQuery<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expr_name: TSTypeQueryExprName<'a>, pub type_parameters: Option>>, @@ -929,7 +926,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum TSTypeQueryExprName<'a> { TSImportType(Box<'a, TSImportType<'a>>) = 2, // `TSTypeName` variants added here by `inherit_variants!` macro @@ -940,9 +937,9 @@ pub enum TSTypeQueryExprName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSImportType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub is_type_of: bool, // `typeof import("foo")` pub parameter: TSType<'a>, @@ -954,9 +951,9 @@ pub struct TSImportType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSImportAttributes<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub elements: Vec<'a, TSImportAttribute<'a>>, } @@ -964,9 +961,9 @@ pub struct TSImportAttributes<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSImportAttribute<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub name: TSImportAttributeName<'a>, pub value: Expression<'a>, @@ -975,7 +972,7 @@ pub struct TSImportAttribute<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged))] +#[serde(untagged)] pub enum TSImportAttributeName<'a> { Identifier(IdentifierName<'a>), StringLiteral(StringLiteral<'a>), @@ -984,9 +981,9 @@ pub enum TSImportAttributeName<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSFunctionType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub this_param: Option>, pub params: Box<'a, FormalParameters<'a>>, @@ -997,9 +994,9 @@ pub struct TSFunctionType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSConstructorType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub r#abstract: bool, pub params: Box<'a, FormalParameters<'a>>, @@ -1011,9 +1008,9 @@ pub struct TSConstructorType<'a> { #[scope] #[derive(Debug)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSMappedType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_parameter: Box<'a, TSTypeParameter<'a>>, pub name_type: Option>, @@ -1026,12 +1023,12 @@ pub struct TSMappedType<'a> { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] +#[serde(rename_all = "camelCase")] pub enum TSMappedTypeModifierOperator { True, - #[cfg_attr(feature = "serialize", serde(rename = "+"))] + #[serde(rename = "+")] Plus, - #[cfg_attr(feature = "serialize", serde(rename = "-"))] + #[serde(rename = "-")] Minus, None, } @@ -1039,9 +1036,9 @@ pub enum TSMappedTypeModifierOperator { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTemplateLiteralType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub quasis: Vec<'a, TemplateElement<'a>>, pub types: Vec<'a, TSType<'a>>, @@ -1050,9 +1047,9 @@ pub struct TSTemplateLiteralType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSAsExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, pub type_annotation: TSType<'a>, @@ -1061,9 +1058,9 @@ pub struct TSAsExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSSatisfiesExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, pub type_annotation: TSType<'a>, @@ -1072,9 +1069,9 @@ pub struct TSSatisfiesExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSTypeAssertion<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, pub type_annotation: TSType<'a>, @@ -1083,9 +1080,9 @@ pub struct TSTypeAssertion<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSImportEqualsDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub id: BindingIdentifier<'a>, pub module_reference: TSModuleReference<'a>, @@ -1102,7 +1099,7 @@ inherit_variants! { #[repr(C, u8)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(untagged, rename_all = "camelCase"))] +#[serde(untagged, rename_all = "camelCase")] pub enum TSModuleReference<'a> { ExternalModuleReference(Box<'a, TSExternalModuleReference<'a>>) = 2, // `TSTypeName` variants added here by `inherit_variants!` macro @@ -1113,9 +1110,9 @@ pub enum TSModuleReference<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSExternalModuleReference<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: StringLiteral<'a>, } @@ -1123,9 +1120,9 @@ pub struct TSExternalModuleReference<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSNonNullExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, } @@ -1133,9 +1130,9 @@ pub struct TSNonNullExpression<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct Decorator<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, } @@ -1146,9 +1143,9 @@ pub struct Decorator<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSExportAssignment<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, } @@ -1159,9 +1156,9 @@ pub struct TSExportAssignment<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSNamespaceExportDeclaration<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub id: IdentifierName<'a>, } @@ -1169,9 +1166,9 @@ pub struct TSNamespaceExportDeclaration<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct TSInstantiationExpression<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub expression: Expression<'a>, pub type_parameters: Box<'a, TSTypeParameterInstantiation<'a>>, @@ -1180,7 +1177,7 @@ pub struct TSInstantiationExpression<'a> { #[ast] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))] +#[serde(rename_all = "camelCase")] pub enum ImportOrExportKind { Value, Type, @@ -1192,9 +1189,9 @@ pub enum ImportOrExportKind { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct JSDocNullableType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_annotation: TSType<'a>, pub postfix: bool, @@ -1204,9 +1201,9 @@ pub struct JSDocNullableType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct JSDocNonNullableType<'a> { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, pub type_annotation: TSType<'a>, pub postfix: bool, @@ -1215,8 +1212,8 @@ pub struct JSDocNonNullableType<'a> { #[ast(visit)] #[derive(Debug, Hash)] #[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] -#[cfg_attr(feature = "serialize", serde(tag = "type", rename_all = "camelCase"))] +#[serde(tag = "type", rename_all = "camelCase")] pub struct JSDocUnknownType { - #[cfg_attr(feature = "serialize", serde(flatten))] + #[serde(flatten)] pub span: Span, } diff --git a/crates/oxc_ast_macros/src/lib.rs b/crates/oxc_ast_macros/src/lib.rs index eaa0c462659e3..f58151719b39c 100644 --- a/crates/oxc_ast_macros/src/lib.rs +++ b/crates/oxc_ast_macros/src/lib.rs @@ -3,10 +3,12 @@ use std::str::FromStr; /// Attach to AST node type (struct or enum), to signal to codegen to create visitor for this type. /// -/// Macro does not generate any code - it's purely a means to communicate information to the codegen. +/// Macro's role is not to generate code - it's purely a means to communicate information to the codegen. /// /// Only thing macro does is add `#[derive(Ast)]` to the item. -/// Deriving `Ast` does nothing, but supports the `#[scope]` attr on struct fields. +/// Deriving `Ast` does nothing, but supports `#[scope]`, `#[visit]`, and other attrs on struct fields. +/// These "helper" attributes are also signals to the codegen, and do nothing in themselves. +/// /// This is a workaround for Rust not supporting helper attributes for `proc_macro_attribute` macros, /// so we need to use a derive macro to get that support. /// @@ -21,8 +23,9 @@ pub fn ast(_args: TokenStream, input: TokenStream) -> TokenStream { /// Dummy derive macro for a non-existent trait `Ast`. /// -/// Does not generate any code, only purpose is to allow using `#[scope]` attr in the type def. -#[proc_macro_derive(Ast, attributes(span, scope, visit, visit_as, visit_args))] +/// Does not generate any code. +/// Only purpose is to allow using `#[scope]`, `#[visit]`, and other attrs in the AST node type defs. +#[proc_macro_derive(Ast, attributes(span, scope, visit, visit_as, visit_args, serde, tsify))] pub fn ast_derive(_item: TokenStream) -> TokenStream { TokenStream::new() }