Skip to content

Commit 2b43fac

Browse files
committed
Remove CrateReader, use CrateLoader instead.
1 parent b5f6d7e commit 2b43fac

File tree

4 files changed

+21
-40
lines changed

4 files changed

+21
-40
lines changed

src/librustc_driver/driver.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,8 @@ pub fn phase_2_configure_and_expand<'a, F>(sess: &Session,
645645
// its contents but the results of name resolution on those contents. Hopefully we'll push
646646
// this back at some point.
647647
let _ignore = sess.dep_graph.in_ignore();
648-
let mut crate_loader = CrateLoader::new(sess, &cstore, &krate, crate_name);
648+
let mut crate_loader = CrateLoader::new(sess, &cstore, crate_name, krate.config.clone());
649+
crate_loader.preprocess(&krate);
649650
let resolver_arenas = Resolver::arenas();
650651
let mut resolver =
651652
Resolver::new(sess, &krate, make_glob_map, &mut crate_loader, &resolver_arenas);

src/librustc_metadata/creader.rs

Lines changed: 14 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,6 @@ use log;
4242

4343
pub struct CrateLoader<'a> {
4444
pub sess: &'a Session,
45-
pub creader: CrateReader<'a>,
46-
cstore: &'a CStore,
47-
}
48-
49-
pub struct CrateReader<'a> {
50-
sess: &'a Session,
5145
cstore: &'a CStore,
5246
next_crate_num: CrateNum,
5347
foreign_item_map: FnvHashMap<String, Vec<ast::NodeId>>,
@@ -159,13 +153,13 @@ pub struct Macros {
159153
pub dylib: Option<PathBuf>,
160154
}
161155

