diff options
| author | Michael Goulet <michael@errs.io> | 2024-06-20 16:36:35 -0400 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-07-16 12:06:25 -0400 |
| commit | d0a1851ec2cf84bdb41bc4d788b3995a8463c543 (patch) | |
| tree | 6b7333a6eb3800ad80d39cfb57080251d7e5db3d /compiler/rustc_parse/src/parser/nonterminal.rs | |
| parent | a91f7d72f12efcc00ecf71591f066c534d45ddf7 (diff) | |
| download | rust-d0a1851ec2cf84bdb41bc4d788b3995a8463c543.tar.gz rust-d0a1851ec2cf84bdb41bc4d788b3995a8463c543.zip | |
Deny keyword lifetimes pre-expansion
Diffstat (limited to 'compiler/rustc_parse/src/parser/nonterminal.rs')
| -rw-r--r-- | compiler/rustc_parse/src/parser/nonterminal.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/rustc_parse/src/parser/nonterminal.rs b/compiler/rustc_parse/src/parser/nonterminal.rs index 4a78b427832..41e31d76d62 100644 --- a/compiler/rustc_parse/src/parser/nonterminal.rs +++ b/compiler/rustc_parse/src/parser/nonterminal.rs @@ -177,8 +177,11 @@ impl<'a> Parser<'a> { .collect_tokens_no_attrs(|this| this.parse_visibility(FollowedByType::Yes))?)) } NonterminalKind::Lifetime => { - return if self.check_lifetime() { - Ok(ParseNtResult::Lifetime(self.expect_lifetime().ident)) + // We want to keep `'keyword` parsing, just like `keyword` is still + // an ident for nonterminal purposes. + return if let Some(ident) = self.token.lifetime() { + self.bump(); + Ok(ParseNtResult::Lifetime(ident)) } else { Err(self.dcx().create_err(UnexpectedNonterminal::Lifetime { span: self.token.span, |
