about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-09-18 04:42:31 +0200
committerGitHub <noreply@github.com>2024-09-18 04:42:31 +0200
commit32c4d4112c19be740192206920f13e9476faad16 (patch)
treec57a7ffd417794285f82c78fa2a6165cc782ae29
parent09b255d3d4fdfce05e5878f1e919d5ca84bc9962 (diff)
parent5de89bb011fdaaf9d300cf63f97a3cf4c86d367a (diff)
downloadrust-32c4d4112c19be740192206920f13e9476faad16.tar.gz
rust-32c4d4112c19be740192206920f13e9476faad16.zip
Rollup merge of #130489 - compiler-errors:raw-lt-lint, r=jieyouxu
Ensure that `keyword_ident` lint doesn't trigger on `'r#kw` lifetime

Fixes #130486
-rw-r--r--compiler/rustc_parse/src/lexer/mod.rs3
-rw-r--r--tests/ui/rust-2024/raw-gen-lt.rs8
2 files changed, 11 insertions, 0 deletions
diff --git a/compiler/rustc_parse/src/lexer/mod.rs b/compiler/rustc_parse/src/lexer/mod.rs
index b7232ff21ca..898c4779b08 100644
--- a/compiler/rustc_parse/src/lexer/mod.rs
+++ b/compiler/rustc_parse/src/lexer/mod.rs
@@ -299,6 +299,9 @@ impl<'psess, 'src> StringReader<'psess, 'src> {
                         lifetime_name += lifetime_name_without_tick;
                         let sym = Symbol::intern(&lifetime_name);
 
+                        // Make sure we mark this as a raw identifier.
+                        self.psess.raw_identifier_spans.push(self.mk_sp(start, self.pos));
+
                         token::Lifetime(sym, IdentIsRaw::Yes)
                     } else {
                         // Otherwise, this should be parsed like `'r`. Warn about it though.
diff --git a/tests/ui/rust-2024/raw-gen-lt.rs b/tests/ui/rust-2024/raw-gen-lt.rs
new file mode 100644
index 00000000000..b2df217d1a1
--- /dev/null
+++ b/tests/ui/rust-2024/raw-gen-lt.rs
@@ -0,0 +1,8 @@
+//@ edition: 2021
+//@ check-pass
+
+#![deny(keyword_idents_2024)]
+
+fn foo<'r#gen>() {}
+
+fn main() {}