Avoid using feed_unit_query from within queries
This commit is contained in:
parent
c696d4c323
commit
ef00fae46d
9 changed files with 22 additions and 18 deletions
|
@ -125,12 +125,11 @@ rustc_queries! {
|
|||
}
|
||||
|
||||
query resolutions(_: ()) -> &'tcx ty::ResolverGlobalCtxt {
|
||||
feedable
|
||||
no_hash
|
||||
desc { "getting the resolver outputs" }
|
||||
}
|
||||
|
||||
query resolver_for_lowering(_: ()) -> &'tcx Steal<(ty::ResolverAstLowering, Lrc<ast::Crate>)> {
|
||||
query resolver_for_lowering_raw(_: ()) -> (&'tcx Steal<(ty::ResolverAstLowering, Lrc<ast::Crate>)>, &'tcx ty::ResolverGlobalCtxt) {
|
||||
eval_always
|
||||
no_hash
|
||||
desc { "getting the resolver for lowering" }
|
||||
|
|
|
@ -39,7 +39,7 @@ use rustc_data_structures::profiling::SelfProfilerRef;
|
|||
use rustc_data_structures::sharded::{IntoPointer, ShardedHashMap};
|
||||
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
||||
use rustc_data_structures::steal::Steal;
|
||||
use rustc_data_structures::sync::{self, FreezeReadGuard, Lock, WorkerLocal};
|
||||
use rustc_data_structures::sync::{self, FreezeReadGuard, Lock, Lrc, WorkerLocal};
|
||||
#[cfg(parallel_compiler)]
|
||||
use rustc_data_structures::sync::{DynSend, DynSync};
|
||||
use rustc_data_structures::unord::UnordSet;
|
||||
|
@ -553,6 +553,7 @@ impl<'tcx> TyCtxt<'tcx> {
|
|||
/// Can only be fed before queries are run, and is thus exempt from any
|
||||
/// incremental issues. Do not use except for the initial query feeding.
|
||||
pub fn feed_unit_query(self) -> TyCtxtFeed<'tcx, ()> {
|
||||
self.dep_graph.assert_ignored();
|
||||
TyCtxtFeed { tcx: self, key: () }
|
||||
}
|
||||
|
||||
|
@ -2383,6 +2384,10 @@ impl<'tcx> TyCtxt<'tcx> {
|
|||
self.resolutions(()).module_children.get(&def_id).map_or(&[], |v| &v[..])
|
||||
}
|
||||
|
||||
pub fn resolver_for_lowering(self) -> &'tcx Steal<(ty::ResolverAstLowering, Lrc<ast::Crate>)> {
|
||||
self.resolver_for_lowering_raw(()).0
|
||||
}
|
||||
|
||||
/// Given an `impl_id`, return the trait it implements.
|
||||
/// Return `None` if this is an inherent impl.
|
||||
pub fn impl_trait_ref(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue