diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-09-07 19:52:45 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2019-09-07 19:52:45 +0100 |
commit | 787f1206a975ea82d7af878f2acaea15b08b5d36 (patch) | |
tree | d4e1fc3861ffcbe815e650377600dd926362498b /crates/ra_hir/src/nameres/collector.rs | |
parent | 4a89a7c9026dc3df4466f7b10c666186830d38f6 (diff) | |
parent | bcc9a28734e731d9823bf0d6516176a71f3d4627 (diff) |
Merge #1787
1787: don't cycle when processing macros from prelude in prelude r=matklad a=matklad
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/nameres/collector.rs')
-rw-r--r-- | crates/ra_hir/src/nameres/collector.rs | 6 |
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. |