@@ -641,19 +641,20 @@ impl<'a> Parser<'a> {
641
641
#[ inline]
642
642
#[ must_use]
643
643
fn check_keyword ( & mut self , kw : Symbol ) -> bool {
644
- self . expected_token_types . push ( TokenType :: Keyword ( kw) ) ;
645
- self . token . is_keyword ( kw)
644
+ let is_keyword = self . token . is_keyword ( kw) ;
645
+ if !is_keyword {
646
+ self . expected_token_types . push ( TokenType :: Keyword ( kw) ) ;
647
+ }
648
+ is_keyword
646
649
}
647
650
648
651
#[ inline]
649
652
#[ must_use]
650
653
fn check_keyword_case ( & mut self , kw : Symbol , case : Case ) -> bool {
651
654
if self . check_keyword ( kw) {
652
- return true ;
653
- }
654
-
655
+ true
655
656
// Do an ASCII case-insensitive match, because all keywords are ASCII.
656
- if case == Case :: Insensitive
657
+ } else if case == Case :: Insensitive
657
658
&& let Some ( ( ident, IdentIsRaw :: No ) ) = self . token . ident ( )
658
659
&& ident. as_str ( ) . eq_ignore_ascii_case ( kw. as_str ( ) )
659
660
{
@@ -669,12 +670,11 @@ impl<'a> Parser<'a> {
669
670
#[ inline]
670
671
#[ must_use]
671
672
pub fn eat_keyword ( & mut self , kw : Symbol ) -> bool {
672
- if self . check_keyword ( kw) {
673
+ let is_keyword = self . check_keyword ( kw) ;
674
+ if is_keyword {
673
675
self . bump ( ) ;
674
- true
675
- } else {
676
- false
677
676
}
677
+ is_keyword
678
678
}
679
679
680
680
/// Eats a keyword, optionally ignoring the case.
@@ -684,19 +684,17 @@ impl<'a> Parser<'a> {
684
684
#[ must_use]
685
685
fn eat_keyword_case ( & mut self , kw : Symbol , case : Case ) -> bool {
686
686
if self . eat_keyword ( kw) {
687
- return true ;
688
- }
689
-
690
- if case == Case :: Insensitive
687
+ true
688
+ } else if case == Case :: Insensitive
691
689
&& let Some ( ( ident, IdentIsRaw :: No ) ) = self . token . ident ( )
692
690
&& ident. as_str ( ) . to_lowercase ( ) == kw. as_str ( ) . to_lowercase ( )
693
691
{
694
692
self . dcx ( ) . emit_err ( errors:: KwBadCase { span : ident. span , kw : kw. as_str ( ) } ) ;
695
693
self . bump ( ) ;
696
- return true ;
694
+ true
695
+ } else {
696
+ false
697
697
}
698
-
699
- false
700
698
}
701
699
702
700
/// If the next token is the given keyword, eats it and returns `true`.
@@ -705,12 +703,11 @@ impl<'a> Parser<'a> {
705
703
#[ inline]
706
704
#[ must_use]
707
705
pub fn eat_keyword_noexpect ( & mut self , kw : Symbol ) -> bool {
708
- if self . token . is_keyword ( kw) {
706
+ let is_keyword = self . token . is_keyword ( kw) ;
707
+ if is_keyword {
709
708
self . bump ( ) ;
710
- true
711
- } else {
712
- false
713
709
}
710
+ is_keyword
714
711
}
715
712
716
713
/// If the given word is not a keyword, signals an error.
@@ -727,12 +724,10 @@ impl<'a> Parser<'a> {
727
724
728
725
#[ inline]
729
726
fn check_or_expected ( & mut self , ok : bool , typ : TokenType ) -> bool {
730
- if ok {
731
- true
732
- } else {
727
+ if !ok {
733
728
self . expected_token_types . push ( typ) ;
734
- false
735
729
}
730
+ ok
736
731
}
737
732
738
733
fn check_ident ( & mut self ) -> bool {
0 commit comments