@@ -641,19 +641,20 @@ impl<'a> Parser<'a> {
641641 #[ inline]
642642 #[ must_use]
643643 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
646649 }
647650
648651 #[ inline]
649652 #[ must_use]
650653 fn check_keyword_case ( & mut self , kw : Symbol , case : Case ) -> bool {
651654 if self . check_keyword ( kw) {
652- return true ;
653- }
654-
655+ true
655656 // Do an ASCII case-insensitive match, because all keywords are ASCII.
656- if case == Case :: Insensitive
657+ } else if case == Case :: Insensitive
657658 && let Some ( ( ident, IdentIsRaw :: No ) ) = self . token . ident ( )
658659 && ident. as_str ( ) . eq_ignore_ascii_case ( kw. as_str ( ) )
659660 {
@@ -669,12 +670,11 @@ impl<'a> Parser<'a> {
669670 #[ inline]
670671 #[ must_use]
671672 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 {
673675 self . bump ( ) ;
674- true
675- } else {
676- false
677676 }
677+ is_keyword
678678 }
679679
680680 /// Eats a keyword, optionally ignoring the case.
@@ -684,19 +684,17 @@ impl<'a> Parser<'a> {
684684 #[ must_use]
685685 fn eat_keyword_case ( & mut self , kw : Symbol , case : Case ) -> bool {
686686 if self . eat_keyword ( kw) {
687- return true ;
688- }
689-
690- if case == Case :: Insensitive
687+ true
688+ } else if case == Case :: Insensitive
691689 && let Some ( ( ident, IdentIsRaw :: No ) ) = self . token . ident ( )
692690 && ident. as_str ( ) . to_lowercase ( ) == kw. as_str ( ) . to_lowercase ( )
693691 {
694692 self . dcx ( ) . emit_err ( errors:: KwBadCase { span : ident. span , kw : kw. as_str ( ) } ) ;
695693 self . bump ( ) ;
696- return true ;
694+ true
695+ } else {
696+ false
697697 }
698-
699- false
700698 }
701699
702700 /// If the next token is the given keyword, eats it and returns `true`.
@@ -705,12 +703,11 @@ impl<'a> Parser<'a> {
705703 #[ inline]
706704 #[ must_use]
707705 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 {
709708 self . bump ( ) ;
710- true
711- } else {
712- false
713709 }
710+ is_keyword
714711 }
715712
716713 /// If the given word is not a keyword, signals an error.
@@ -727,12 +724,10 @@ impl<'a> Parser<'a> {
727724
728725 #[ inline]
729726 fn check_or_expected ( & mut self , ok : bool , typ : TokenType ) -> bool {
730- if ok {
731- true
732- } else {
727+ if !ok {
733728 self . expected_token_types . push ( typ) ;
734- false
735729 }
730+ ok
736731 }
737732
738733 fn check_ident ( & mut self ) -> bool {
0 commit comments