@@ -666,19 +666,20 @@ impl<'a> Parser<'a> {
666
666
#[ inline]
667
667
#[ must_use]
668
668
fn check_keyword ( & mut self , kw : Symbol ) -> bool {
669
- self . expected_token_types . push ( TokenType :: Keyword ( kw) ) ;
670
- self . token . is_keyword ( kw)
669
+ let is_keyword = self . token . is_keyword ( kw) ;
670
+ if !is_keyword {
671
+ self . expected_token_types . push ( TokenType :: Keyword ( kw) ) ;
672
+ }
673
+ is_keyword
671
674
}
672
675
673
676
#[ inline]
674
677
#[ must_use]
675
678
fn check_keyword_case ( & mut self , kw : Symbol , case : Case ) -> bool {
676
679
if self . check_keyword ( kw) {
677
- return true ;
678
- }
679
-
680
+ true
680
681
// Do an ASCII case-insensitive match, because all keywords are ASCII.
681
- if case == Case :: Insensitive
682
+ } else if case == Case :: Insensitive
682
683
&& let Some ( ( ident, IdentIsRaw :: No ) ) = self . token . ident ( )
683
684
&& ident. as_str ( ) . eq_ignore_ascii_case ( kw. as_str ( ) )
684
685
{
@@ -694,12 +695,11 @@ impl<'a> Parser<'a> {
694
695
#[ inline]
695
696
#[ must_use]
696
697
pub fn eat_keyword ( & mut self , kw : Symbol ) -> bool {
697
- if self . check_keyword ( kw) {
698
+ let is_keyword = self . check_keyword ( kw) ;
699
+ if is_keyword {
698
700
self . bump ( ) ;
699
- true
700
- } else {
701
- false
702
701
}
702
+ is_keyword
703
703
}
704
704
705
705
/// Eats a keyword, optionally ignoring the case.
@@ -709,19 +709,17 @@ impl<'a> Parser<'a> {
709
709
#[ must_use]
710
710
fn eat_keyword_case ( & mut self , kw : Symbol , case : Case ) -> bool {
711
711
if self . eat_keyword ( kw) {
712
- return true ;
713
- }
714
-
715
- if case == Case :: Insensitive
712
+ true
713
+ } else if case == Case :: Insensitive
716
714
&& let Some ( ( ident, IdentIsRaw :: No ) ) = self . token . ident ( )
717
715
&& ident. as_str ( ) . to_lowercase ( ) == kw. as_str ( ) . to_lowercase ( )
718
716
{
719
717
self . dcx ( ) . emit_err ( errors:: KwBadCase { span : ident. span , kw : kw. as_str ( ) } ) ;
720
718
self . bump ( ) ;
721
- return true ;
719
+ true
720
+ } else {
721
+ false
722
722
}
723
-
724
- false
725
723
}
726
724
727
725
/// If the next token is the given keyword, eats it and returns `true`.
@@ -730,12 +728,11 @@ impl<'a> Parser<'a> {
730
728
#[ inline]
731
729
#[ must_use]
732
730
pub fn eat_keyword_noexpect ( & mut self , kw : Symbol ) -> bool {
733
- if self . token . is_keyword ( kw) {
731
+ let is_keyword = self . token . is_keyword ( kw) ;
732
+ if is_keyword {
734
733
self . bump ( ) ;
735
- true
736
- } else {
737
- false
738
734
}
735
+ is_keyword
739
736
}
740
737
741
738
/// If the given word is not a keyword, signals an error.
@@ -752,12 +749,10 @@ impl<'a> Parser<'a> {
752
749
753
750
#[ inline]
754
751
fn check_or_expected ( & mut self , ok : bool , typ : TokenType ) -> bool {
755
- if ok {
756
- true
757
- } else {
752
+ if !ok {
758
753
self . expected_token_types . push ( typ) ;
759
- false
760
754
}
755
+ ok
761
756
}
762
757
763
758
fn check_ident ( & mut self ) -> bool {
0 commit comments