162-
impl<'a> CrateReader<'a> {
156+
impl<'a> CrateLoader<'a> {
163157
pub fn new(sess: &'a Session,
164158
cstore: &'a CStore,
165159
local_crate_name: &str,
166160
local_crate_config: ast::CrateConfig)
167-
-> CrateReader<'a> {
168-
CrateReader {
161+
-> Self {
162+
CrateLoader {
169163
sess: sess,
170164
cstore: cstore,
171165
next_crate_num: cstore.next_crate_num(),
@@ -890,7 +884,7 @@ impl<'a> CrateReader<'a> {
890884
}
891885

892886
impl ExtensionCrate {
893-
fn register(self, creader: &mut CrateReader) {
887+
fn register(self, loader: &mut CrateLoader) {
894888
if !self.should_link {
895889
return
896890
}
@@ -901,31 +895,17 @@ impl ExtensionCrate {
901895
};
902896

903897
// Register crate now to avoid double-reading metadata
904-
creader.register_crate(&None,
905-
&self.ident,
906-
&self.name,
907-
self.span,
908-
library,
909-
true);
898+
loader.register_crate(&None, &self.ident, &self.name, self.span, library, true);
910899
}
911900
}
912901

913902
impl<'a> CrateLoader<'a> {
914-
pub fn new(sess: &'a Session, cstore: &'a CStore, krate: &ast::Crate, crate_name: &str)
915-
-> Self {
916-
let loader = CrateLoader {
917-
sess: sess,
918-
cstore: cstore,
919-
creader: CrateReader::new(sess, cstore, crate_name, krate.config.clone()),
920-
};
921-
903+
pub fn preprocess(&mut self, krate: &ast::Crate) {
922904
for attr in krate.attrs.iter().filter(|m| m.name() == "link_args") {
923905
if let Some(ref linkarg) = attr.value_str() {
924-
loader.cstore.add_used_link_args(&linkarg);
906+
self.cstore.add_used_link_args(&linkarg);
925907
}
926908
}
927-
928-
loader
929909
}
930910

931911
fn process_foreign_mod(&mut self, i: &ast::Item, fm: &ast::ForeignMod) {
@@ -982,7 +962,7 @@ impl<'a> CrateLoader<'a> {
982962
Some(name) => name,
983963
None => continue,
984964
};
985-
let list = self.creader.foreign_item_map.entry(lib_name.to_string())
965+
let list = self.foreign_item_map.entry(lib_name.to_string())
986966
.or_insert(Vec::new());
987967
list.extend(fm.items.iter().map(|it| it.id));
988968
}
@@ -991,8 +971,8 @@ impl<'a> CrateLoader<'a> {
991971

992972
impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
993973
fn postprocess(&mut self, krate: &ast::Crate) {
994-
self.creader.inject_allocator_crate();
995-
self.creader.inject_panic_runtime(krate);
974+
self.inject_allocator_crate();
975+
self.inject_panic_runtime(krate);
996976

997977
if log_enabled!(log::INFO) {
998978
dump_crates(&self.cstore);
@@ -1001,7 +981,7 @@ impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
1001981
for &(ref name, kind) in &self.sess.opts.libs {
1002982
register_native_lib(self.sess, self.cstore, None, name.clone(), kind);
1003983
}
1004-
self.creader.register_statically_included_foreign_items();
984+
self.register_statically_included_foreign_items();
1005985
}
1006986

1007987
fn process_item(&mut self, item: &ast::Item, definitions: &hir_map::Definitions) {
@@ -1024,12 +1004,12 @@ impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
10241004
}
10251005
}
10261006

1027-
if let Some(info) = self.creader.extract_crate_info(item) {
1007+
if let Some(info) = self.extract_crate_info(item) {
10281008
if !info.should_link {
10291009
return;
10301010
}
10311011

1032-
let (cnum, ..) = self.creader.resolve_crate(
1012+
let (cnum, ..) = self.resolve_crate(
10331013
&None, &info.ident, &info.name, None, item.span, PathKind::Crate, true,
10341014
);
10351015

@@ -1038,7 +1018,7 @@ impl<'a> middle::cstore::CrateLoader for CrateLoader<'a> {
10381018

10391019
let extern_crate =
10401020
ExternCrate { def_id: def_id, span: item.span, direct: true, path_len: len };
1041-
self.creader.update_extern_crate(cnum, extern_crate, &mut FnvHashSet());
1021+
self.update_extern_crate(cnum, extern_crate, &mut FnvHashSet());
10421022

10431023
self.cstore.add_extern_mod_stmt_cnum(info.id, cnum);
10441024
}

src/librustc_metadata/macro_import.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ impl<'a> CrateLoader<'a> {
110110
if sel.is_empty() && reexport.is_empty() {
111111
// Make sure we can read macros from `#[no_link]` crates.
112112
if no_link {
113-
self.creader.read_macros(vi);
113+
self.read_macros(vi);
114114
}
115115
return Vec::new();
116116
}
@@ -122,7 +122,7 @@ impl<'a> CrateLoader<'a> {
122122
return Vec::new();
123123
}
124124

125-
let mut macros = self.creader.read_macros(vi);
125+
let mut macros = self.read_macros(vi);
126126
let mut ret = Vec::new();
127127
let mut seen = HashSet::new();
128128

src/librustc_plugin/load.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//! Used by `rustc` when loading a plugin.
1212
1313
use rustc::session::Session;
14-
use rustc_metadata::creader::CrateReader;
14+
use rustc_metadata::creader::CrateLoader;
1515
use rustc_metadata::cstore::CStore;
1616
use registry::Registry;
1717

@@ -33,7 +33,7 @@ pub struct PluginRegistrar {
3333

3434
struct PluginLoader<'a> {
3535
sess: &'a Session,
36-
reader: CrateReader<'a>,
36+
reader: CrateLoader<'a>,
3737
plugins: Vec<PluginRegistrar>,
3838
}
3939

@@ -96,7 +96,7 @@ impl<'a> PluginLoader<'a> {
9696
-> PluginLoader<'a> {
9797
PluginLoader {
9898
sess: sess,
99-
reader: CrateReader::new(sess, cstore, crate_name, crate_config),
99+
reader: CrateLoader::new(sess, cstore, crate_name, crate_config),
100100
plugins: vec![],
101101
}
102102
}

0 commit comments

Comments
 (0)