diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-09-20 16:45:58 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2019-09-20 16:45:58 +0100 |
commit | 0492b18ed47115c630cf3490fcdf904155f6e496 (patch) | |
tree | 534255fd111da9af89ebe19a8f6df886783155b1 /crates/ra_hir/src/nameres/collector.rs | |
parent | 24ac228c395681e600b0a7034bd332458af9ce8c (diff) | |
parent | 6a4cf48bffb739c3657443ae308fc0c91215d4d3 (diff) |
Merge #1883
1883: Fix path attribute causing false "unresolved module" error for submodules r=matklad a=gfreezy
fixed #1880
Co-authored-by: gfreezy <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/nameres/collector.rs')
-rw-r--r-- | crates/ra_hir/src/nameres/collector.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/crates/ra_hir/src/nameres/collector.rs b/crates/ra_hir/src/nameres/collector.rs index a6b9b41d0..6b253ac40 100644 --- a/crates/ra_hir/src/nameres/collector.rs +++ b/crates/ra_hir/src/nameres/collector.rs | |||
@@ -1,5 +1,5 @@ | |||
1 | use ra_db::FileId; | 1 | use ra_db::FileId; |
2 | use ra_syntax::ast; | 2 | use ra_syntax::{ast, SmolStr}; |
3 | use rustc_hash::FxHashMap; | 3 | use rustc_hash::FxHashMap; |
4 | use test_utils::tested_by; | 4 | use test_utils::tested_by; |
5 | 5 | ||
@@ -98,6 +98,7 @@ where | |||
98 | self.def_map.modules[module_id].definition = Some(file_id); | 98 | self.def_map.modules[module_id].definition = Some(file_id); |
99 | ModCollector { | 99 | ModCollector { |
100 | def_collector: &mut *self, | 100 | def_collector: &mut *self, |
101 | attr_path: None, | ||
101 | module_id, | 102 | module_id, |
102 | file_id: file_id.into(), | 103 | file_id: file_id.into(), |
103 | raw_items: &raw_items, | 104 | raw_items: &raw_items, |
@@ -474,6 +475,7 @@ where | |||
474 | ModCollector { | 475 | ModCollector { |
475 | def_collector: &mut *self, | 476 | def_collector: &mut *self, |
476 | file_id, | 477 | file_id, |
478 | attr_path: None, | ||
477 | module_id, | 479 | module_id, |
478 | raw_items: &raw_items, | 480 | raw_items: &raw_items, |
479 | parent_module: None, | 481 | parent_module: None, |
@@ -497,6 +499,7 @@ struct ModCollector<'a, D> { | |||
497 | def_collector: D, | 499 | def_collector: D, |
498 | module_id: CrateModuleId, | 500 | module_id: CrateModuleId, |
499 | file_id: HirFileId, | 501 | file_id: HirFileId, |
502 | attr_path: Option<&'a SmolStr>, | ||
500 | raw_items: &'a raw::RawItems, | 503 | raw_items: &'a raw::RawItems, |
501 | parent_module: Option<ParentModule<'a>>, | 504 | parent_module: Option<ParentModule<'a>>, |
502 | } | 505 | } |
@@ -551,6 +554,7 @@ where | |||
551 | ModCollector { | 554 | ModCollector { |
552 | def_collector: &mut *self.def_collector, | 555 | def_collector: &mut *self.def_collector, |
553 | module_id, | 556 | module_id, |
557 | attr_path: attr_path.as_ref(), | ||
554 | file_id: self.file_id, | 558 | file_id: self.file_id, |
555 | raw_items: self.raw_items, | 559 | raw_items: self.raw_items, |
556 | parent_module: Some(parent_module), | 560 | parent_module: Some(parent_module), |
@@ -567,6 +571,7 @@ where | |||
567 | match resolve_submodule( | 571 | match resolve_submodule( |
568 | self.def_collector.db, | 572 | self.def_collector.db, |
569 | self.file_id, | 573 | self.file_id, |
574 | self.attr_path, | ||
570 | name, | 575 | name, |
571 | is_root, | 576 | is_root, |
572 | attr_path.as_ref(), | 577 | attr_path.as_ref(), |
@@ -578,6 +583,7 @@ where | |||
578 | ModCollector { | 583 | ModCollector { |
579 | def_collector: &mut *self.def_collector, | 584 | def_collector: &mut *self.def_collector, |
580 | module_id, | 585 | module_id, |
586 | attr_path: attr_path.as_ref(), | ||
581 | file_id: file_id.into(), | 587 | file_id: file_id.into(), |
582 | raw_items: &raw_items, | 588 | raw_items: &raw_items, |
583 | parent_module: None, | 589 | parent_module: None, |