Skip to content

Commit 3ed7e6f

Browse files
committed
resolve: Use module_map and get_module less
1 parent d540290 commit 3ed7e6f

File tree

3 files changed

+31
-30
lines changed

3 files changed

+31
-30
lines changed

compiler/rustc_resolve/src/diagnostics.rs

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2767,7 +2767,12 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
27672767
}
27682768

27692769
/// Finds a cfg-ed out item inside `module` with the matching name.
2770-
pub(crate) fn find_cfg_stripped(&self, err: &mut Diag<'_>, segment: &Symbol, module: DefId) {
2770+
pub(crate) fn find_cfg_stripped(
2771+
&mut self,
2772+
err: &mut Diag<'_>,
2773+
segment: &Symbol,
2774+
module: DefId,
2775+
) {
27712776
let local_items;
27722777
let symbols = if module.is_local() {
27732778
local_items = self
@@ -2793,7 +2798,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
27932798
}
27942799

27952800
fn comes_from_same_module_for_glob(
2796-
r: &Resolver<'_, '_>,
2801+
r: &mut Resolver<'_, '_>,
27972802
parent_module: DefId,
27982803
module: DefId,
27992804
visited: &mut FxHashMap<DefId, bool>,
@@ -2805,24 +2810,23 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
28052810
return cached;
28062811
}
28072812
visited.insert(parent_module, false);
2808-
let res = r.module_map.get(&parent_module).is_some_and(|m| {
2809-
for importer in m.glob_importers.borrow().iter() {
2810-
if let Some(next_parent_module) = importer.parent_scope.module.opt_def_id()
2813+
let m = r.expect_module(parent_module);
2814+
let mut res = false;
2815+
for importer in m.glob_importers.borrow().iter() {
2816+
if let Some(next_parent_module) = importer.parent_scope.module.opt_def_id() {
2817+
if next_parent_module == module
2818+
|| comes_from_same_module_for_glob(
2819+
r,
2820+
next_parent_module,
2821+
module,
2822+
visited,
2823+
)
28112824
{
2812-
if next_parent_module == module
2813-
|| comes_from_same_module_for_glob(
2814-
r,
2815-
next_parent_module,
2816-
module,
2817-
visited,
2818-
)
2819-
{
2820-
return true;
2821-
}
2825+
res = true;
2826+
break;
28222827
}
28232828
}
2824-
false
2825-
});
2829+
}
28262830
visited.insert(parent_module, res);
28272831
res
28282832
}

compiler/rustc_resolve/src/effective_visibilities.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,7 @@ impl<'a, 'ra, 'tcx> EffectiveVisibilitiesVisitor<'a, 'ra, 'tcx> {
113113
/// Update effective visibilities of bindings in the given module,
114114
/// including their whole reexport chains.
115115
fn set_bindings_effective_visibilities(&mut self, module_id: LocalDefId) {
116-
assert!(self.r.module_map.contains_key(&module_id.to_def_id()));
117-
let module = self.r.get_module(module_id.to_def_id()).unwrap();
116+
let module = self.r.expect_module(module_id.to_def_id());
118117
let resolutions = self.r.resolutions(module);
119118

120119
for (_, name_resolution) in resolutions.borrow().iter() {

compiler/rustc_resolve/src/late/diagnostics.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -925,7 +925,7 @@ impl<'ast, 'ra, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
925925
continue;
926926
};
927927
if let Res::Def(DefKind::Mod, module) = res.expect_full_res()
928-
&& let Some(module) = self.r.get_module(module)
928+
&& let module = self.r.expect_module(module)
929929
&& let item = path[idx + 1].ident
930930
&& let Some(did) = find_doc_alias_name(self.r, module, item.name)
931931
{
@@ -2519,16 +2519,14 @@ impl<'ast, 'ra, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
25192519
// FIXME: this is not totally accurate, but mostly works
25202520
suggestion.candidate != following_seg.ident.name
25212521
}
2522-
Res::Def(DefKind::Mod, def_id) => self.r.get_module(def_id).map_or_else(
2523-
|| false,
2524-
|module| {
2525-
self.r
2526-
.resolutions(module)
2527-
.borrow()
2528-
.iter()
2529-
.any(|(key, _)| key.ident.name == following_seg.ident.name)
2530-
},
2531-
),
2522+
Res::Def(DefKind::Mod, def_id) => {
2523+
let module = self.r.expect_module(def_id);
2524+
self.r
2525+
.resolutions(module)
2526+
.borrow()
2527+
.iter()
2528+
.any(|(key, _)| key.ident.name == following_seg.ident.name)
2529+
}
25322530
_ => true,
25332531
});
25342532
}

0 commit comments

Comments
 (0)