From 9ac468b841cf01e7b575f4c20d10df8096c31f7a Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Tue, 10 May 2016 15:34:25 +0200 Subject: [PATCH] Store a reference rather than a RefCell in LocalCrateReader. --- src/librustc_driver/driver.rs | 2 +- src/librustc_driver/test.rs | 2 +- src/librustc_metadata/creader.rs | 9 ++++----- src/librustdoc/core.rs | 2 +- src/test/run-make/execution-engine/test.rs | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index e72204e5e22d..8841480f7f64 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -148,7 +148,7 @@ pub fn compile_input(sess: &Session, time(sess.time_passes(), "external crate/lib resolution", - || LocalCrateReader::new(sess, &cstore, defs, &expanded_crate, &id) + || LocalCrateReader::new(sess, &cstore, &defs.borrow(), &expanded_crate, &id) .read_crates(&dep_graph)); time(sess.time_passes(), diff --git a/src/librustc_driver/test.rs b/src/librustc_driver/test.rs index 869bbb723ef4..ed9a092b6ff2 100644 --- a/src/librustc_driver/test.rs +++ b/src/librustc_driver/test.rs @@ -121,7 +121,7 @@ fn test_env(source_string: &str, let dep_graph = DepGraph::new(false); let krate = driver::assign_node_ids(&sess, krate); let defs = &RefCell::new(hir_map::collect_definitions(&krate)); - LocalCrateReader::new(&sess, &cstore, defs, &krate, "test_crate").read_crates(&dep_graph); + LocalCrateReader::new(&sess, &cstore, &defs.borrow(), &krate, "test_crate").read_crates(&dep_graph); let _ignore = dep_graph.in_ignore(); let (_, resolutions, mut hir_forest) = { diff --git a/src/librustc_metadata/creader.rs b/src/librustc_metadata/creader.rs index 190e8552d199..2b02a745bef7 100644 --- a/src/librustc_metadata/creader.rs +++ b/src/librustc_metadata/creader.rs @@ -46,7 +46,7 @@ pub struct LocalCrateReader<'a> { cstore: &'a CStore, creader: CrateReader<'a>, krate: &'a ast::Crate, - defintions: &'a RefCell, + defintions: &'a hir_map::Definitions, } pub struct CrateReader<'a> { @@ -843,7 +843,7 @@ impl<'a> CrateReader<'a> { impl<'a> LocalCrateReader<'a> { pub fn new(sess: &'a Session, cstore: &'a CStore, - defs: &'a RefCell, + defs: &'a hir_map::Definitions, krate: &'a ast::Crate, local_crate_name: &str) -> LocalCrateReader<'a> { @@ -902,9 +902,8 @@ impl<'a> LocalCrateReader<'a> { PathKind::Crate, true); - let defs = self.defintions.borrow(); - let def_id = defs.opt_local_def_id(i.id).unwrap(); - let len = defs.def_path(def_id.index).data.len(); + let def_id = self.defintions.opt_local_def_id(i.id).unwrap(); + let len = self.defintions.def_path(def_id.index).data.len(); self.creader.update_extern_crate(cnum, ExternCrate { diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index e5fc84037ce5..77a780805a69 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -154,7 +154,7 @@ pub fn run_core(search_paths: SearchPaths, let dep_graph = DepGraph::new(false); let defs = &RefCell::new(hir_map::collect_definitions(&krate)); - LocalCrateReader::new(&sess, &cstore, &defs, &krate, &name).read_crates(&dep_graph); + LocalCrateReader::new(&sess, &cstore, &defs.borrow(), &krate, &name).read_crates(&dep_graph); // Lower ast -> hir and resolve. let (analysis, resolutions, mut hir_forest) = { diff --git a/src/test/run-make/execution-engine/test.rs b/src/test/run-make/execution-engine/test.rs index 98412c08df52..f46846c34a5e 100644 --- a/src/test/run-make/execution-engine/test.rs +++ b/src/test/run-make/execution-engine/test.rs @@ -241,7 +241,7 @@ fn compile_program(input: &str, sysroot: PathBuf) let dep_graph = DepGraph::new(sess.opts.build_dep_graph()); let krate = driver::assign_node_ids(&sess, krate); let defs = RefCell::new(ast_map::collect_definitions(&krate)); - LocalCrateReader::new(&sess, &cstore, &defs, &krate, &id).read_crates(&dep_graph); + LocalCrateReader::new(&sess, &cstore, &defs.borrow(), &krate, &id).read_crates(&dep_graph); let (analysis, resolutions, mut hir_forest) = { let defs = &mut *defs.borrow_mut(); driver::lower_and_resolve(&sess, &id, defs, &krate, dep_graph, MakeGlobMap::No)