diff --git a/crates/oxc_ast/src/ast/jsx.rs b/crates/oxc_ast/src/ast/jsx.rs index 3eaf497aa..9007fa32a 100644 --- a/crates/oxc_ast/src/ast/jsx.rs +++ b/crates/oxc_ast/src/ast/jsx.rs @@ -168,7 +168,7 @@ pub struct JSXClosingFragment { #[ast(visit)] #[derive(Debug)] #[generate_derive(CloneIn, GetSpan, GetSpanMut, ContentEq, ContentHash)] -#[cfg_attr(feature = "serialize", derive(Serialize, Tsify))] +#[cfg_attr(feature = "serialize", derive(Tsify))] #[serde(untagged)] pub enum JSXElementName<'a> { /// `
` diff --git a/crates/oxc_ast/src/serialize.rs b/crates/oxc_ast/src/serialize.rs index 934deaa41..da9c99e67 100644 --- a/crates/oxc_ast/src/serialize.rs +++ b/crates/oxc_ast/src/serialize.rs @@ -8,9 +8,9 @@ use serde::{ use crate::ast::{ ArrayAssignmentTarget, ArrayPattern, AssignmentTargetMaybeDefault, AssignmentTargetProperty, AssignmentTargetRest, BindingPattern, BindingPatternKind, BindingProperty, BindingRestElement, - Directive, Elision, FormalParameter, FormalParameterKind, FormalParameters, - ObjectAssignmentTarget, ObjectPattern, Program, RegExpFlags, Statement, StringLiteral, - TSModuleBlock, TSTypeAnnotation, + Directive, Elision, FormalParameter, FormalParameterKind, FormalParameters, JSXElementName, + JSXIdentifier, ObjectAssignmentTarget, ObjectPattern, Program, RegExpFlags, Statement, + StringLiteral, TSModuleBlock, TSTypeAnnotation, }; pub struct EcmaFormatter; @@ -249,3 +249,19 @@ struct DirectiveAsStatement<'a, 'b> { span: Span, expression: &'b StringLiteral<'a>, } + +impl<'a> Serialize for JSXElementName<'a> { + fn serialize