aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres/crate_def_map/collector.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/nameres/crate_def_map/collector.rs')
-rw-r--r--crates/ra_hir/src/nameres/crate_def_map/collector.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/crates/ra_hir/src/nameres/crate_def_map/collector.rs b/crates/ra_hir/src/nameres/crate_def_map/collector.rs
index 2fbfa9e34..68f74b866 100644
--- a/crates/ra_hir/src/nameres/crate_def_map/collector.rs
+++ b/crates/ra_hir/src/nameres/crate_def_map/collector.rs
@@ -85,6 +85,12 @@ where
85 break; 85 break;
86 } 86 }
87 } 87 }
88
89 let unresolved_imports = std::mem::replace(&mut self.unresolved_imports, Vec::new());
90 // show unresolved imports in completion, etc
91 for (module_id, import, import_data) in unresolved_imports {
92 self.record_resolved_import(module_id, PerNs::none(), import, &import_data)
93 }
88 } 94 }
89 95
90 fn define_macro(&mut self, name: Name, tt: &tt::Subtree, export: bool) { 96 fn define_macro(&mut self, name: Name, tt: &tt::Subtree, export: bool) {
@@ -415,7 +421,14 @@ where
415 modules[res].parent = Some(self.module_id); 421 modules[res].parent = Some(self.module_id);
416 modules[res].declaration = Some(declaration); 422 modules[res].declaration = Some(declaration);
417 modules[res].definition = definition; 423 modules[res].definition = definition;
418 modules[self.module_id].children.insert(name, res); 424 modules[self.module_id].children.insert(name.clone(), res);
425 let resolution = Resolution {
426 def: PerNs::types(
427 Module { krate: self.def_collector.def_map.krate, module_id: res }.into(),
428 ),
429 import: None,
430 };
431 self.def_collector.update(self.module_id, None, &[(name, resolution)]);
419 res 432 res
420 } 433 }
421 434