@@ -409,7 +409,7 @@ impl Token {
409
409
crate fn expect_lit ( & self ) -> Lit {
410
410
match self . kind {
411
411
Literal ( lit) => lit,
412
- _=> panic ! ( "`expect_lit` called on non-literal" ) ,
412
+ _ => panic ! ( "`expect_lit` called on non-literal" ) ,
413
413
}
414
414
}
415
415
@@ -457,6 +457,7 @@ impl Token {
457
457
pub fn is_ident ( & self ) -> bool {
458
458
self . ident ( ) . is_some ( )
459
459
}
460
+
460
461
/// Returns `true` if the token is a lifetime.
461
462
crate fn is_lifetime ( & self ) -> bool {
462
463
self . lifetime ( ) . is_some ( )
@@ -508,45 +509,38 @@ impl Token {
508
509
509
510
/// Returns `true` if the token is a given keyword, `kw`.
510
511
pub fn is_keyword ( & self , kw : Symbol ) -> bool {
511
- self . ident ( ) . map ( | ( id , is_raw ) | id. name == kw && !is_raw ) . unwrap_or ( false )
512
+ self . is_non_raw_ident_where ( |id | id. name == kw)
512
513
}
513
514
514
515
crate fn is_path_segment_keyword ( & self ) -> bool {
515
- match self . ident ( ) {
516
- Some ( ( id, false ) ) => id. is_path_segment_keyword ( ) ,
517
- _ => false ,
518
- }
516
+ self . is_non_raw_ident_where ( ast:: Ident :: is_path_segment_keyword)
519
517
}
520
518
521
519
// Returns true for reserved identifiers used internally for elided lifetimes,
522
520
// unnamed method parameters, crate root module, error recovery etc.
523
521
crate fn is_special_ident ( & self ) -> bool {
524
- match self . ident ( ) {
525
- Some ( ( id, false ) ) => id. is_special ( ) ,
526
- _ => false ,
527
- }
522
+ self . is_non_raw_ident_where ( ast:: Ident :: is_special)
528
523
}
529
524
530
525
/// Returns `true` if the token is a keyword used in the language.
531
526
crate fn is_used_keyword ( & self ) -> bool {
532
- match self . ident ( ) {
533
- Some ( ( id, false ) ) => id. is_used_keyword ( ) ,
534
- _ => false ,
535
- }
527
+ self . is_non_raw_ident_where ( ast:: Ident :: is_used_keyword)
536
528
}
537
529
538
530
/// Returns `true` if the token is a keyword reserved for possible future use.
539
531
crate fn is_unused_keyword ( & self ) -> bool {
540
- match self . ident ( ) {
541
- Some ( ( id, false ) ) => id. is_unused_keyword ( ) ,
542
- _ => false ,
543
- }
532
+ self . is_non_raw_ident_where ( ast:: Ident :: is_unused_keyword)
544
533
}
545
534
546
535
/// Returns `true` if the token is either a special identifier or a keyword.
547
536
pub fn is_reserved_ident ( & self ) -> bool {
537
+ self . is_non_raw_ident_where ( ast:: Ident :: is_reserved)
538
+ }
539
+
540
+ /// Returns `true` if the token is a non-raw identifier for which `pred` holds.
541
+ fn is_non_raw_ident_where ( & self , pred : impl FnOnce ( ast:: Ident ) -> bool ) -> bool {
548
542
match self . ident ( ) {
549
- Some ( ( id, false ) ) => id . is_reserved ( ) ,
543
+ Some ( ( id, false ) ) => pred ( id ) ,
550
544
_ => false ,
551
545
}
552
546
}
0 commit comments