From d5bd5db1e3356512c76cdec231071c870f710ae2 Mon Sep 17 00:00:00 2001 From: Douglas Campos Date: Thu, 9 Aug 2018 22:56:02 +0000 Subject: [PATCH] extract helper fn --- src/librustc_resolve/lib.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 1dee385b26a6..c33c4ca454bd 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -1964,9 +1964,7 @@ impl<'a, 'crateloader: 'a> Resolver<'a, 'crateloader> { "access to extern crates through prelude is experimental").emit(); } - let crate_id = self.crate_loader.process_path_extern(ident.name, ident.span); - let crate_root = self.get_module(DefId { krate: crate_id, index: CRATE_DEF_INDEX }); - self.populate_module_if_necessary(crate_root); + let crate_root = self.load_extern_prelude_crate_if_needed(ident); let binding = (crate_root, ty::Visibility::Public, ident.span, Mark::root()).to_name_binding(self.arenas); @@ -1994,6 +1992,13 @@ impl<'a, 'crateloader: 'a> Resolver<'a, 'crateloader> { None } + fn load_extern_prelude_crate_if_needed(&mut self, ident: Ident) -> Module<'a> { + let crate_id = self.crate_loader.process_path_extern(ident.name, ident.span); + let crate_root = self.get_module(DefId { krate: crate_id, index: CRATE_DEF_INDEX }); + self.populate_module_if_necessary(&crate_root); + crate_root + } + fn hygienic_lexical_parent(&mut self, module: Module<'a>, span: &mut Span) -> Option> { if !module.expansion.is_descendant_of(span.ctxt().outer()) {