Skip to content

Commit b82b947

Browse files
committed
resolve: Remove Module from ScopeSet::Late
It can be passed in a more usual way through `ParentScope`
1 parent 774d96a commit b82b947

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

compiler/rustc_resolve/src/ident.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
107107
};
108108
let module = match scope_set {
109109
// Start with the specified module.
110-
ScopeSet::Late(_, module, _) | ScopeSet::ModuleAndExternPrelude(_, module) => module,
110+
ScopeSet::ModuleAndExternPrelude(_, module) => module,
111111
// Jump out of trait or enum modules, they do not act as scopes.
112112
_ => parent_scope.module.nearest_item_scope(),
113113
};
@@ -349,11 +349,12 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
349349
return Some(LexicalScopeBinding::Item(binding));
350350
} else if let RibKind::Module(module) = rib.kind {
351351
// Encountered a module item, abandon ribs and look into that module and preludes.
352+
let parent_scope = &ParentScope { module, ..*parent_scope };
352353
return self
353354
.cm()
354355
.resolve_ident_in_scope_set(
355356
orig_ident,
356-
ScopeSet::Late(ns, module, finalize.map(|finalize| finalize.node_id)),
357+
ScopeSet::Late(ns, finalize.map(|finalize| finalize.node_id)),
357358
parent_scope,
358359
finalize,
359360
finalize.is_some(),

compiler/rustc_resolve/src/late/diagnostics.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ use crate::late::{
3838
};
3939
use crate::ty::fast_reject::SimplifiedType;
4040
use crate::{
41-
Module, ModuleKind, ModuleOrUniformRoot, PathResult, PathSource, Resolver, ScopeSet, Segment,
42-
errors, path_names_to_string,
41+
Module, ModuleKind, ModuleOrUniformRoot, ParentScope, PathResult, PathSource, Resolver,
42+
ScopeSet, Segment, errors, path_names_to_string,
4343
};
4444

4545
type Res = def::Res<ast::NodeId>;
@@ -2460,10 +2460,11 @@ impl<'ast, 'ra, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
24602460
self.r.add_module_candidates(module, &mut names, &filter_fn, Some(ctxt));
24612461
} else if let RibKind::Module(module) = rib.kind {
24622462
// Encountered a module item, abandon ribs and look into that module and preludes.
2463+
let parent_scope = &ParentScope { module, ..self.parent_scope };
24632464
self.r.add_scope_set_candidates(
24642465
&mut names,
2465-
ScopeSet::Late(ns, module, None),
2466-
&self.parent_scope,
2466+
ScopeSet::Late(ns, None),
2467+
parent_scope,
24672468
ctxt,
24682469
filter_fn,
24692470
);

compiler/rustc_resolve/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ enum ScopeSet<'ra> {
160160
Macro(MacroKind),
161161
/// All scopes with the given namespace, used for partially performing late resolution.
162162
/// The node id enables lints and is used for reporting them.
163-
Late(Namespace, Module<'ra>, Option<NodeId>),
163+
Late(Namespace, Option<NodeId>),
164164
}
165165

166166
/// Everything you need to know about a name's location to resolve it.

0 commit comments

Comments
 (0)