Skip to content

Commit b3094b3

Browse files
committed
fix(ast/estree): add optional field to AssignmentTargetProperty in TS-ESTree AST (#10412)
Add `optional` field to `AssignmentTargetPropertyIdentifier` and `AssignmentTargetPropertyProperty` in TS-ESTree AST. This doesn't pass any more tests because those test cases all also include mismatches on `ArrayPattern` or `ObjectPattern`, but it does reduce the size of mismatch diffs.
1 parent a7fd30f commit b3094b3

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

crates/oxc_ast/src/ast/js.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -952,8 +952,8 @@ pub enum AssignmentTargetProperty<'a> {
952952
#[generate_derive(CloneIn, Dummy, TakeIn, GetSpan, GetSpanMut, ContentEq, ESTree)]
953953
#[estree(
954954
rename = "Property",
955-
add_fields(method = False, shorthand = True, computed = False, kind = Init),
956-
field_order(span, method, shorthand, computed, binding, init, kind),
955+
add_fields(method = False, shorthand = True, computed = False, kind = Init, optional = TsFalse),
956+
field_order(span, method, shorthand, computed, binding, init, kind, optional),
957957
)]
958958
pub struct AssignmentTargetPropertyIdentifier<'a> {
959959
pub span: Span,
@@ -971,8 +971,8 @@ pub struct AssignmentTargetPropertyIdentifier<'a> {
971971
#[generate_derive(CloneIn, Dummy, TakeIn, GetSpan, GetSpanMut, ContentEq, ESTree)]
972972
#[estree(
973973
rename = "Property",
974-
add_fields(method = False, shorthand = False, kind = Init),
975-
field_order(span, method, shorthand, computed, name, binding, kind),
974+
add_fields(method = False, shorthand = False, kind = Init, optional = TsFalse),
975+
field_order(span, method, shorthand, computed, name, binding, kind, optional),
976976
)]
977977
pub struct AssignmentTargetPropertyProperty<'a> {
978978
pub span: Span,

crates/oxc_ast/src/generated/derive_estree.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,7 @@ impl ESTree for AssignmentTargetPropertyIdentifier<'_> {
719719
&crate::serialize::AssignmentTargetPropertyIdentifierValue(self),
720720
);
721721
state.serialize_field("kind", &crate::serialize::Init(self));
722+
state.serialize_ts_field("optional", &crate::serialize::TsFalse(self));
722723
state.end();
723724
}
724725
}
@@ -735,6 +736,7 @@ impl ESTree for AssignmentTargetPropertyProperty<'_> {
735736
state.serialize_field("key", &self.name);
736737
state.serialize_field("value", &self.binding);
737738
state.serialize_field("kind", &crate::serialize::Init(self));
739+
state.serialize_ts_field("optional", &crate::serialize::TsFalse(self));
738740
state.end();
739741
}
740742
}

napi/parser/deserialize-ts.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,7 @@ function deserializeAssignmentTargetPropertyIdentifier(pos) {
406406
key,
407407
value,
408408
kind: 'init',
409+
optional: false,
409410
};
410411
}
411412

@@ -420,6 +421,7 @@ function deserializeAssignmentTargetPropertyProperty(pos) {
420421
key: deserializePropertyKey(pos + 8),
421422
value: deserializeAssignmentTargetMaybeDefault(pos + 24),
422423
kind: 'init',
424+
optional: false,
423425
};
424426
}
425427

npm/oxc-types/types.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ export interface AssignmentTargetPropertyIdentifier extends Span {
288288
key: IdentifierReference;
289289
value: IdentifierReference | AssignmentTargetWithDefault;
290290
kind: 'init';
291+
optional?: false;
291292
}
292293

293294
export interface AssignmentTargetPropertyProperty extends Span {
@@ -298,6 +299,7 @@ export interface AssignmentTargetPropertyProperty extends Span {
298299
key: PropertyKey;
299300
value: AssignmentTargetMaybeDefault;
300301
kind: 'init';
302+
optional?: false;
301303
}
302304

303305
export interface SequenceExpression extends Span {

0 commit comments

Comments
 (0)