Rollup merge of #132410 - bjorn3:yet_another_driver_refactor_round, r=cjgillot
Some more refactorings towards removing driver queries Follow up to https://github.com/rust-lang/rust/pull/127184 ## Custom driver breaking change The `after_analysis` callback is changed to accept `TyCtxt` instead of `Queries`. The only safe query in `Queries` to call at this point is `global_ctxt()` which allows you to enter the `TyCtxt` either way. To fix your custom driver, replace the `queries: &'tcx Queries<'tcx>` argument with `tcx: TyCtxt<'tcx>` and remove your `queries.global_ctxt().unwrap().enter(|tcx| { ... })` call and only keep the contents of the closure. ## Custom driver deprecation The `after_crate_root_parsing` callback is now deprecated. Several custom drivers are incorrectly calling `queries.global_ctxt()` from inside of it, which causes some driver code to be skipped. As such I would like to either remove it in the future or if custom drivers still need it, change it to accept an `&rustc_ast::Crate` instead.
This commit is contained in:
commit
af1ca153d4
33 changed files with 223 additions and 191 deletions
|
@ -222,3 +222,9 @@ pub fn query_system<'tcx>(
|
|||
}
|
||||
|
||||
rustc_middle::rustc_query_append! { define_queries! }
|
||||
|
||||
pub fn provide(providers: &mut rustc_middle::util::Providers) {
|
||||
providers.hooks.alloc_self_profile_query_strings =
|
||||
|tcx| alloc_self_profile_query_strings(tcx.tcx);
|
||||
providers.hooks.query_key_hash_verify_all = |tcx| query_key_hash_verify_all(tcx.tcx);
|
||||
}
|
||||
|
|
|
@ -252,6 +252,8 @@ pub fn alloc_self_profile_query_strings(tcx: TyCtxt<'_>) {
|
|||
return;
|
||||
}
|
||||
|
||||
let _prof_timer = tcx.sess.prof.generic_activity("self_profile_alloc_query_strings");
|
||||
|
||||
let mut string_cache = QueryKeyStringCache::new();
|
||||
|
||||
for alloc in super::ALLOC_SELF_PROFILE_QUERY_STRINGS.iter() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue