1use std::io::Write;
2use std::ops::ControlFlow;
3use std::sync::Arc;
4use std::{iter, mem};
5
6use rustc_data_structures::fx::{FxHashMap, FxHashSet};
7use rustc_data_structures::hash_table::HashTable;
8use rustc_data_structures::sync::{DynSend, DynSync};
9use rustc_errors::DiagCtxtHandle;
10use rustc_middle::queries::TaggedQueryKey;
11use rustc_middle::query::{
12 ActiveKeyStatus, Cycle, QueryCache, QueryJob, QueryJobId, QueryKey, QueryLatch,
13 QueryStackFrame, QueryVTable, QueryWaiter,
14};
15use rustc_middle::ty::TyCtxt;
16use rustc_span::{DUMMY_SP, Span};
17use tracing::debug;
18
19use crate::query_vtables::for_each_query_vtable;
20
21#[derive(#[automatically_derived]
impl<'tcx> ::core::fmt::Debug for QueryJobMap<'tcx> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field1_finish(f, "QueryJobMap",
"map", &&self.map)
}
}Debug, #[automatically_derived]
impl<'tcx> ::core::default::Default for QueryJobMap<'tcx> {
#[inline]
fn default() -> QueryJobMap<'tcx> {
QueryJobMap { map: ::core::default::Default::default() }
}
}Default)]
24pub struct QueryJobMap<'tcx> {
25 map: FxHashMap<QueryJobId, QueryJobInfo<'tcx>>,
26}
27
28impl<'tcx> QueryJobMap<'tcx> {
29 pub(crate) fn insert(&mut self, id: QueryJobId, info: QueryJobInfo<'tcx>) {
33 self.map.insert(id, info);
34 }
35
36 fn tagged_key_of(&self, id: QueryJobId) -> TaggedQueryKey<'tcx> {
37 self.map[&id].tagged_key
38 }
39
40 fn span_of(&self, id: QueryJobId) -> Span {
41 self.map[&id].job.span
42 }
43
44 fn parent_of(&self, id: QueryJobId) -> Option<QueryJobId> {
45 self.map[&id].job.parent
46 }
47
48 fn latch_of(&self, id: QueryJobId) -> Option<&QueryLatch<'tcx>> {
49 self.map[&id].job.latch.as_ref()
50 }
51}
52
53#[derive(#[automatically_derived]
impl<'tcx> ::core::fmt::Debug for QueryJobInfo<'tcx> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field2_finish(f, "QueryJobInfo",
"tagged_key", &self.tagged_key, "job", &&self.job)
}
}Debug)]
54pub(crate) struct QueryJobInfo<'tcx> {
55 pub(crate) tagged_key: TaggedQueryKey<'tcx>,
56 pub(crate) job: QueryJob<'tcx>,
57}
58
59#[derive(#[automatically_derived]
impl ::core::clone::Clone for CollectActiveJobsKind {
#[inline]
fn clone(&self) -> CollectActiveJobsKind { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for CollectActiveJobsKind { }Copy)]
60pub enum CollectActiveJobsKind {
61 Full,
64
65 FullNoContention,
68
69 PartialAllowed,
72}
73
74pub fn collect_active_query_jobs<'tcx>(
76 tcx: TyCtxt<'tcx>,
77 collect_kind: CollectActiveJobsKind,
78) -> QueryJobMap<'tcx> {
79 let mut job_map = QueryJobMap::default();
80
81 {
let tcx: rustc_middle::ty::TyCtxt<'_> = tcx;
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.derive_macro_expansion;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.trigger_delayed_bug;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.registered_attr_tools;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.registered_lint_tools;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.early_lint_checks;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.env_var_os;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.resolutions;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.resolver_for_lowering_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.index_ast;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.source_span;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lower_to_hir;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.hir_owner;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.hir_crate_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.hir_module_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.hir_owner_parent_q;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.hir_attr_map;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.const_param_default;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.const_of_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_of_opaque;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_of_opaque_hir_typeck;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_alias_is_checked;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.collect_return_position_impl_trait_in_trait_tys;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.opaque_ty_origin;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.unsizing_params_for_adt;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.analysis;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_expectations;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.generics_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.clauses_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.opaque_types_defined_by;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.nested_bodies_within;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.explicit_item_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.explicit_item_self_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.item_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.item_self_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.item_non_self_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.impl_super_outlives;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.native_libraries;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.shallow_lint_levels_on;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lint_expectations;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.skippable_lints;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.expn_that_defined;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_panic_runtime;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_representability;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_representability_adt_ty;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.params_in_repr;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.thir_body;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_keys;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_const_qualif;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_built;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.thir_abstract_const;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_drops_elaborated_and_const_checked;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_for_ctfe;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_promoted;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.closure_typeinfo;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.closure_saved_names_of_captured_variables;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_coroutine_witnesses;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_coroutine_obligations;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_potentially_region_dependent_goals;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.optimized_mir;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.coverage_attr_on;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.coverage_ids_info;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.promoted_mir;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.erase_and_anonymize_regions_ty;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.wasm_import_module_map;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.trait_explicit_clauses_and_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.explicit_clauses_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.inferred_outlives_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.explicit_super_clauses_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.explicit_implied_clauses_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.explicit_supertraits_containing_assoc_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.const_conditions;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.explicit_implied_const_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_param_clauses;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.trait_def;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.adt_def;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.adt_destructor;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.adt_async_destructor;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.adt_sizedness_constraint;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.adt_dtorck_constraint;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.constness;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.asyncness;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_promotable_const_fn;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.coroutine_by_move_body_def_id;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.coroutine_kind;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.coroutine_for_closure;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.coroutine_hidden_types;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_variances;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.variances_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.inferred_outlives_crate;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.associated_item_def_ids;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.associated_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.associated_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.impl_item_implementor_ids;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.associated_types_for_impl_traits_in_trait_or_impl;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.impl_trait_header;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.impl_is_fully_generic_for_reflection;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.impl_self_is_guaranteed_unsized;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.inherent_impls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.incoherent_impls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_transmutes;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_offloads;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_unsafety;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_tail_calls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.assumed_wf_types;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.assumed_wf_types_for_rpitit;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.fn_sig;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lint_mod;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_unused_traits;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_mod_attrs;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_mod_unstable_api_usage;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_mod_privacy;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_liveness;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.live_symbols_and_ignored_derived_traits;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_mod_deathness;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_type_wf;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.coerce_unsized_info;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.typeck_root;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.used_trait_imports;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.coherent_trait;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_borrowck;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_inherent_impls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_inherent_impls_validity_check;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_inherent_impls_overlap_check;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.orphan_check_impl;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_callgraph_cyclic;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_inliner_callees;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.tag_for_variant;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.eval_to_allocation_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.eval_static_initializer;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.eval_to_const_value_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.eval_to_valtree;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.valtree_to_const_val;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lit_to_const;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_match;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.effective_visibilities;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_private_in_public;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.reachable_set;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.region_scope_tree;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.mir_shims;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.symbol_name;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.def_kind;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.def_span;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.def_ident_span;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.ty_span;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lookup_stability;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lookup_const_stability;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lookup_default_body_stability;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.should_inherit_track_caller;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.inherited_align;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lookup_deprecation_entry;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_doc_hidden;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_doc_notable_trait;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.attrs_for_def;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.codegen_fn_attrs;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.asm_target_features;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.fn_arg_idents;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.rendered_const;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.rendered_precise_capturing_args;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.impl_parent;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_mir_available;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.own_existential_vtable_entries;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.vtable_entries;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.first_method_vtable_slot;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.supertrait_vtable_slot;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.vtable_allocation;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.codegen_select_candidate;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.all_local_trait_impls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.local_trait_impls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.trait_impls_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.specialization_graph_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.dyn_compatibility_violations;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_dyn_compatible;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.param_env;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.param_env_normalized_for_post_analysis;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_copy_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_use_cloned_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_sized_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_freeze_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_unsafe_unpin_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_unpin_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_async_drop_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.needs_drop_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.needs_async_drop_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.has_significant_drop_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.has_structural_eq_impl;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.adt_drop_tys;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.adt_async_drop_tys;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.adt_significant_drop_tys;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.list_significant_drop_tys;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.layout_of;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.fn_abi_of_fn_ptr;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.fn_abi_of_instance_no_deduced_attrs;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.fn_abi_of_instance_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.dylib_dependency_formats;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.dependency_formats;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_compiler_builtins;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.has_global_allocator;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.has_alloc_error_handler;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.has_panic_handler;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_profiler_runtime;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.has_ffi_unwind_calls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.required_panic_strategy;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.panic_in_drop_strategy;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_no_builtins;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.symbol_mangling_version;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.extern_crate;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.specialization_enabled_in;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.specializes;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.defaultness;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.default_field;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_well_formed;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.enforce_impl_non_lifetime_params_are_constrained;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.reachable_non_generics;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_reachable_non_generic;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_unreachable_local_definition;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.upstream_monomorphizations;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.upstream_monomorphizations_for;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.upstream_drop_glue_for;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.upstream_async_drop_glue_for;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.foreign_modules;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.clashing_extern_declarations;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.entry_fn;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.proc_macro_decls_static;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_hash;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_host_hash;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.extra_filename;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_extern_paths;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.implementations_of_trait;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_incoherent_impls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.native_library;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.inherit_sig_for_delegation_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.delegation_user_specified_args;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.resolve_bound_vars;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.named_variable_map;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_late_bound_map;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.object_lifetime_default;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.late_bound_vars_map;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.opaque_captured_lifetimes;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.live_args_for_alias_from_outlives_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.args_known_to_outlive_alias_params;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.visibility;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.inhabited_predicate_adt;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.inhabited_predicate_type;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_opsem_inhabited_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_dep_kind;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_name;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.module_children;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.num_extern_def_ids;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.lib_features;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.stability_implications;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.intrinsic_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.get_lang_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.all_diagnostic_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.all_canonical_symbols;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.defined_lang_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.diagnostic_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.canonical_symbols;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.missing_lang_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.visible_parent_map;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.trimmed_def_paths;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.missing_extern_crate_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.used_crate_source;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.debugger_visualizers;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.postorder_cnums;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_private_dep;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.allocator_kind;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.alloc_error_handler_kind;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.upvars_mentioned;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crates;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.used_crates;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.duplicate_crate_names;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.traits;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.trait_impls_in_crate;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.stable_order_of_exportable_impls;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.exportable_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.exported_non_generic_symbols;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.exported_generic_symbols;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.collect_and_partition_mono_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_codegened_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.codegen_unit;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.backend_optimization_level;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.output_filenames;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.normalize_canonicalized_projection;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.normalize_canonicalized_free_alias;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.normalize_canonicalized_inherent_projection;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.try_normalize_generic_arg_after_erasing_regions;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.implied_outlives_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.dropck_outlives;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.evaluate_obligation;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_op_ascribe_user_type;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_op_prove_predicate;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_op_normalize_ty;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_op_normalize_clause;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_op_normalize_poly_fn_sig;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.type_op_normalize_fn_sig;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.instantiate_and_check_impossible_clauses;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.is_impossible_associated_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.method_autoderef_steps;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.evaluate_root_goal_for_proof_tree_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.rust_target_features;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.implied_target_features;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.features_query;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.crate_for_resolver;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.resolve_instance_raw;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.reveal_opaque_types_in_bounds;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.limits;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.diagnostic_hir_wf_check;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.global_backend_features;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_validity_requirement;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.compare_impl_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.deduced_param_attrs;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.doc_link_resolutions;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.doc_link_traits_in_scope;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.stripped_cfg_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.generics_require_sized_self;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.cross_crate_inlinable;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_mono_item;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.items_of_instance;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.size_estimate;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.anon_const_kind;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.trivial_const;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.sanitizer_settings_for;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.check_externally_implementable_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.externally_implementable_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
};for_each_query_vtable!(ALL, tcx, |query| {
82 collect_active_query_jobs_inner(query, collect_kind, &mut job_map);
83 });
84
85 job_map
86}
87
88fn collect_active_query_jobs_inner<'tcx, C>(
92 query: &'tcx QueryVTable<'tcx, C>,
93 collect_kind: CollectActiveJobsKind,
94 job_map: &mut QueryJobMap<'tcx>,
95) where
96 C: QueryCache<Key: QueryKey + DynSend + DynSync>,
97 QueryVTable<'tcx, C>: DynSync,
98{
99 let mut collect_shard_jobs = |shard: &HashTable<(C::Key, ActiveKeyStatus<'tcx>)>| {
100 for (key, status) in shard.iter() {
101 if let ActiveKeyStatus::Started(job) = status {
102 let tagged_key = (query.create_tagged_key)(*key);
105 job_map.insert(job.id, QueryJobInfo { tagged_key, job: job.clone() });
106 }
107 }
108 };
109
110 match collect_kind {
111 CollectActiveJobsKind::Full => {
112 for shard in query.state.active.lock_shards() {
113 collect_shard_jobs(&shard);
114 }
115 }
116 CollectActiveJobsKind::FullNoContention => {
117 for shard in query.state.active.try_lock_shards() {
118 match shard {
119 Some(shard) => collect_shard_jobs(&shard),
120 None => {
::core::panicking::panic_fmt(format_args!("Failed to collect active jobs for query `{0}`!",
query.name));
}panic!("Failed to collect active jobs for query `{}`!", query.name),
121 }
122 }
123 }
124 CollectActiveJobsKind::PartialAllowed => {
125 for shard in query.state.active.try_lock_shards() {
126 match shard {
127 Some(shard) => collect_shard_jobs(&shard),
128 None => {
use ::tracing::__macro_support::Callsite as _;
static __CALLSITE: ::tracing::callsite::DefaultCallsite =
{
static META: ::tracing::Metadata<'static> =
{
::tracing_core::metadata::Metadata::new("event compiler/rustc_query_impl/src/job.rs:133",
"rustc_query_impl::job", ::tracing::Level::DEBUG,
::tracing_core::__macro_support::Option::Some("compiler/rustc_query_impl/src/job.rs"),
::tracing_core::__macro_support::Option::Some(133u32),
::tracing_core::__macro_support::Option::Some("rustc_query_impl::job"),
::tracing_core::field::FieldSet::new(&["message"],
::tracing_core::callsite::Identifier(&__CALLSITE)),
::tracing::metadata::Kind::EVENT)
};
::tracing::callsite::DefaultCallsite::new(&META)
};
let enabled =
::tracing::Level::DEBUG <= ::tracing::level_filters::STATIC_MAX_LEVEL
&&
::tracing::Level::DEBUG <=
::tracing::level_filters::LevelFilter::current() &&
{
let interest = __CALLSITE.interest();
!interest.is_never() &&
::tracing::__macro_support::__is_enabled(__CALLSITE.metadata(),
interest)
};
if enabled {
(|value_set: ::tracing::field::ValueSet|
{
let meta = __CALLSITE.metadata();
::tracing::Event::dispatch(meta, &value_set);
;
})({
#[allow(unused_imports)]
use ::tracing::field::{debug, display, Value};
__CALLSITE.metadata().fields().value_set_all(&[(::tracing::__macro_support::Option::Some(&format_args!("Failed to collect active jobs for query `{0}`!",
query.name) as &dyn ::tracing::field::Value))])
});
} else { ; }
}debug!("Failed to collect active jobs for query `{}`!", query.name),
134 }
135 }
136 }
137 }
138}
139
140pub(crate) fn find_cycle_in_stack<'tcx>(
141 id: QueryJobId,
142 job_map: QueryJobMap<'tcx>,
143 current_job: &Option<QueryJobId>,
144 span: Span,
145) -> Cycle<'tcx> {
146 let mut frames = Vec::new();
148 let mut current_job = Option::clone(current_job);
149
150 while let Some(job) = current_job {
151 let info = &job_map.map[&job];
152 frames.push(QueryStackFrame { span: info.job.span, tagged_key: info.tagged_key });
153
154 if job == id {
155 frames.reverse();
156
157 frames[0].span = span;
161 let usage = try {
163 let parent = info.job.parent?;
164 QueryStackFrame { span: info.job.span, tagged_key: job_map.tagged_key_of(parent) }
165 };
166 return Cycle { usage, frames };
167 }
168
169 current_job = info.job.parent;
170 }
171
172 { ::core::panicking::panic_fmt(format_args!("did not find a cycle")); }panic!("did not find a cycle")
173}
174
175#[cold]
178#[inline(never)]
179pub(crate) fn find_dep_kind_root<'tcx>(
180 tcx: TyCtxt<'tcx>,
181 id: QueryJobId,
182 job_map: QueryJobMap<'tcx>,
183) -> (Span, String, usize) {
184 let mut depth = 1;
185 let mut info = &job_map.map[&id];
186 let expected_query = mem::discriminant::<TaggedQueryKey<'tcx>>(&info.tagged_key);
189 let mut last_info = info;
190
191 while let Some(id) = info.job.parent {
192 info = &job_map.map[&id];
193 if mem::discriminant(&info.tagged_key) == expected_query {
194 depth += 1;
195 last_info = info;
196 }
197 }
198 (last_info.job.span, last_info.tagged_key.description(tcx), depth)
199}
200
201type ResumableWaiterLocation = (QueryJobId, usize);
204
205struct AbstractedWaiter {
208 span: Span,
210 parent: Option<QueryJobId>,
212 resumable: Option<ResumableWaiterLocation>,
213}
214
215fn abstracted_waiters_of(job_map: &QueryJobMap<'_>, query: QueryJobId) -> Vec<AbstractedWaiter> {
218 let mut result = Vec::new();
219
220 result.push(AbstractedWaiter {
222 span: job_map.span_of(query),
223 parent: job_map.parent_of(query),
224 resumable: None,
225 });
226
227 if let Some(latch) = job_map.latch_of(query) {
229 for (i, waiter) in latch.waiters.lock().as_ref().unwrap().iter().enumerate() {
230 result.push(AbstractedWaiter {
231 span: waiter.span,
232 parent: waiter.parent,
233 resumable: Some((query, i)),
234 });
235 }
236 }
237
238 result
239}
240
241fn find_cycle<'tcx>(
246 job_map: &QueryJobMap<'tcx>,
247 query: QueryJobId,
248 span: Span,
249 stack: &mut Vec<(Span, QueryJobId)>,
250 visited: &mut FxHashSet<QueryJobId>,
251) -> ControlFlow<Option<ResumableWaiterLocation>> {
252 if !visited.insert(query) {
253 return if let Some(pos) = stack.iter().position(|q| q.1 == query) {
254 stack.drain(0..pos);
258 stack[0].0 = span;
260 ControlFlow::Break(None)
261 } else {
262 ControlFlow::Continue(())
263 };
264 }
265
266 stack.push((span, query));
268
269 for abstracted_waiter in abstracted_waiters_of(job_map, query) {
271 let Some(parent) = abstracted_waiter.parent else {
272 continue;
274 };
275 if let ControlFlow::Break(maybe_resumable) =
276 find_cycle(job_map, parent, abstracted_waiter.span, stack, visited)
277 {
278 return ControlFlow::Break(abstracted_waiter.resumable.or(maybe_resumable));
280 }
281 }
282
283 stack.pop();
285
286 ControlFlow::Continue(())
287}
288
289fn connected_to_root<'tcx>(
293 job_map: &QueryJobMap<'tcx>,
294 query: QueryJobId,
295 visited: &mut FxHashSet<QueryJobId>,
296) -> bool {
297 if !visited.insert(query) {
299 return false;
300 }
301
302 for abstracted_waiter in abstracted_waiters_of(job_map, query) {
304 match abstracted_waiter.parent {
305 None => return true,
307 Some(parent) => {
308 if connected_to_root(job_map, parent, visited) {
309 return true;
310 }
311 }
312 }
313 }
314
315 false
316}
317
318fn process_cycle<'tcx>(job_map: &QueryJobMap<'tcx>, stack: Vec<(Span, QueryJobId)>) -> Cycle<'tcx> {
320 let (mut spans, queries): (Vec<_>, Vec<_>) = stack.into_iter().rev().unzip();
323
324 spans.rotate_right(1);
326
327 let mut stack: Vec<_> = iter::zip(spans, queries).collect();
329
330 struct EntryPoint {
331 query_in_cycle: QueryJobId,
332 query_waiting_on_cycle: Option<(Span, QueryJobId)>,
333 }
334
335 let entry_points = stack
338 .iter()
339 .filter_map(|&(_, query_in_cycle)| {
340 let mut entrypoint = false;
341 let mut query_waiting_on_cycle = None;
342
343 for abstracted_waiter in abstracted_waiters_of(job_map, query_in_cycle) {
345 let Some(parent) = abstracted_waiter.parent else {
346 entrypoint = true;
348 continue;
349 };
350
351 let mut visited = FxHashSet::from_iter(stack.iter().map(|q| q.1));
354
355 if connected_to_root(job_map, parent, &mut visited) {
356 query_waiting_on_cycle = Some((abstracted_waiter.span, parent));
357 entrypoint = true;
358 break;
359 }
360 }
361
362 entrypoint.then_some(EntryPoint { query_in_cycle, query_waiting_on_cycle })
363 })
364 .collect::<Vec<EntryPoint>>();
365
366 let entry_point = entry_points
368 .iter()
369 .find(|entry_point| entry_point.query_waiting_on_cycle.is_some())
370 .unwrap_or(&entry_points[0]);
371
372 let entry_point_pos = stack.iter().position(|(_, query)| *query == entry_point.query_in_cycle);
374 if let Some(pos) = entry_point_pos {
375 stack.rotate_left(pos);
376 }
377
378 let usage = entry_point
379 .query_waiting_on_cycle
380 .map(|(span, job)| QueryStackFrame { span, tagged_key: job_map.tagged_key_of(job) });
381
382 Cycle {
384 usage,
385 frames: stack
386 .iter()
387 .map(|&(span, job)| QueryStackFrame { span, tagged_key: job_map.tagged_key_of(job) })
388 .collect(),
389 }
390}
391
392fn find_and_process_cycle<'tcx>(
395 job_map: &QueryJobMap<'tcx>,
396 query: QueryJobId,
397) -> Option<Arc<QueryWaiter<'tcx>>> {
398 let mut visited = FxHashSet::default();
399 let mut stack = Vec::new();
400 if let ControlFlow::Break(resumable) =
401 find_cycle(job_map, query, DUMMY_SP, &mut stack, &mut visited)
402 {
403 let error = process_cycle(job_map, stack);
405
406 let (waitee_query, waiter_idx) = resumable.unwrap();
409
410 let waiter = job_map.latch_of(waitee_query).unwrap().extract_waiter(waiter_idx);
412
413 *waiter.cycle.lock() = Some(error);
415
416 Some(waiter)
418 } else {
419 None
420 }
421}
422
423#[allow(rustc::potential_query_instability)]
430pub fn break_query_cycle<'tcx>(job_map: QueryJobMap<'tcx>, registry: &rustc_thread_pool::Registry) {
431 let waiter = job_map
433 .map
434 .keys()
435 .find_map(|query| find_and_process_cycle(&job_map, *query))
436 .expect("unable to find a query cycle");
437
438 rustc_thread_pool::mark_unblocked(registry);
440
441 if !waiter.condvar.notify_one() {
{
::core::panicking::panic_fmt(format_args!("unable to wake the waiter"));
}
};assert!(waiter.condvar.notify_one(), "unable to wake the waiter");
442}
443
444pub fn print_query_stack<'tcx>(
445 tcx: TyCtxt<'tcx>,
446 mut current_query: Option<QueryJobId>,
447 dcx: DiagCtxtHandle<'_>,
448 limit_frames: Option<usize>,
449 mut file: Option<std::fs::File>,
450) -> usize {
451 let mut count_printed = 0;
455 let mut count_total = 0;
456
457 let job_map = collect_active_query_jobs(tcx, CollectActiveJobsKind::PartialAllowed);
459
460 if let Some(ref mut file) = file {
461 let _ = file.write_fmt(format_args!("\n\nquery stack during panic:\n"))writeln!(file, "\n\nquery stack during panic:");
462 }
463 while let Some(query) = current_query {
464 let Some(query_info) = job_map.map.get(&query) else {
465 break;
466 };
467 let description = query_info.tagged_key.description(tcx);
468 if Some(count_printed) < limit_frames || limit_frames.is_none() {
469 dcx.struct_failure_note(::alloc::__export::must_use({
::alloc::fmt::format(format_args!("#{1} [{0}] {2}",
query_info.tagged_key.query_name(), count_printed,
description))
})format!(
471 "#{count_printed} [{query_name}] {description}",
472 query_name = query_info.tagged_key.query_name(),
473 ))
474 .with_span(query_info.job.span)
475 .emit();
476 count_printed += 1;
477 }
478
479 if let Some(ref mut file) = file {
480 let _ = file.write_fmt(format_args!("#{1} [{0}] {2}\n",
query_info.tagged_key.query_name(), count_total, description))writeln!(
481 file,
482 "#{count_total} [{query_name}] {description}",
483 query_name = query_info.tagged_key.query_name(),
484 );
485 }
486
487 current_query = query_info.job.parent;
488 count_total += 1;
489 }
490
491 if let Some(ref mut file) = file {
492 let _ = file.write_fmt(format_args!("end of query stack\n"))writeln!(file, "end of query stack");
493 }
494 count_total
495}