1
- use oxc_allocator:: { Box , Vec } ;
1
+ use oxc_allocator:: Box ;
2
2
use oxc_span:: Span ;
3
3
use serde:: {
4
4
ser:: { SerializeSeq , Serializer } ,
@@ -80,7 +80,7 @@ struct SerArrayAssignmentTarget<'a, 'b> {
80
80
#[ serde( flatten) ]
81
81
span : Span ,
82
82
elements :
83
- ElementsAndRest < ' a , ' b , Option < AssignmentTargetMaybeDefault < ' a > > , AssignmentTargetRest < ' a > > ,
83
+ ElementsAndRest < ' b , Option < AssignmentTargetMaybeDefault < ' a > > , AssignmentTargetRest < ' a > > ,
84
84
}
85
85
86
86
impl < ' a > Serialize for ObjectAssignmentTarget < ' a > {
@@ -98,7 +98,7 @@ impl<'a> Serialize for ObjectAssignmentTarget<'a> {
98
98
struct SerObjectAssignmentTarget < ' a , ' b > {
99
99
#[ serde( flatten) ]
100
100
span : Span ,
101
- properties : ElementsAndRest < ' a , ' b , AssignmentTargetProperty < ' a > , AssignmentTargetRest < ' a > > ,
101
+ properties : ElementsAndRest < ' b , AssignmentTargetProperty < ' a > , AssignmentTargetRest < ' a > > ,
102
102
}
103
103
104
104
impl < ' a > Serialize for ObjectPattern < ' a > {
@@ -116,7 +116,7 @@ impl<'a> Serialize for ObjectPattern<'a> {
116
116
struct SerObjectPattern < ' a , ' b > {
117
117
#[ serde( flatten) ]
118
118
span : Span ,
119
- properties : ElementsAndRest < ' a , ' b , BindingProperty < ' a > , Box < ' a , BindingRestElement < ' a > > > ,
119
+ properties : ElementsAndRest < ' b , BindingProperty < ' a > , Box < ' a , BindingRestElement < ' a > > > ,
120
120
}
121
121
122
122
impl < ' a > Serialize for ArrayPattern < ' a > {
@@ -134,7 +134,7 @@ impl<'a> Serialize for ArrayPattern<'a> {
134
134
struct SerArrayPattern < ' a , ' b > {
135
135
#[ serde( flatten) ]
136
136
span : Span ,
137
- elements : ElementsAndRest < ' a , ' b , Option < BindingPattern < ' a > > , Box < ' a , BindingRestElement < ' a > > > ,
137
+ elements : ElementsAndRest < ' b , Option < BindingPattern < ' a > > , Box < ' a , BindingRestElement < ' a > > > ,
138
138
}
139
139
140
140
/// Serialize `FormalParameters`, to be estree compatible, with `items` and `rest` fields combined
@@ -162,7 +162,7 @@ struct SerFormalParameters<'a, 'b> {
162
162
#[ serde( flatten) ]
163
163
span : Span ,
164
164
kind : FormalParameterKind ,
165
- items : ElementsAndRest < ' a , ' b , FormalParameter < ' a > , SerFormalParameterRest < ' a , ' b > > ,
165
+ items : ElementsAndRest < ' b , FormalParameter < ' a > , SerFormalParameterRest < ' a , ' b > > ,
166
166
}
167
167
168
168
#[ derive( Serialize ) ]
@@ -175,18 +175,18 @@ struct SerFormalParameterRest<'a, 'b> {
175
175
optional : bool ,
176
176
}
177
177
178
- pub struct ElementsAndRest < ' a , ' b , E , R > {
179
- elements : & ' b Vec < ' a , E > ,
178
+ pub struct ElementsAndRest < ' b , E , R > {
179
+ elements : & ' b [ E ] ,
180
180
rest : & ' b Option < R > ,
181
181
}
182
182
183
- impl < ' a , ' b , E , R > ElementsAndRest < ' a , ' b , E , R > {
184
- pub fn new ( elements : & ' b Vec < ' a , E > , rest : & ' b Option < R > ) -> Self {
183
+ impl < ' b , E , R > ElementsAndRest < ' b , E , R > {
184
+ pub fn new ( elements : & ' b [ E ] , rest : & ' b Option < R > ) -> Self {
185
185
Self { elements, rest }
186
186
}
187
187
}
188
188
189
- impl < ' a , ' b , E : Serialize , R : Serialize > Serialize for ElementsAndRest < ' a , ' b , E , R > {
189
+ impl < ' b , E : Serialize , R : Serialize > Serialize for ElementsAndRest < ' b , E , R > {
190
190
fn serialize < S : Serializer > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error > {
191
191
if let Some ( rest) = self . rest {
192
192
let mut seq = serializer. serialize_seq ( Some ( self . elements . len ( ) + 1 ) ) ?;
0 commit comments