aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres/collector.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-09-07 19:43:41 +0100
committerAleksey Kladov <[email protected]>2019-09-07 19:47:59 +0100
commitbcc9a28734e731d9823bf0d6516176a71f3d4627 (patch)
treed4e1fc3861ffcbe815e650377600dd926362498b /crates/ra_hir/src/nameres/collector.rs
parent4a89a7c9026dc3df4466f7b10c666186830d38f6 (diff)
don't cycle when processing macros from prelude in prelude
Diffstat (limited to 'crates/ra_hir/src/nameres/collector.rs')
-rw-r--r--crates/ra_hir/src/nameres/collector.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/ra_hir/src/nameres/collector.rs b/crates/ra_hir/src/nameres/collector.rs
index 5af26f953..34b90a666 100644
--- a/crates/ra_hir/src/nameres/collector.rs
+++ b/crates/ra_hir/src/nameres/collector.rs
@@ -525,8 +525,10 @@ where
525 fn collect(&mut self, items: &[raw::RawItem]) { 525 fn collect(&mut self, items: &[raw::RawItem]) {
526 // Prelude module is always considered to be `#[macro_use]`. 526 // Prelude module is always considered to be `#[macro_use]`.
527 if let Some(prelude_module) = self.def_collector.def_map.prelude { 527 if let Some(prelude_module) = self.def_collector.def_map.prelude {
528 tested_by!(prelude_is_macro_use); 528 if prelude_module.krate != self.def_collector.def_map.krate {
529 self.def_collector.import_all_macros_exported(prelude_module); 529 tested_by!(prelude_is_macro_use);
530 self.def_collector.import_all_macros_exported(prelude_module);
531 }
530 } 532 }
531 533
532 // This should be processed eagerly instead of deferred to resolving. 534 // This should be processed eagerly instead of deferred to resolving.