diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-09-16 02:52:09 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-09-23 06:35:33 +0000 |
| commit | 7b5c59ea6506f9addc3cab6d4af062e7df607aac (patch) | |
| tree | 80889247ec8aee97e5410a6e085eb17309744db0 /src/librustc_resolve | |
| parent | 533c04dbb3e44ecb551b743993bd05e17b68236d (diff) | |
| download | rust-7b5c59ea6506f9addc3cab6d4af062e7df607aac.tar.gz rust-7b5c59ea6506f9addc3cab6d4af062e7df607aac.zip | |
Load extern crates in `resolve`.
Diffstat (limited to 'src/librustc_resolve')
| -rw-r--r-- | src/librustc_resolve/build_reduced_graph.rs | 2 | ||||
| -rw-r--r-- | src/librustc_resolve/lib.rs | 9 | ||||
| -rw-r--r-- | src/librustc_resolve/macros.rs | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index 3075e394869..9202f8c0946 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -79,6 +79,8 @@ impl<'b> Resolver<'b> { /// Constructs the reduced graph for one item. fn build_reduced_graph_for_item(&mut self, item: &Item) { + self.crate_loader.process_item(item, &self.definitions); + let parent = self.current_module; let name = item.ident.name; let sp = item.span; diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 0d75685df55..63ff9de2be2 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -44,7 +44,7 @@ use self::ModulePrefixResult::*; use rustc::hir::map::Definitions; use rustc::hir::{self, PrimTy, TyBool, TyChar, TyFloat, TyInt, TyUint, TyStr}; -use rustc::middle::cstore::MacroLoader; +use rustc::middle::cstore::CrateLoader; use rustc::session::Session; use rustc::lint; use rustc::hir::def::*; @@ -1066,7 +1066,7 @@ pub struct Resolver<'a> { dummy_binding: &'a NameBinding<'a>, new_import_semantics: bool, // true if `#![feature(item_like_imports)]` - macro_loader: &'a mut MacroLoader, + crate_loader: &'a mut CrateLoader, macro_names: FnvHashSet<Name>, // Maps the `Mark` of an expansion to its containing module or block. @@ -1172,7 +1172,7 @@ impl<'a> Resolver<'a> { pub fn new(session: &'a Session, krate: &Crate, make_glob_map: MakeGlobMap, - macro_loader: &'a mut MacroLoader, + crate_loader: &'a mut CrateLoader, arenas: &'a ResolverArenas<'a>) -> Resolver<'a> { let root_def = Def::Mod(DefId::local(CRATE_DEF_INDEX)); @@ -1240,7 +1240,7 @@ impl<'a> Resolver<'a> { }), new_import_semantics: session.features.borrow().item_like_imports, - macro_loader: macro_loader, + crate_loader: crate_loader, macro_names: FnvHashSet(), expansion_data: expansion_data, } @@ -1263,6 +1263,7 @@ impl<'a> Resolver<'a> { check_unused::check_crate(self, krate); self.report_errors(); + self.crate_loader.postprocess(krate); } fn new_module(&self, parent: Module<'a>, kind: ModuleKind, local: bool) -> Module<'a> { diff --git a/src/librustc_resolve/macros.rs b/src/librustc_resolve/macros.rs index c9aa7d6a330..0b2a70bf4a6 100644 --- a/src/librustc_resolve/macros.rs +++ b/src/librustc_resolve/macros.rs @@ -38,7 +38,7 @@ struct ModuleData { impl<'a> base::Resolver for Resolver<'a> { fn load_crate(&mut self, extern_crate: &ast::Item, allows_macros: bool) -> Vec<LoadedMacro> { - self.macro_loader.load_crate(extern_crate, allows_macros) + self.crate_loader.load_macros(extern_crate, allows_macros) } fn next_node_id(&mut self) -> ast::NodeId { |
