File tree Expand file tree Collapse file tree 1 file changed +15
-9
lines changed Expand file tree Collapse file tree 1 file changed +15
-9
lines changed Original file line number Diff line number Diff line change @@ -187,15 +187,21 @@ fn derive_for_enum(
187
187
let span = pair. as_span( ) ;
188
188
let mut inner = pair. clone( ) . into_inner( ) ;
189
189
let inner = & mut inner;
190
- let this = #construct_variant;
191
- if inner. clone( ) . next( ) . is_some( ) {
192
- #extraneous
193
- Err ( :: from_pest:: ConversionError :: Extraneous {
194
- current_node: stringify!( #variant_name) ,
195
- } ) ?;
190
+ let mut clone = inner. clone( ) ;
191
+ let pair = clone. next( ) . ok_or( :: from_pest:: ConversionError :: NoMatch ) ?;
192
+ if pair. as_rule( ) == #rule_enum:: #variant_name {
193
+ let this = #construct_variant;
194
+ if inner. clone( ) . next( ) . is_some( ) {
195
+ #extraneous
196
+ Err ( :: from_pest:: ConversionError :: Extraneous {
197
+ current_node: stringify!( #variant_name) ,
198
+ } ) ?;
199
+ }
200
+ Ok ( this)
201
+ } else {
202
+ Err ( e)
196
203
}
197
- Ok ( this)
198
- } )
204
+ } )
199
205
} )
200
206
. collect :: < Result < _ > > ( ) ?;
201
207
@@ -204,7 +210,7 @@ fn derive_for_enum(
204
210
let pair = clone. next( ) . ok_or( :: from_pest:: ConversionError :: NoMatch ) ?;
205
211
if pair. as_rule( ) == #rule_enum:: #rule_variant {
206
212
let this = Err ( :: from_pest:: ConversionError :: NoMatch )
207
- #( . or_else( |_ : :: from_pest:: ConversionError <:: from_pest:: Void >| {
213
+ #( . or_else( |e : :: from_pest:: ConversionError <:: from_pest:: Void >| {
208
214
#convert_variants
209
215
} ) ) * ?;
210
216
* pest = clone;
You can’t perform that action at this time.
0 commit comments