Skip to content

Commit 6df3efb

Browse files
committed
Create untracked state inside create_global_ctxt.
1 parent f53b654 commit 6df3efb

2 files changed

Lines changed: 19 additions & 17 deletions

File tree

compiler/rustc_interface/src/passes.rs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,15 @@ use rustc_codegen_ssa::traits::CodegenBackend;
1111
use rustc_codegen_ssa::{CompiledModules, CrateInfo};
1212
use rustc_data_structures::indexmap::IndexMap;
1313
use rustc_data_structures::steal::Steal;
14-
use rustc_data_structures::sync::{
15-
AppendOnlyIndexVec, DynSend, DynSync, FreezeLock, WorkerLocal, par_fns,
16-
};
14+
use rustc_data_structures::sync::{DynSend, DynSync, WorkerLocal, par_fns};
1715
use rustc_data_structures::thousands;
1816
use rustc_errors::timings::TimingSection;
1917
use rustc_errors::{Diag, DiagCtxtHandle, Diagnostic, Level};
2018
use rustc_expand::base::{ExtCtxt, LintStoreExpand};
2119
use rustc_feature::Features;
2220
use rustc_fs_util::try_canonicalize;
2321
use rustc_hir::attrs::AttributeKind;
24-
use rustc_hir::def_id::{LOCAL_CRATE, StableCrateId, StableCrateIdMap};
25-
use rustc_hir::definitions::Definitions;
22+
use rustc_hir::def_id::{LOCAL_CRATE, StableCrateId};
2623
use rustc_hir::limit::Limit;
2724
use rustc_hir::{Attribute, MaybeOwner, Target, find_attr};
2825
use rustc_incremental::setup_dep_graph;
@@ -38,7 +35,6 @@ use rustc_passes::{abi_test, input_stats, layout_test};
3835
use rustc_resolve::{Resolver, ResolverOutputs};
3936
use rustc_session::Session;
4037
use rustc_session::config::{CrateType, Input, OutFileName, OutputFilenames, OutputType};
41-
use rustc_session::cstore::Untracked;
4238
use rustc_session::output::{filename_for_input, invalid_output_for_target};
4339
use rustc_session::parse::feature_err;
4440
use rustc_session::search_paths::PathKind;
@@ -943,13 +939,7 @@ pub fn create_and_enter_global_ctxt<T, F: for<'tcx> FnOnce(TyCtxt<'tcx>) -> T>(
943939

944940
let dep_graph = setup_dep_graph(sess, crate_name, stable_crate_id);
945941

946-
let cstore =
947-
FreezeLock::new(Box::new(CStore::new(compiler.codegen_backend.metadata_loader())) as _);
948-
let definitions = FreezeLock::new(Definitions::new(stable_crate_id));
949-
950-
let stable_crate_ids = FreezeLock::new(StableCrateIdMap::default());
951-
let untracked =
952-
Untracked { cstore, source_span: AppendOnlyIndexVec::new(), definitions, stable_crate_ids };
942+
let cstore = Box::new(CStore::new(compiler.codegen_backend.metadata_loader())) as _;
953943

954944
// We're constructing the HIR here; we don't care what we will
955945
// read, since we haven't even constructed the *input* to
@@ -990,7 +980,7 @@ pub fn create_and_enter_global_ctxt<T, F: for<'tcx> FnOnce(TyCtxt<'tcx>) -> T>(
990980
stable_crate_id,
991981
&arena,
992982
&hir_arena,
993-
untracked,
983+
cstore,
994984
dep_graph,
995985
rustc_query_impl::make_dep_kind_vtables(&arena),
996986
rustc_query_impl::query_system(

compiler/rustc_middle/src/ty/context.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@ use rustc_data_structures::sharded::{IntoPointer, ShardedHashMap};
2626
use rustc_data_structures::stable_hasher::HashStable;
2727
use rustc_data_structures::steal::Steal;
2828
use rustc_data_structures::sync::{
29-
self, DynSend, DynSync, FreezeReadGuard, Lock, RwLock, WorkerLocal,
29+
self, AppendOnlyIndexVec, DynSend, DynSync, FreezeLock, FreezeReadGuard, Lock, RwLock,
30+
WorkerLocal,
3031
};
3132
use rustc_errors::{Applicability, Diag, DiagCtxtHandle, Diagnostic, MultiSpan};
3233
use rustc_hir::def::DefKind;
33-
use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE, LocalDefId};
34+
use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE, LocalDefId, StableCrateIdMap};
3435
use rustc_hir::definitions::{DefPathData, Definitions, PerParentDisambiguatorState};
3536
use rustc_hir::intravisit::VisitorExt;
3637
use rustc_hir::lang_items::LangItem;
@@ -975,7 +976,7 @@ impl<'tcx> TyCtxt<'tcx> {
975976
stable_crate_id: StableCrateId,
976977
arena: &'tcx WorkerLocal<Arena<'tcx>>,
977978
hir_arena: &'tcx WorkerLocal<hir::Arena<'tcx>>,
978-
untracked: Untracked,
979+
cstore: Box<CrateStoreDyn>,
979980
dep_graph: DepGraph,
980981
dep_kind_vtables: &'tcx [DepKindVTable<'tcx>],
981982
query_system: QuerySystem<'tcx>,
@@ -984,6 +985,17 @@ impl<'tcx> TyCtxt<'tcx> {
984985
jobserver_proxy: Arc<Proxy>,
985986
f: impl FnOnce(TyCtxt<'tcx>) -> T,
986987
) -> T {
988+
let cstore = FreezeLock::new(cstore);
989+
let definitions = FreezeLock::new(Definitions::new(stable_crate_id));
990+
991+
let stable_crate_ids = FreezeLock::new(StableCrateIdMap::default());
992+
let untracked = Untracked {
993+
cstore,
994+
source_span: AppendOnlyIndexVec::new(),
995+
definitions,
996+
stable_crate_ids,
997+
};
998+
987999
let data_layout = s.target.parse_data_layout().unwrap_or_else(|err| {
9881000
s.dcx().emit_fatal(err);
9891001
});

0 commit comments

Comments
 (0)