Replace some bool params with an enum

This commit is contained in:
Maybe Waffle
2022-09-15 20:27:23 +04:00
parent 38b0865248
commit d86f9cd464
7 changed files with 63 additions and 47 deletions

View File

@@ -22,6 +22,7 @@ use rustc_ast::token::{self, Delimiter, Nonterminal, Token, TokenKind};
use rustc_ast::tokenstream::AttributesData;
use rustc_ast::tokenstream::{self, DelimSpan, Spacing};
use rustc_ast::tokenstream::{TokenStream, TokenTree};
use rustc_ast::util::case::Case;
use rustc_ast::AttrId;
use rustc_ast::DUMMY_NODE_ID;
use rustc_ast::{self as ast, AnonConst, AttrStyle, AttrVec, Const, Extern};
@@ -604,12 +605,12 @@ impl<'a> Parser<'a> {
self.token.is_keyword(kw)
}
fn check_keyword_case(&mut self, kw: Symbol, case_insensitive: bool) -> bool {
fn check_keyword_case(&mut self, kw: Symbol, case: Case) -> bool {
if self.check_keyword(kw) {
return true;
}
if case_insensitive
if case == Case::Insensitive
&& let Some((ident, /* is_raw */ false)) = self.token.ident()
&& ident.as_str().to_lowercase() == kw.as_str().to_lowercase() {
true
@@ -633,12 +634,12 @@ impl<'a> Parser<'a> {
/// Eats a keyword, optionally ignoring the case.
/// If the case differs (and is ignored) an error is issued.
/// This is useful for recovery.
fn eat_keyword_case(&mut self, kw: Symbol, case_insensitive: bool) -> bool {
fn eat_keyword_case(&mut self, kw: Symbol, case: Case) -> bool {
if self.eat_keyword(kw) {
return true;
}
if case_insensitive
if case == Case::Insensitive
&& let Some((ident, /* is_raw */ false)) = self.token.ident()
&& ident.as_str().to_lowercase() == kw.as_str().to_lowercase() {
self
@@ -1136,8 +1137,8 @@ impl<'a> Parser<'a> {
}
/// Parses asyncness: `async` or nothing.
fn parse_asyncness(&mut self, case_insensitive: bool) -> Async {
if self.eat_keyword_case(kw::Async, case_insensitive) {
fn parse_asyncness(&mut self, case: Case) -> Async {
if self.eat_keyword_case(kw::Async, case) {
let span = self.prev_token.uninterpolated_span();
Async::Yes { span, closure_id: DUMMY_NODE_ID, return_impl_trait_id: DUMMY_NODE_ID }
} else {
@@ -1146,8 +1147,8 @@ impl<'a> Parser<'a> {
}
/// Parses unsafety: `unsafe` or nothing.
fn parse_unsafety(&mut self, case_insensitive: bool) -> Unsafe {
if self.eat_keyword_case(kw::Unsafe, case_insensitive) {
fn parse_unsafety(&mut self, case: Case) -> Unsafe {
if self.eat_keyword_case(kw::Unsafe, case) {
Unsafe::Yes(self.prev_token.uninterpolated_span())
} else {
Unsafe::No
@@ -1155,10 +1156,10 @@ impl<'a> Parser<'a> {
}
/// Parses constness: `const` or nothing.
fn parse_constness(&mut self, case_insensitive: bool) -> Const {
fn parse_constness(&mut self, case: Case) -> Const {
// Avoid const blocks to be parsed as const items
if self.look_ahead(1, |t| t != &token::OpenDelim(Delimiter::Brace))
&& self.eat_keyword_case(kw::Const, case_insensitive)
&& self.eat_keyword_case(kw::Const, case)
{
Const::Yes(self.prev_token.uninterpolated_span())
} else {
@@ -1413,8 +1414,8 @@ impl<'a> Parser<'a> {
}
/// Parses `extern string_literal?`.
fn parse_extern(&mut self, case_insensitive: bool) -> Extern {
if self.eat_keyword_case(kw::Extern, case_insensitive) {
fn parse_extern(&mut self, case: Case) -> Extern {
if self.eat_keyword_case(kw::Extern, case) {
let mut extern_span = self.prev_token.span;
let abi = self.parse_abi();
if let Some(abi) = abi {