Skip to content

Commit 35e056e

Browse files
committed
Inline macro sub-namespace lookup into sub_namespace_match
1 parent 59dafb3 commit 35e056e

File tree

3 files changed

+12
-17
lines changed

3 files changed

+12
-17
lines changed

src/tools/rust-analyzer/crates/hir-def/src/nameres.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -842,9 +842,14 @@ impl MacroSubNs {
842842
/// We ignore resolutions from one sub-namespace when searching names in scope for another.
843843
///
844844
/// [rustc]: https://github.com/rust-lang/rust/blob/1.69.0/compiler/rustc_resolve/src/macros.rs#L75
845-
fn sub_namespace_match(candidate: Option<MacroSubNs>, expected: Option<MacroSubNs>) -> bool {
846-
match (candidate, expected) {
847-
(Some(candidate), Some(expected)) => candidate == expected,
848-
_ => true,
845+
fn sub_namespace_match(
846+
db: &dyn DefDatabase,
847+
macro_id: MacroId,
848+
expected: Option<MacroSubNs>,
849+
) -> bool {
850+
let candidate = MacroSubNs::from_id(db, macro_id);
851+
match expected {
852+
Some(expected) => candidate == expected,
853+
None => true,
849854
}
850855
}

src/tools/rust-analyzer/crates/hir-def/src/nameres/collector.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2429,12 +2429,7 @@ impl ModCollector<'_, '_> {
24292429
})
24302430
.or_else(|| def_map[self.module_id].scope.get(name).take_macros())
24312431
.or_else(|| Some(def_map.macro_use_prelude.get(name).copied()?.0))
2432-
.filter(|&id| {
2433-
sub_namespace_match(
2434-
Some(MacroSubNs::from_id(db, id)),
2435-
Some(MacroSubNs::Bang),
2436-
)
2437-
})
2432+
.filter(|&id| sub_namespace_match(db, id, Some(MacroSubNs::Bang)))
24382433
.map(|it| self.def_collector.db.macro_def(it))
24392434
})
24402435
},

src/tools/rust-analyzer/crates/hir-def/src/nameres/path_resolution.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,7 @@ impl PerNs {
8585
db: &dyn DefDatabase,
8686
expected: Option<MacroSubNs>,
8787
) -> Self {
88-
self.macros = self.macros.filter(|def| {
89-
let this = MacroSubNs::from_id(db, def.def);
90-
sub_namespace_match(Some(this), expected)
91-
});
88+
self.macros = self.macros.filter(|def| sub_namespace_match(db, def.def, expected));
9289

9390
self
9491
}
@@ -668,9 +665,7 @@ impl DefMap {
668665
// FIXME: shadowing
669666
.and_then(|it| it.last())
670667
.copied()
671-
.filter(|&id| {
672-
sub_namespace_match(Some(MacroSubNs::from_id(db, id)), expected_macro_subns)
673-
})
668+
.filter(|&id| sub_namespace_match(db, id, expected_macro_subns))
674669
.map_or_else(PerNs::none, |m| PerNs::macros(m, Visibility::Public, None));
675670
let from_scope = self[module].scope.get(name).filter_macro(db, expected_macro_subns);
676671
let from_builtin = match self.block {

0 commit comments

Comments
 (0)