Rollup merge of #121089 - oli-obk:create_def_feed, r=petrochenkov
Remove `feed_local_def_id` best reviewed commit by commit Basically I returned `TyCtxtFeed` from `create_def` and then preserved that in the local caches based on https://github.com/rust-lang/rust/pull/121084 r? ````@petrochenkov````
This commit is contained in:
commit
4de78d2a8d
15 changed files with 181 additions and 86 deletions
|
@ -280,7 +280,7 @@ fn configure_and_expand(
|
|||
|
||||
fn early_lint_checks(tcx: TyCtxt<'_>, (): ()) {
|
||||
let sess = tcx.sess;
|
||||
let (resolver, krate) = &*tcx.resolver_for_lowering(()).borrow();
|
||||
let (resolver, krate) = &*tcx.resolver_for_lowering().borrow();
|
||||
let mut lint_buffer = resolver.lint_buffer.steal();
|
||||
|
||||
if sess.opts.unstable_opts.input_stats {
|
||||
|
@ -531,10 +531,10 @@ fn write_out_deps(tcx: TyCtxt<'_>, outputs: &OutputFilenames, out_filenames: &[P
|
|||
}
|
||||
}
|
||||
|
||||
fn resolver_for_lowering<'tcx>(
|
||||
fn resolver_for_lowering_raw<'tcx>(
|
||||
tcx: TyCtxt<'tcx>,
|
||||
(): (),
|
||||
) -> &'tcx Steal<(ty::ResolverAstLowering, Lrc<ast::Crate>)> {
|
||||
) -> (&'tcx Steal<(ty::ResolverAstLowering, Lrc<ast::Crate>)>, &'tcx ty::ResolverGlobalCtxt) {
|
||||
let arenas = Resolver::arenas();
|
||||
let _ = tcx.registered_tools(()); // Uses `crate_for_resolver`.
|
||||
let (krate, pre_configured_attrs) = tcx.crate_for_resolver(()).steal();
|
||||
|
@ -549,16 +549,15 @@ fn resolver_for_lowering<'tcx>(
|
|||
ast_lowering: untracked_resolver_for_lowering,
|
||||
} = resolver.into_outputs();
|
||||
|
||||
let feed = tcx.feed_unit_query();
|
||||
feed.resolutions(tcx.arena.alloc(untracked_resolutions));
|
||||
tcx.arena.alloc(Steal::new((untracked_resolver_for_lowering, Lrc::new(krate))))
|
||||
let resolutions = tcx.arena.alloc(untracked_resolutions);
|
||||
(tcx.arena.alloc(Steal::new((untracked_resolver_for_lowering, Lrc::new(krate)))), resolutions)
|
||||
}
|
||||
|
||||
pub(crate) fn write_dep_info(tcx: TyCtxt<'_>) {
|
||||
// Make sure name resolution and macro expansion is run for
|
||||
// the side-effect of providing a complete set of all
|
||||
// accessed files and env vars.
|
||||
let _ = tcx.resolver_for_lowering(());
|
||||
let _ = tcx.resolver_for_lowering();
|
||||
|
||||
let sess = tcx.sess;
|
||||
let _timer = sess.timer("write_dep_info");
|
||||
|
@ -607,7 +606,10 @@ pub static DEFAULT_QUERY_PROVIDERS: LazyLock<Providers> = LazyLock::new(|| {
|
|||
let providers = &mut Providers::default();
|
||||
providers.analysis = analysis;
|
||||
providers.hir_crate = rustc_ast_lowering::lower_to_hir;
|
||||
providers.resolver_for_lowering = resolver_for_lowering;
|
||||
providers.resolver_for_lowering_raw = resolver_for_lowering_raw;
|
||||
providers.stripped_cfg_items =
|
||||
|tcx, _| tcx.arena.alloc_from_iter(tcx.resolutions(()).stripped_cfg_items.steal());
|
||||
providers.resolutions = |tcx, ()| tcx.resolver_for_lowering_raw(()).1;
|
||||
providers.early_lint_checks = early_lint_checks;
|
||||
proc_macro_decls::provide(providers);
|
||||
rustc_const_eval::provide(providers);
|
||||
|
|
|
@ -8,8 +8,7 @@ use rustc_codegen_ssa::CodegenResults;
|
|||
use rustc_data_structures::steal::Steal;
|
||||
use rustc_data_structures::svh::Svh;
|
||||
use rustc_data_structures::sync::{AppendOnlyIndexVec, FreezeLock, OnceLock, WorkerLocal};
|
||||
use rustc_hir::def::DefKind;
|
||||
use rustc_hir::def_id::{StableCrateId, CRATE_DEF_ID, LOCAL_CRATE};
|
||||
use rustc_hir::def_id::{StableCrateId, LOCAL_CRATE};
|
||||
use rustc_hir::definitions::Definitions;
|
||||
use rustc_incremental::setup_dep_graph;
|
||||
use rustc_metadata::creader::CStore;
|
||||
|
@ -144,10 +143,8 @@ impl<'tcx> Queries<'tcx> {
|
|||
stable_crate_id,
|
||||
)) as _);
|
||||
let definitions = FreezeLock::new(Definitions::new(stable_crate_id));
|
||||
let source_span = AppendOnlyIndexVec::new();
|
||||
let _id = source_span.push(krate.spans.inner_span);
|
||||
debug_assert_eq!(_id, CRATE_DEF_ID);
|
||||
let untracked = Untracked { cstore, source_span, definitions };
|
||||
let untracked =
|
||||
Untracked { cstore, source_span: AppendOnlyIndexVec::new(), definitions };
|
||||
|
||||
let qcx = passes::create_global_ctxt(
|
||||
self.compiler,
|
||||
|
@ -172,9 +169,6 @@ impl<'tcx> Queries<'tcx> {
|
|||
)));
|
||||
feed.crate_for_resolver(tcx.arena.alloc(Steal::new((krate, pre_configured_attrs))));
|
||||
feed.output_filenames(Arc::new(outputs));
|
||||
|
||||
let feed = tcx.feed_local_def_id(CRATE_DEF_ID);
|
||||
feed.def_kind(DefKind::Mod);
|
||||
});
|
||||
Ok(qcx)
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue