Don't duplicate the extern providers once for each crate
This commit is contained in:
parent
3aedcf06b7
commit
cd7a011f37
3 changed files with 14 additions and 23 deletions
|
@ -15,7 +15,6 @@ use rustc_expand::base::ExtCtxt;
|
|||
use rustc_hir::def_id::{CrateNum, LOCAL_CRATE};
|
||||
use rustc_hir::definitions::Definitions;
|
||||
use rustc_hir::Crate;
|
||||
use rustc_index::vec::IndexVec;
|
||||
use rustc_lint::LintStore;
|
||||
use rustc_middle::arena::Arena;
|
||||
use rustc_middle::dep_graph::DepGraph;
|
||||
|
@ -788,13 +787,7 @@ pub fn create_global_ctxt<'tcx>(
|
|||
callback(sess, &mut local_providers, &mut extern_providers);
|
||||
}
|
||||
|
||||
let queries = {
|
||||
let crates = resolver_outputs.cstore.crates_untracked();
|
||||
let max_cnum = crates.iter().map(|c| c.as_usize()).max().unwrap_or(0);
|
||||
let mut providers = IndexVec::from_elem_n(extern_providers, max_cnum + 1);
|
||||
providers[LOCAL_CRATE] = local_providers;
|
||||
queries.get_or_init(|| TcxQueries::new(providers, extern_providers))
|
||||
};
|
||||
let queries = queries.get_or_init(|| TcxQueries::new(local_providers, extern_providers));
|
||||
|
||||
let gcx = sess.time("setup_global_ctxt", || {
|
||||
global_ctxt.get_or_init(|| {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue