@@ -293,27 +293,26 @@ where
293
293
/// Numeric lexing. The feast can start!
294
294
fn lex_number ( & mut self ) -> LexResult {
295
295
let start_pos = self . get_pos ( ) ;
296
- if self . window [ 0 ] == Some ( '0' ) {
297
- if matches ! ( self . window [ 1 ] , Some ( 'x' | 'X' ) ) {
296
+ match ( self . window [ 0 ] , self . window [ 1 ] ) {
297
+ ( Some ( '0' ) , Some ( 'x' | 'X' ) ) => {
298
298
// Hex! (0xdeadbeef)
299
299
self . next_char ( ) ;
300
300
self . next_char ( ) ;
301
301
self . lex_number_radix ( start_pos, 16 )
302
- } else if matches ! ( self . window[ 1 ] , Some ( 'o' | 'O' ) ) {
302
+ }
303
+ ( Some ( '0' ) , Some ( 'o' | 'O' ) ) => {
303
304
// Octal style! (0o377)
304
305
self . next_char ( ) ;
305
306
self . next_char ( ) ;
306
307
self . lex_number_radix ( start_pos, 8 )
307
- } else if matches ! ( self . window[ 1 ] , Some ( 'b' | 'B' ) ) {
308
+ }
309
+ ( Some ( '0' ) , Some ( 'b' | 'B' ) ) => {
308
310
// Binary! (0b_1110_0101)
309
311
self . next_char ( ) ;
310
312
self . next_char ( ) ;
311
313
self . lex_number_radix ( start_pos, 2 )
312
- } else {
313
- self . lex_normal_number ( )
314
314
}
315
- } else {
316
- self . lex_normal_number ( )
315
+ _ => self . lex_normal_number ( ) ,
317
316
}
318
317
}
319
318
@@ -439,11 +438,7 @@ where
439
438
fn take_number ( & mut self , radix : u32 ) -> Option < char > {
440
439
let take_char = Lexer :: < T > :: is_digit_of_radix ( self . window [ 0 ] , radix) ;
441
440
442
- if take_char {
443
- Some ( self . next_char ( ) . unwrap ( ) )
444
- } else {
445
- None
446
- }
441
+ take_char. then ( || self . next_char ( ) . unwrap ( ) )
447
442
}
448
443
449
444
/// Test if a digit is of a certain radix.
@@ -459,12 +454,9 @@ where
459
454
460
455
/// Test if we face '[eE][-+]?[0-9]+'
461
456
fn at_exponent ( & self ) -> bool {
462
- match self . window [ 0 ] {
463
- Some ( 'e' | 'E' ) => match self . window [ 1 ] {
464
- Some ( '+' | '-' ) => matches ! ( self . window[ 2 ] , Some ( '0' ..='9' ) ) ,
465
- Some ( '0' ..='9' ) => true ,
466
- _ => false ,
467
- } ,
457
+ match ( self . window [ 0 ] , self . window [ 1 ] ) {
458
+ ( Some ( 'e' | 'E' ) , Some ( '+' | '-' ) ) => matches ! ( self . window[ 2 ] , Some ( '0' ..='9' ) ) ,
459
+ ( Some ( 'e' | 'E' ) , Some ( '0' ..='9' ) ) => true ,
468
460
_ => false ,
469
461
}
470
462
}
@@ -705,13 +697,10 @@ where
705
697
}
706
698
707
699
fn is_identifier_continuation ( & self ) -> bool {
708
- if let Some ( c) = self . window [ 0 ] {
709
- match c {
710
- '_' | '0' ..='9' => true ,
711
- c => is_xid_continue ( c) ,
712
- }
713
- } else {
714
- false
700
+ match self . window [ 0 ] {
701
+ Some ( '_' | '0' ..='9' ) => true ,
702
+ Some ( c) => is_xid_continue ( c) ,
703
+ _ => false ,
715
704
}
716
705
}
717
706
0 commit comments