Skip to content

Commit a7fd30f

Browse files
committed
fix(ast/estree): add fields to BindingRestElement in TS-ESTree AST (#10411)
1 parent 9d82402 commit a7fd30f

File tree

5 files changed

+17
-65
lines changed

5 files changed

+17
-65
lines changed

crates/oxc_ast/src/ast/js.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1621,7 +1621,10 @@ pub struct ArrayPattern<'a> {
16211621
#[ast(visit)]
16221622
#[derive(Debug)]
16231623
#[generate_derive(CloneIn, Dummy, TakeIn, GetSpan, GetSpanMut, ContentEq, ESTree)]
1624-
#[estree(rename = "RestElement")]
1624+
#[estree(
1625+
rename = "RestElement",
1626+
add_fields(decorators = TsEmptyArray, optional = TsFalse, typeAnnotation = TsNull, value = TsNull),
1627+
)]
16251628
pub struct BindingRestElement<'a> {
16261629
pub span: Span,
16271630
pub argument: BindingPattern<'a>,

crates/oxc_ast/src/generated/derive_estree.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,6 +1325,10 @@ impl ESTree for BindingRestElement<'_> {
13251325
state.serialize_field("start", &self.span.start);
13261326
state.serialize_field("end", &self.span.end);
13271327
state.serialize_field("argument", &self.argument);
1328+
state.serialize_ts_field("decorators", &crate::serialize::TsEmptyArray(self));
1329+
state.serialize_ts_field("optional", &crate::serialize::TsFalse(self));
1330+
state.serialize_ts_field("typeAnnotation", &crate::serialize::TsNull(self));
1331+
state.serialize_ts_field("value", &crate::serialize::TsNull(self));
13281332
state.end();
13291333
}
13301334
}

napi/parser/deserialize-ts.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,10 @@ function deserializeBindingRestElement(pos) {
782782
start: deserializeU32(pos),
783783
end: deserializeU32(pos + 4),
784784
argument: deserializeBindingPattern(pos + 8),
785+
decorators: [],
786+
optional: false,
787+
typeAnnotation: null,
788+
value: null,
785789
};
786790
}
787791

npm/oxc-types/types.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,10 @@ export interface ArrayPattern extends Span {
551551
export interface BindingRestElement extends Span {
552552
type: 'RestElement';
553553
argument: BindingPattern;
554+
decorators?: [];
555+
optional?: false;
556+
typeAnnotation?: null;
557+
value?: null;
554558
}
555559

556560
export interface Function extends Span {

0 commit comments

Comments
 (0)