Skip to content

Commit 2b3e492

Browse files
committed
avoid looking twice into external prelude crates
1 parent 6b9b750 commit 2b3e492

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/librustc_resolve/lib.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4302,7 +4302,14 @@ impl<'a, 'crateloader: 'a> Resolver<'a, 'crateloader> {
43024302
let mut path_segments = path_segments.clone();
43034303
path_segments.push(ast::PathSegment::from_ident(ident));
43044304

4305-
if !in_module_is_extern || name_binding.vis == ty::Visibility::Public {
4305+
let is_extern_crate_that_also_appears_in_prelude =
4306+
name_binding.is_extern_crate() &&
4307+
self.extern_prelude.contains(&ident.name);
4308+
4309+
let is_visible_to_user =
4310+
!in_module_is_extern || name_binding.vis == ty::Visibility::Public;
4311+
4312+
if !is_extern_crate_that_also_appears_in_prelude || is_visible_to_user {
43064313
// add the module to the lookup
43074314
let is_extern = in_module_is_extern || name_binding.is_extern_crate();
43084315
if seen_modules.insert(module.def_id().unwrap()) {

0 commit comments

Comments
 (0)