Unnamed repository; edit this file 'description' to name the repository.
internal: outline child modules with missing backing file
Lukas Wirth 2022-04-02
parent f610e2c · commit 1da2d82
-rw-r--r--crates/hir_def/src/nameres/collector.rs6
-rw-r--r--crates/hir_def/src/nameres/tests.rs6
-rw-r--r--crates/hir_def/src/nameres/tests/mod_resolution.rs3
3 files changed, 15 insertions, 0 deletions
diff --git a/crates/hir_def/src/nameres/collector.rs b/crates/hir_def/src/nameres/collector.rs
index 14b26bcf45..15e93f729a 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 4794932855..80e5476071 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 16a2cd27af..79a74873b4 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
"#]],
);
}