Skip to content

Commit e42c040

Browse files
committed
fix(ast/estree): add TS fields to LabelIdentifier (#10295)
Add missing fields to `LabelIdentifier` in TS AST. Part of #9705.
1 parent a26fd34 commit e42c040

File tree

5 files changed

+14
-87
lines changed

5 files changed

+14
-87
lines changed

crates/oxc_ast/src/ast/js.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,10 @@ pub struct BindingIdentifier<'a> {
279279
#[ast(visit)]
280280
#[derive(Debug, Clone)]
281281
#[generate_derive(CloneIn, Dummy, TakeIn, GetSpan, GetSpanMut, ContentEq, ESTree)]
282-
#[estree(rename = "Identifier")]
282+
#[estree(
283+
rename = "Identifier",
284+
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull),
285+
)]
283286
pub struct LabelIdentifier<'a> {
284287
pub span: Span,
285288
#[estree(json_safe)]

crates/oxc_ast/src/generated/derive_estree.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ impl ESTree for LabelIdentifier<'_> {
119119
state.serialize_field("start", &self.span.start);
120120
state.serialize_field("end", &self.span.end);
121121
state.serialize_field("name", &JsonSafeString(self.name.as_str()));
122+
state.serialize_ts_field("decorators", &crate::serialize::TsEmptyArray(self));
123+
state.serialize_ts_field("optional", &crate::serialize::TsFalse(self));
124+
state.serialize_ts_field("typeAnnotation", &crate::serialize::TsNull(self));
122125
state.end();
123126
}
124127
}

napi/parser/deserialize-ts.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@ function deserializeLabelIdentifier(pos) {
9292
start: deserializeU32(pos),
9393
end: deserializeU32(pos + 4),
9494
name: deserializeStr(pos + 8),
95+
decorators: [],
96+
optional: false,
97+
typeAnnotation: null,
9598
};
9699
}
97100

npm/oxc-types/types.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ export interface BindingIdentifier extends Span {
7878
export interface LabelIdentifier extends Span {
7979
type: 'Identifier';
8080
name: string;
81+
decorators?: [];
82+
optional?: false;
83+
typeAnnotation?: null;
8184
}
8285

8386
export interface ThisExpression extends Span {

0 commit comments

Comments
 (0)