about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/tools/rust-analyzer/crates/hir-def/src/nameres/path_resolution.rs8
1 files changed, 3 insertions, 5 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 7776cb70682..d621f3a360a 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
@@ -18,9 +18,7 @@ use crate::{
     db::DefDatabase,
     item_scope::{ImportOrExternCrate, BUILTIN_SCOPE},
     item_tree::Fields,
-    nameres::{
-        sub_namespace_match, BlockInfo, BuiltinShadowMode, DefMap, MacroSubNs, ModuleOrigin,
-    },
+    nameres::{sub_namespace_match, BlockInfo, BuiltinShadowMode, DefMap, MacroSubNs},
     path::{ModPath, PathKind},
     per_ns::PerNs,
     visibility::{RawVisibility, Visibility},
@@ -472,7 +470,7 @@ impl DefMap {
         };
 
         let extern_prelude = || {
-            if matches!(self[module].origin, ModuleOrigin::BlockExpr { .. }) {
+            if self.block.is_some() && module == DefMap::ROOT {
                 // Don't resolve extern prelude in pseudo-modules of blocks, because
                 // they might been shadowed by local names.
                 return PerNs::none();
@@ -518,7 +516,7 @@ impl DefMap {
             None => self[Self::ROOT].scope.get(name),
         };
         let from_extern_prelude = || {
-            if matches!(self[module].origin, ModuleOrigin::BlockExpr { .. }) {
+            if self.block.is_some() && module == DefMap::ROOT {
                 // Don't resolve extern prelude in pseudo-module of a block.
                 return PerNs::none();
             }