about summary refs log tree commit diff
diff options
context:
space:
mode:
authorroife <roifewu@gmail.com>2024-06-06 14:57:57 +0800
committerroife <roifewu@gmail.com>2024-06-06 16:55:09 +0800
commit6561b71eed0bd25d380c1324640e953d7bfd72ec (patch)
treef81fe5a8e9043c4fcb4ffdcb0a4100afa9a71717
parent845754af9c85b51c42686078d55485cad3c3eab1 (diff)
downloadrust-6561b71eed0bd25d380c1324640e953d7bfd72ec.tar.gz
rust-6561b71eed0bd25d380c1324640e953d7bfd72ec.zip
fix: do not resolve prelude within block modules
-rw-r--r--src/tools/rust-analyzer/crates/hir-def/src/nameres/path_resolution.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-def/src/nameres/path_resolution.rs b/src/tools/rust-analyzer/crates/hir-def/src/nameres/path_resolution.rs
index 863ccec8852..e797d19223e 100644
--- a/src/tools/rust-analyzer/crates/hir-def/src/nameres/path_resolution.rs
+++ b/src/tools/rust-analyzer/crates/hir-def/src/nameres/path_resolution.rs
@@ -493,7 +493,12 @@ impl DefMap {
                 )
             })
         };
-        let prelude = || self.resolve_in_prelude(db, name);
+        let prelude = || {
+            if self.block.is_some() && module == DefMap::ROOT {
+                return PerNs::none();
+            }
+            self.resolve_in_prelude(db, name)
+        };
 
         from_legacy_macro
             .or(from_scope_or_builtin)