1
Fork 0

Store a reference rather than a RefCell in LocalCrateReader.

This commit is contained in:
Ms2ger 2016-05-10 15:34:25 +02:00
parent 1939b76903
commit 9ac468b841
5 changed files with 8 additions and 9 deletions

View file

@ -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(),

View file

@ -121,7 +121,7 @@ fn test_env<F>(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) = {

View file

@ -46,7 +46,7 @@ pub struct LocalCrateReader<'a> {
cstore: &'a CStore,
creader: CrateReader<'a>,
krate: &'a ast::Crate,
defintions: &'a RefCell<hir_map::Definitions>,
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<hir_map::Definitions>,
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 {

View file

@ -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) = {

View file

@ -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)