@@ -141,16 +141,16 @@ struct MatchToken {
141
141
142
142
struct MatchTokenArm {
143
143
binding : Option < syn:: Ident > ,
144
- lhs : LHS ,
145
- rhs : RHS ,
144
+ lhs : Lhs ,
145
+ rhs : Rhs ,
146
146
}
147
147
148
- enum LHS {
148
+ enum Lhs {
149
149
Tags ( Vec < Tag > ) ,
150
150
Pattern ( syn:: Pat ) ,
151
151
}
152
152
153
- enum RHS {
153
+ enum Rhs {
154
154
Expression ( syn:: Expr ) ,
155
155
Else ,
156
156
}
@@ -188,17 +188,17 @@ impl Parse for Tag {
188
188
}
189
189
}
190
190
191
- impl Parse for LHS {
191
+ impl Parse for Lhs {
192
192
fn parse ( input : ParseStream ) -> Result < Self > {
193
193
if input. peek ( Token ! [ <] ) {
194
194
let mut tags = Vec :: new ( ) ;
195
195
while !input. peek ( Token ! [ =>] ) {
196
196
tags. push ( input. parse ( ) ?) ;
197
197
}
198
- Ok ( LHS :: Tags ( tags) )
198
+ Ok ( Lhs :: Tags ( tags) )
199
199
} else {
200
200
let p = input. call ( syn:: Pat :: parse_single) ?;
201
- Ok ( LHS :: Pattern ( p) )
201
+ Ok ( Lhs :: Pattern ( p) )
202
202
}
203
203
}
204
204
}
@@ -212,7 +212,7 @@ impl Parse for MatchTokenArm {
212
212
} else {
213
213
None
214
214
} ;
215
- let lhs = input. parse :: < LHS > ( ) ?;
215
+ let lhs = input. parse :: < Lhs > ( ) ?;
216
216
input. parse :: < Token ! [ =>] > ( ) ?;
217
217
let rhs = if input. peek ( syn:: token:: Brace ) {
218
218
let block = input. parse :: < syn:: Block > ( ) . unwrap ( ) ;
@@ -222,15 +222,15 @@ impl Parse for MatchTokenArm {
222
222
block,
223
223
} ;
224
224
input. parse :: < Option < Token ! [ , ] > > ( ) ?;
225
- RHS :: Expression ( syn:: Expr :: Block ( block) )
225
+ Rhs :: Expression ( syn:: Expr :: Block ( block) )
226
226
} else if input. peek ( Token ! [ else] ) {
227
227
input. parse :: < Token ! [ else] > ( ) ?;
228
228
input. parse :: < Token ! [ , ] > ( ) ?;
229
- RHS :: Else
229
+ Rhs :: Else
230
230
} else {
231
231
let expr = input. parse :: < syn:: Expr > ( ) . unwrap ( ) ;
232
232
input. parse :: < Option < Token ! [ , ] > > ( ) ?;
233
- RHS :: Expression ( expr)
233
+ Rhs :: Expression ( expr)
234
234
} ;
235
235
236
236
Ok ( MatchTokenArm { binding, lhs, rhs } )
@@ -283,12 +283,12 @@ fn expand_match_token_macro(match_token: MatchToken) -> TokenStream {
283
283
} ;
284
284
285
285
match ( lhs, rhs) {
286
- ( LHS :: Pattern ( _) , RHS :: Else ) => {
286
+ ( Lhs :: Pattern ( _) , Rhs :: Else ) => {
287
287
panic ! ( "'else' may not appear with an ordinary pattern" )
288
288
} ,
289
289
290
290
// ordinary pattern => expression
291
- ( LHS :: Pattern ( pat) , RHS :: Expression ( expr) ) => {
291
+ ( Lhs :: Pattern ( pat) , Rhs :: Expression ( expr) ) => {
292
292
if !wildcards_patterns. is_empty ( ) {
293
293
panic ! (
294
294
"ordinary patterns may not appear after wildcard tags {:?} {:?}" ,
@@ -299,7 +299,7 @@ fn expand_match_token_macro(match_token: MatchToken) -> TokenStream {
299
299
} ,
300
300
301
301
// <tag> <tag> ... => else
302
- ( LHS :: Tags ( tags) , RHS :: Else ) => {
302
+ ( Lhs :: Tags ( tags) , Rhs :: Else ) => {
303
303
for tag in tags {
304
304
if !seen_tags. insert ( tag. clone ( ) ) {
305
305
panic ! ( "duplicate tag" ) ;
@@ -313,7 +313,7 @@ fn expand_match_token_macro(match_token: MatchToken) -> TokenStream {
313
313
314
314
// <_> => expression
315
315
// <tag> <tag> ... => expression
316
- ( LHS :: Tags ( tags) , RHS :: Expression ( expr) ) => {
316
+ ( Lhs :: Tags ( tags) , Rhs :: Expression ( expr) ) => {
317
317
// Is this arm a tag wildcard?
318
318
// `None` if we haven't processed the first tag yet.
319
319
let mut wildcard = None ;
@@ -388,9 +388,9 @@ fn expand_match_token_macro(match_token: MatchToken) -> TokenStream {
388
388
389
389
let ( last_pat, last_expr) = match ( binding, lhs, rhs) {
390
390
( Some ( _) , _, _) => panic ! ( "the last arm cannot have an @-binding" ) ,
391
- ( None , LHS :: Tags ( _) , _) => panic ! ( "the last arm cannot have tag patterns" ) ,
392
- ( None , _, RHS :: Else ) => panic ! ( "the last arm cannot use 'else'" ) ,
393
- ( None , LHS :: Pattern ( p) , RHS :: Expression ( e) ) => ( p, e) ,
391
+ ( None , Lhs :: Tags ( _) , _) => panic ! ( "the last arm cannot have tag patterns" ) ,
392
+ ( None , _, Rhs :: Else ) => panic ! ( "the last arm cannot use 'else'" ) ,
393
+ ( None , Lhs :: Pattern ( p) , Rhs :: Expression ( e) ) => ( p, e) ,
394
394
} ;
395
395
396
396
quote ! {
@@ -418,29 +418,23 @@ fn expand_match_token_macro(match_token: MatchToken) -> TokenStream {
418
418
419
419
impl Fold for MatchTokenParser {
420
420
fn fold_stmt ( & mut self , stmt : syn:: Stmt ) -> syn:: Stmt {
421
- match stmt {
422
- syn:: Stmt :: Item ( syn:: Item :: Macro ( syn:: ItemMacro { ref mac, .. } ) ) => {
423
- if mac. path == parse_quote ! ( match_token) {
424
- return syn:: fold:: fold_stmt (
425
- self ,
426
- syn:: Stmt :: Expr ( expand_match_token ( & mac. tokens ) , None ) ,
427
- ) ;
428
- }
429
- } ,
430
- _ => { } ,
421
+ if let syn:: Stmt :: Item ( syn:: Item :: Macro ( syn:: ItemMacro { ref mac, .. } ) ) = stmt {
422
+ if mac. path == parse_quote ! ( match_token) {
423
+ return syn:: fold:: fold_stmt (
424
+ self ,
425
+ syn:: Stmt :: Expr ( expand_match_token ( & mac. tokens ) , None ) ,
426
+ ) ;
427
+ }
431
428
}
432
429
433
430
syn:: fold:: fold_stmt ( self , stmt)
434
431
}
435
432
436
433
fn fold_expr ( & mut self , expr : syn:: Expr ) -> syn:: Expr {
437
- match expr {
438
- syn:: Expr :: Macro ( syn:: ExprMacro { ref mac, .. } ) => {
439
- if mac. path == parse_quote ! ( match_token) {
440
- return syn:: fold:: fold_expr ( self , expand_match_token ( & mac. tokens ) ) ;
441
- }
442
- } ,
443
- _ => { } ,
434
+ if let syn:: Expr :: Macro ( syn:: ExprMacro { ref mac, .. } ) = expr {
435
+ if mac. path == parse_quote ! ( match_token) {
436
+ return syn:: fold:: fold_expr ( self , expand_match_token ( & mac. tokens ) ) ;
437
+ }
444
438
}
445
439
446
440
syn:: fold:: fold_expr ( self , expr)
0 commit comments