diff --git a/crates/hir_def/src/nameres/collector.rs b/crates/hir_def/src/nameres/collector.rs index 14b26bcf452..15e93f729a0 100644 --- a/crates/hir_def/src/nameres/collector.rs +++ b/crates/hir_def/src/nameres/collector.rs @@ -1743,6 +1743,12 @@ impl ModCollector<'_, '_> { } } Err(candidates) => { + self.push_child_module( + module.name.clone(), + ast_id, + None, + &self.item_tree[module.visibility], + ); self.def_collector.def_map.diagnostics.push( DefDiagnostic::unresolved_module(self.module_id, ast_id, candidates), ); diff --git a/crates/hir_def/src/nameres/tests.rs b/crates/hir_def/src/nameres/tests.rs index 47949328557..80e54760714 100644 --- a/crates/hir_def/src/nameres/tests.rs +++ b/crates/hir_def/src/nameres/tests.rs @@ -375,9 +375,12 @@ pub struct Arc; "#, expect![[r#" crate + alloc: t alloc_crate: t sync: t + crate::alloc + crate::sync Arc: t v "#]], @@ -401,9 +404,12 @@ pub struct Arc; "#, expect![[r#" crate + alloc: t alloc_crate: t sync: t + crate::alloc + crate::sync Arc: t v "#]], diff --git a/crates/hir_def/src/nameres/tests/mod_resolution.rs b/crates/hir_def/src/nameres/tests/mod_resolution.rs index 16a2cd27af3..79a74873b4a 100644 --- a/crates/hir_def/src/nameres/tests/mod_resolution.rs +++ b/crates/hir_def/src/nameres/tests/mod_resolution.rs @@ -526,6 +526,9 @@ pub struct Baz; "#, expect![[r#" crate + foo: t + + crate::foo "#]], ); }