Store a reference rather than a RefCell in LocalCrateReader.
This commit is contained in:
parent
1939b76903
commit
9ac468b841
5 changed files with 8 additions and 9 deletions
|
@ -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(),
|
||||
|
|
|
@ -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) = {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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) = {
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue