diff options
| author | Michael Goulet <michael@errs.io> | 2024-01-22 02:29:21 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-08-26 18:30:15 -0400 |
| commit | c61f85b6dd47343abe6383ea2eb71f0b3a7d0e2b (patch) | |
| tree | 1a0c10f605a002b63fb577d0270300ede670a01c /compiler/rustc_parse/src/parser/nonterminal.rs | |
| parent | 22572d0994593197593e2a1b7b18d720a9a349a7 (diff) | |
| download | rust-c61f85b6dd47343abe6383ea2eb71f0b3a7d0e2b.tar.gz rust-c61f85b6dd47343abe6383ea2eb71f0b3a7d0e2b.zip | |
Don't make pattern nonterminals match statement nonterminals
Diffstat (limited to 'compiler/rustc_parse/src/parser/nonterminal.rs')
| -rw-r--r-- | compiler/rustc_parse/src/parser/nonterminal.rs | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/compiler/rustc_parse/src/parser/nonterminal.rs b/compiler/rustc_parse/src/parser/nonterminal.rs index 999f6f0eeb0..e66d0df012b 100644 --- a/compiler/rustc_parse/src/parser/nonterminal.rs +++ b/compiler/rustc_parse/src/parser/nonterminal.rs @@ -86,25 +86,7 @@ impl<'a> Parser<'a> { token::Interpolated(nt) => may_be_ident(nt), _ => false, }, - NonterminalKind::Pat(pat_kind) => match &token.kind { - // box, ref, mut, and other identifiers (can stricten) - token::Ident(..) | token::NtIdent(..) | - token::OpenDelim(Delimiter::Parenthesis) | // tuple pattern - token::OpenDelim(Delimiter::Bracket) | // slice pattern - token::BinOp(token::And) | // reference - token::BinOp(token::Minus) | // negative literal - token::AndAnd | // double reference - token::Literal(_) | // literal - token::DotDot | // range pattern (future compat) - token::DotDotDot | // range pattern (future compat) - token::PathSep | // path - token::Lt | // path (UFCS constant) - token::BinOp(token::Shl) => true, // path (double UFCS) - // leading vert `|` or-pattern - token::BinOp(token::Or) => matches!(pat_kind, PatWithOr), - token::Interpolated(nt) => may_be_ident(nt), - _ => false, - }, + NonterminalKind::Pat(pat_kind) => token.can_begin_pattern(pat_kind), NonterminalKind::Lifetime => match &token.kind { token::Lifetime(_) | token::NtLifetime(..) => true, _ => false, |
