Remove untracked_crate field and instead pass it along with the resolver.

This commit is contained in:
Oli Scherer 2022-12-05 16:43:06 +00:00
parent 194b4a2adb
commit 33b6a7790e
5 changed files with 9 additions and 12 deletions

View File

@ -416,8 +416,7 @@ fn compute_hir_hash(
pub fn lower_to_hir(tcx: TyCtxt<'_>, (): ()) -> hir::Crate<'_> { pub fn lower_to_hir(tcx: TyCtxt<'_>, (): ()) -> hir::Crate<'_> {
let sess = tcx.sess; let sess = tcx.sess;
let krate = tcx.untracked_crate.steal(); let (mut resolver, krate) = tcx.resolver_for_lowering(()).steal();
let mut resolver = tcx.resolver_for_lowering(()).steal();
let ast_index = index_crate(&resolver.node_id_to_def_id, &krate); let ast_index = index_crate(&resolver.node_id_to_def_id, &krate);
let mut owners = IndexVec::from_fn_n( let mut owners = IndexVec::from_fn_n(

View File

@ -818,7 +818,6 @@ pub fn create_global_ctxt<'tcx>(
arena, arena,
hir_arena, hir_arena,
untracked, untracked,
krate,
dep_graph, dep_graph,
queries.on_disk_cache.as_ref().map(OnDiskCache::as_dyn), queries.on_disk_cache.as_ref().map(OnDiskCache::as_dyn),
queries.as_dyn(), queries.as_dyn(),
@ -831,7 +830,9 @@ pub fn create_global_ctxt<'tcx>(
let mut qcx = QueryContext { gcx }; let mut qcx = QueryContext { gcx };
qcx.enter(|tcx| { qcx.enter(|tcx| {
let feed = tcx.feed_unit_query(); let feed = tcx.feed_unit_query();
feed.resolver_for_lowering(tcx.arena.alloc(Steal::new(untracked_resolver_for_lowering))); feed.resolver_for_lowering(
tcx.arena.alloc(Steal::new((untracked_resolver_for_lowering, krate))),
);
feed.resolutions(tcx.arena.alloc(untracked_resolutions)); feed.resolutions(tcx.arena.alloc(untracked_resolutions));
let feed = tcx.feed_local_crate(); let feed = tcx.feed_local_crate();
feed.crate_name(crate_name); feed.crate_name(crate_name);

View File

@ -30,7 +30,10 @@ macro_rules! arena_types {
[decode] typeck_results: rustc_middle::ty::TypeckResults<'tcx>, [decode] typeck_results: rustc_middle::ty::TypeckResults<'tcx>,
[decode] borrowck_result: [decode] borrowck_result:
rustc_middle::mir::BorrowCheckResult<'tcx>, rustc_middle::mir::BorrowCheckResult<'tcx>,
[] resolver: rustc_data_structures::steal::Steal<rustc_middle::ty::ResolverAstLowering>, [] resolver: rustc_data_structures::steal::Steal<(
rustc_middle::ty::ResolverAstLowering,
rustc_data_structures::sync::Lrc<rustc_ast::Crate>,
)>,
[] resolutions: rustc_middle::ty::ResolverGlobalCtxt, [] resolutions: rustc_middle::ty::ResolverGlobalCtxt,
[decode] unsafety_check_result: rustc_middle::mir::UnsafetyCheckResult, [decode] unsafety_check_result: rustc_middle::mir::UnsafetyCheckResult,
[decode] code_region: rustc_middle::mir::coverage::CodeRegion, [decode] code_region: rustc_middle::mir::coverage::CodeRegion,

View File

@ -32,7 +32,7 @@ rustc_queries! {
desc { "getting the resolver outputs" } desc { "getting the resolver outputs" }
} }
query resolver_for_lowering(_: ()) -> &'tcx Steal<ty::ResolverAstLowering> { query resolver_for_lowering(_: ()) -> &'tcx Steal<(ty::ResolverAstLowering, Lrc<ast::Crate>)> {
feedable feedable
no_hash no_hash
desc { "getting the resolver for lowering" } desc { "getting the resolver for lowering" }

View File

@ -432,10 +432,6 @@ pub struct GlobalCtxt<'tcx> {
untracked: Untracked, untracked: Untracked,
/// The entire crate as AST. This field serves as the input for the hir_crate query,
/// which lowers it from AST to HIR. It must not be read or used by anything else.
pub untracked_crate: Steal<Lrc<ast::Crate>>,
/// This provides access to the incremental compilation on-disk cache for query results. /// This provides access to the incremental compilation on-disk cache for query results.
/// Do not access this directly. It is only meant to be used by /// Do not access this directly. It is only meant to be used by
/// `DepGraph::try_mark_green()` and the query infrastructure. /// `DepGraph::try_mark_green()` and the query infrastructure.
@ -591,7 +587,6 @@ impl<'tcx> TyCtxt<'tcx> {
arena: &'tcx WorkerLocal<Arena<'tcx>>, arena: &'tcx WorkerLocal<Arena<'tcx>>,
hir_arena: &'tcx WorkerLocal<hir::Arena<'tcx>>, hir_arena: &'tcx WorkerLocal<hir::Arena<'tcx>>,
untracked: Untracked, untracked: Untracked,
krate: Lrc<ast::Crate>,
dep_graph: DepGraph, dep_graph: DepGraph,
on_disk_cache: Option<&'tcx dyn OnDiskCache<'tcx>>, on_disk_cache: Option<&'tcx dyn OnDiskCache<'tcx>>,
queries: &'tcx dyn query::QueryEngine<'tcx>, queries: &'tcx dyn query::QueryEngine<'tcx>,
@ -618,7 +613,6 @@ impl<'tcx> TyCtxt<'tcx> {
lifetimes: common_lifetimes, lifetimes: common_lifetimes,
consts: common_consts, consts: common_consts,
untracked, untracked,
untracked_crate: Steal::new(krate),
on_disk_cache, on_disk_cache,
queries, queries,
query_caches: query::QueryCaches::default(), query_caches: query::QueryCaches::default(),