@@ -58,27 +58,30 @@ impl ESTree for BindingPatternKindAndTsFields<'_, '_> {
5858
5959 let mut state = serializer. serialize_struct ( ) ;
6060
61- match & self . kind {
61+ let span = match & self . kind {
6262 BindingPatternKind :: BindingIdentifier ( ident) => {
6363 state. serialize_field ( "type" , & JsonSafeString ( "Identifier" ) ) ;
6464 state. serialize_field ( "start" , & ident. span . start ) ;
6565 state. serialize_field ( "end" , & ident. span . end ) ;
6666 state. serialize_field ( "decorators" , & self . decorators ) ;
6767 state. serialize_field ( "name" , & JsonSafeString ( ident. name . as_str ( ) ) ) ;
68+ ident. span
6869 }
6970 BindingPatternKind :: ObjectPattern ( object) => {
7071 state. serialize_field ( "type" , & JsonSafeString ( "ObjectPattern" ) ) ;
7172 state. serialize_field ( "start" , & object. span . start ) ;
7273 state. serialize_field ( "end" , & object. span . end ) ;
7374 state. serialize_field ( "decorators" , & self . decorators ) ;
7475 state. serialize_field ( "properties" , & Concat2 ( & object. properties , & object. rest ) ) ;
76+ object. span
7577 }
7678 BindingPatternKind :: ArrayPattern ( array) => {
7779 state. serialize_field ( "type" , & JsonSafeString ( "ArrayPattern" ) ) ;
7880 state. serialize_field ( "start" , & array. span . start ) ;
7981 state. serialize_field ( "end" , & array. span . end ) ;
8082 state. serialize_field ( "decorators" , & self . decorators ) ;
8183 state. serialize_field ( "elements" , & Concat2 ( & array. elements , & array. rest ) ) ;
84+ array. span
8285 }
8386 BindingPatternKind :: AssignmentPattern ( assignment) => {
8487 state. serialize_field ( "type" , & JsonSafeString ( "AssignmentPattern" ) ) ;
@@ -87,22 +90,15 @@ impl ESTree for BindingPatternKindAndTsFields<'_, '_> {
8790 state. serialize_field ( "decorators" , & self . decorators ) ;
8891 state. serialize_field ( "left" , & assignment. left ) ;
8992 state. serialize_field ( "right" , & assignment. right ) ;
93+ assignment. span
9094 }
91- }
95+ } ;
9296
9397 state. serialize_field ( "optional" , & self . optional ) ;
9498 state. serialize_field ( "typeAnnotation" , & self . type_annotation ) ;
9599
96100 if ranges {
97- let ( span_start, span_end) = match & self . kind {
98- BindingPatternKind :: BindingIdentifier ( ident) => ( ident. span . start , ident. span . end ) ,
99- BindingPatternKind :: ObjectPattern ( object) => ( object. span . start , object. span . end ) ,
100- BindingPatternKind :: ArrayPattern ( array) => ( array. span . start , array. span . end ) ,
101- BindingPatternKind :: AssignmentPattern ( assignment) => {
102- ( assignment. span . start , assignment. span . end )
103- }
104- } ;
105- state. serialize_field ( "range" , & [ & span_start, & span_end] ) ;
101+ state. serialize_field ( "range" , & [ span. start , span. end ] ) ;
106102 }
107103
108104 state. end ( ) ;
@@ -190,7 +186,7 @@ impl ESTree for FormalParametersRest<'_, '_> {
190186 state. serialize_ts_field ( "typeAnnotation" , & rest. argument . type_annotation ) ;
191187 state. serialize_ts_field ( "value" , & Null ( ( ) ) ) ;
192188 if ranges {
193- state. serialize_field ( "range" , & [ & rest. span . start , & rest. span . end ] ) ;
189+ state. serialize_field ( "range" , & [ rest. span . start , rest. span . end ] ) ;
194190 }
195191 state. end ( ) ;
196192 }
@@ -256,7 +252,7 @@ impl ESTree for FormalParameterConverter<'_, '_> {
256252 state. serialize_field ( "readonly" , & param. readonly ) ;
257253 state. serialize_field ( "static" , & false ) ;
258254 if ranges {
259- state. serialize_field ( "range" , & [ & param. span . start , & param. span . end ] ) ;
255+ state. serialize_field ( "range" , & [ param. span . start , param. span . end ] ) ;
260256 }
261257 state. end ( ) ;
262258 } else {
@@ -459,9 +455,9 @@ pub struct AssignmentTargetPropertyIdentifierInit<'a>(
459455
460456impl ESTree for AssignmentTargetPropertyIdentifierInit < ' _ > {
461457 fn serialize < S : Serializer > ( & self , serializer : S ) {
462- let ranges = serializer. ranges ( ) ;
463-
464458 if let Some ( init) = & self . 0 . init {
459+ let ranges = serializer. ranges ( ) ;
460+
465461 let mut state = serializer. serialize_struct ( ) ;
466462 state. serialize_field ( "type" , & JsonSafeString ( "AssignmentPattern" ) ) ;
467463 state. serialize_field ( "start" , & self . 0 . span . start ) ;
@@ -472,7 +468,7 @@ impl ESTree for AssignmentTargetPropertyIdentifierInit<'_> {
472468 state. serialize_ts_field ( "optional" , & false ) ;
473469 state. serialize_ts_field ( "typeAnnotation" , & Null ( ( ) ) ) ;
474470 if ranges {
475- state. serialize_field ( "range" , & [ & self . 0 . span . start , & self . 0 . span . end ] ) ;
471+ state. serialize_field ( "range" , & [ self . 0 . span . start , self . 0 . span . end ] ) ;
476472 }
477473 state. end ( ) ;
478474 } else {
0 commit comments