Skip to content

Commit 52f1847

Browse files
committed
resolve: Pass parent scope to the function providing import suggestions
1 parent 74e8046 commit 52f1847

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

src/librustc_resolve/diagnostics.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,7 @@ impl<'a> Resolver<'a> {
629629
&mut self,
630630
lookup_ident: Ident,
631631
namespace: Namespace,
632+
_parent_scope: &ParentScope<'a>,
632633
start_module: Module<'a>,
633634
crate_name: Ident,
634635
filter_fn: FilterFn,
@@ -722,6 +723,7 @@ impl<'a> Resolver<'a> {
722723
&mut self,
723724
lookup_ident: Ident,
724725
namespace: Namespace,
726+
parent_scope: &ParentScope<'a>,
725727
filter_fn: FilterFn,
726728
) -> Vec<ImportSuggestion>
727729
where
@@ -730,6 +732,7 @@ impl<'a> Resolver<'a> {
730732
let mut suggestions = self.lookup_import_candidates_from_module(
731733
lookup_ident,
732734
namespace,
735+
parent_scope,
733736
self.graph_root,
734737
Ident::with_dummy_span(kw::Crate),
735738
&filter_fn,
@@ -754,6 +757,7 @@ impl<'a> Resolver<'a> {
754757
suggestions.extend(self.lookup_import_candidates_from_module(
755758
lookup_ident,
756759
namespace,
760+
parent_scope,
757761
crate_root,
758762
ident,
759763
&filter_fn,

src/librustc_resolve/late/diagnostics.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ impl<'a> LateResolutionVisitor<'a, '_, '_> {
212212
let ident = path.last().unwrap().ident;
213213
let candidates = self
214214
.r
215-
.lookup_import_candidates(ident, ns, is_expected)
215+
.lookup_import_candidates(ident, ns, &self.parent_scope, is_expected)
216216
.drain(..)
217217
.filter(|ImportSuggestion { did, .. }| {
218218
match (did, res.and_then(|res| res.opt_def_id())) {
@@ -223,7 +223,8 @@ impl<'a> LateResolutionVisitor<'a, '_, '_> {
223223
.collect::<Vec<_>>();
224224
let crate_def_id = DefId::local(CRATE_DEF_INDEX);
225225
if candidates.is_empty() && is_expected(Res::Def(DefKind::Enum, crate_def_id)) {
226-
let enum_candidates = self.r.lookup_import_candidates(ident, ns, is_enum_variant);
226+
let enum_candidates =
227+
self.r.lookup_import_candidates(ident, ns, &self.parent_scope, is_enum_variant);
227228
let mut enum_candidates = enum_candidates
228229
.iter()
229230
.map(|suggestion| import_candidate_to_enum_paths(&suggestion))

src/librustc_resolve/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2256,7 +2256,8 @@ impl<'a> Resolver<'a> {
22562256
Res::Def(DefKind::Mod, _) => true,
22572257
_ => false,
22582258
};
2259-
let mut candidates = self.lookup_import_candidates(ident, TypeNS, is_mod);
2259+
let mut candidates =
2260+
self.lookup_import_candidates(ident, TypeNS, parent_scope, is_mod);
22602261
candidates.sort_by_cached_key(|c| {
22612262
(c.path.segments.len(), pprust::path_to_string(&c.path))
22622263
});

0 commit comments

Comments
 (0)