Skip to content

Commit 8d71939

Browse files
committed
resolve: Use module_map and get_module less
1 parent 5d611e5 commit 8d71939

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
@@ -2771,7 +2771,12 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
27712771
}
27722772

27732773
/// Finds a cfg-ed out item inside `module` with the matching name.
2774-
pub(crate) fn find_cfg_stripped(&self, err: &mut Diag<'_>, segment: &Symbol, module: DefId) {
2774+
pub(crate) fn find_cfg_stripped(
2775+
&mut self,
2776+
err: &mut Diag<'_>,
2777+
segment: &Symbol,
2778+
module: DefId,
2779+
) {
27752780
let local_items;
27762781
let symbols = if module.is_local() {
27772782
local_items = self
@@ -2797,7 +2802,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
27972802
}
27982803

27992804
fn comes_from_same_module_for_glob(
2800-
r: &Resolver<'_, '_>,
2805+
r: &mut Resolver<'_, '_>,
28012806
parent_module: DefId,
28022807
module: DefId,
28032808
visited: &mut FxHashMap<DefId, bool>,
@@ -2809,24 +2814,23 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
28092814
return cached;
28102815
}
28112816
visited.insert(parent_module, false);
2812-
let res = r.module_map.get(&parent_module).is_some_and(|m| {
2813-
for importer in m.glob_importers.borrow().iter() {
2814-
if let Some(next_parent_module) = importer.parent_scope.module.opt_def_id()
2817+
let m = r.expect_module(parent_module);
2818+
let mut res = false;
2819+
for importer in m.glob_importers.borrow().iter() {
2820+
if let Some(next_parent_module) = importer.parent_scope.module.opt_def_id() {
2821+
if next_parent_module == module
2822+
|| comes_from_same_module_for_glob(
2823+
r,
2824+
next_parent_module,
2825+
module,
2826+
visited,
2827+
)
28152828
{
2816-
if next_parent_module == module
2817-
|| comes_from_same_module_for_glob(
2818-
r,
2819-
next_parent_module,
2820-
module,
2821-
visited,
2822-
)
2823-
{
2824-
return true;
2825-
}
2829+
res = true;
2830+
break;
28262831
}
28272832
}
2828-
false
2829-
});
2833+
}
28302834
visited.insert(parent_module, res);
28312835
res
28322836
}

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
@@ -926,7 +926,7 @@ impl<'ast, 'ra, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
926926
continue;
927927
};
928928
if let Res::Def(DefKind::Mod, module) = res.expect_full_res()
929-
&& let Some(module) = self.r.get_module(module)
929+
&& let module = self.r.expect_module(module)
930930
&& let item = path[idx + 1].ident
931931
&& let Some(did) = find_doc_alias_name(self.r, module, item.name)
932932
{
@@ -2531,16 +2531,14 @@ impl<'ast, 'ra, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
25312531
// FIXME: this is not totally accurate, but mostly works
25322532
suggestion.candidate != following_seg.ident.name
25332533
}
2534-
Res::Def(DefKind::Mod, def_id) => self.r.get_module(def_id).map_or_else(
2535-
|| false,
2536-
|module| {
2537-
self.r
2538-
.resolutions(module)
2539-
.borrow()
2540-
.iter()
2541-
.any(|(key, _)| key.ident.name == following_seg.ident.name)
2542-
},
2543-
),
2534+
Res::Def(DefKind::Mod, def_id) => {
2535+
let module = self.r.expect_module(def_id);
2536+
self.r
2537+
.resolutions(module)
2538+
.borrow()
2539+
.iter()
2540+
.any(|(key, _)| key.ident.name == following_seg.ident.name)
2541+
}
25442542
_ => true,
25452543
});
25462544
}

0 commit comments

Comments
 (0)