@@ -666,19 +666,20 @@ impl<'a> Parser<'a> {
666666 #[ inline]
667667 #[ must_use]
668668 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
671674 }
672675
673676 #[ inline]
674677 #[ must_use]
675678 fn check_keyword_case ( & mut self , kw : Symbol , case : Case ) -> bool {
676679 if self . check_keyword ( kw) {
677- return true ;
678- }
679-
680+ true
680681 // Do an ASCII case-insensitive match, because all keywords are ASCII.
681- if case == Case :: Insensitive
682+ } else if case == Case :: Insensitive
682683 && let Some ( ( ident, IdentIsRaw :: No ) ) = self . token . ident ( )
683684 && ident. as_str ( ) . eq_ignore_ascii_case ( kw. as_str ( ) )
684685 {
@@ -694,12 +695,11 @@ impl<'a> Parser<'a> {
694695 #[ inline]
695696 #[ must_use]
696697 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 {
698700 self . bump ( ) ;
699- true
700- } else {
701- false
702701 }
702+ is_keyword
703703 }
704704
705705 /// Eats a keyword, optionally ignoring the case.
@@ -709,19 +709,17 @@ impl<'a> Parser<'a> {
709709 #[ must_use]
710710 fn eat_keyword_case ( & mut self , kw : Symbol , case : Case ) -> bool {
711711 if self . eat_keyword ( kw) {
712- return true ;
713- }
714-
715- if case == Case :: Insensitive
712+ true
713+ } else if case == Case :: Insensitive
716714 && let Some ( ( ident, IdentIsRaw :: No ) ) = self . token . ident ( )
717715 && ident. as_str ( ) . to_lowercase ( ) == kw. as_str ( ) . to_lowercase ( )
718716 {
719717 self . dcx ( ) . emit_err ( errors:: KwBadCase { span : ident. span , kw : kw. as_str ( ) } ) ;
720718 self . bump ( ) ;
721- return true ;
719+ true
720+ } else {
721+ false
722722 }
723-
724- false
725723 }
726724
727725 /// If the next token is the given keyword, eats it and returns `true`.
@@ -730,12 +728,11 @@ impl<'a> Parser<'a> {
730728 #[ inline]
731729 #[ must_use]
732730 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 {
734733 self . bump ( ) ;
735- true
736- } else {
737- false
738734 }
735+ is_keyword
739736 }
740737
741738 /// If the given word is not a keyword, signals an error.
@@ -752,12 +749,10 @@ impl<'a> Parser<'a> {
752749
753750 #[ inline]
754751 fn check_or_expected ( & mut self , ok : bool , typ : TokenType ) -> bool {
755- if ok {
756- true
757- } else {
752+ if !ok {
758753 self . expected_token_types . push ( typ) ;
759- false
760754 }
755+ ok
761756 }
762757
763758 fn check_ident ( & mut self ) -> bool {
0 commit comments