about summary refs log tree commit diff
diff options
context:
space:
mode:
authorroife <roifewu@gmail.com>2024-06-06 16:50:40 +0800
committerroife <roifewu@gmail.com>2024-06-06 17:03:40 +0800
commit07fde0779e396d73a51417cbb2201205550fe6fe (patch)
treef5d98cccfa759cdbe47c43c2cd564652e16b1c71
parent6561b71eed0bd25d380c1324640e953d7bfd72ec (diff)
downloadrust-07fde0779e396d73a51417cbb2201205550fe6fe.tar.gz
rust-07fde0779e396d73a51417cbb2201205550fe6fe.zip
test: add regression test for prelude shadowing in block modules
-rw-r--r--src/tools/rust-analyzer/crates/ide/src/goto_definition.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/ide/src/goto_definition.rs b/src/tools/rust-analyzer/crates/ide/src/goto_definition.rs
index 76b80fcefa4..f57cb1cb730 100644
--- a/src/tools/rust-analyzer/crates/ide/src/goto_definition.rs
+++ b/src/tools/rust-analyzer/crates/ide/src/goto_definition.rs
@@ -2289,4 +2289,28 @@ macro_rules! baz {
             "#,
         );
     }
+
+    #[test]
+    fn goto_shadowed_preludes_in_block_module() {
+        check(
+            r#"
+//- /main.rs crate:main edition:2021 deps:core
+pub struct S;
+         //^
+
+fn main() {
+    fn f() -> S$0 {
+        fn inner() {} // forces a block def map
+        return S;
+    }
+}
+//- /core.rs crate:core
+pub mod prelude {
+    pub mod rust_2021 {
+        pub enum S;
+    }
+}
+        "#,
+        );
+    }
 }