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_middle::queries::TaggedQueryKey;
10use rustc_middle::query::{
11 ActiveKeyStatus, QueryCache, QueryCycle, QueryJob, QueryJobId, QueryKey, QueryLatch,
12 QueryStackFrame, QueryVTable, QueryWaiter,
13};
14use rustc_middle::ty::TyCtxt;
15use rustc_span::{DUMMY_SP, Span};
16use tracing::debug;
17
18use crate::query_vtables::for_each_query_vtable;
19
20#[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() -> Self {
QueryJobMap { map: ::core::default::Default::default() }
}
}Default)]
23pub struct QueryJobMap<'tcx> {
24 map: FxHashMap<QueryJobId, QueryJobInfo<'tcx>>,
25}
26
27impl<'tcx> QueryJobMap<'tcx> {
28 pub(crate) fn insert(&mut self, id: QueryJobId, info: QueryJobInfo<'tcx>) {
32 self.map.insert(id, info);
33 }
34
35 fn tagged_key_of(&self, id: QueryJobId) -> TaggedQueryKey<'tcx> {
36 self.map[&id].tagged_key
37 }
38
39 fn span_of(&self, id: QueryJobId) -> Span {
40 self.map[&id].job.span
41 }
42
43 fn parent_of(&self, id: QueryJobId) -> Option<QueryJobId> {
44 self.map[&id].job.parent
45 }
46
47 fn latch_of(&self, id: QueryJobId) -> Option<&QueryLatch<'tcx>> {
48 self.map[&id].job.latch.as_ref()
49 }
50}
51
52#[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)]
53pub(crate) struct QueryJobInfo<'tcx> {
54 pub(crate) tagged_key: TaggedQueryKey<'tcx>,
55 pub(crate) job: QueryJob<'tcx>,
56}
57
58#[derive(#[automatically_derived]
#[doc(hidden)]
unsafe impl ::core::clone::TrivialClone for CollectActiveJobsKind { }
#[automatically_derived]
impl ::core::clone::Clone for CollectActiveJobsKind {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for CollectActiveJobsKind { }Copy)]
59pub enum CollectActiveJobsKind {
60 Full,
63
64 FullNoContention,
67
68 PartialAllowed,
71}
72
73pub fn collect_active_query_jobs<'tcx>(
75 tcx: TyCtxt<'tcx>,
76 collect_kind: CollectActiveJobsKind,
77) -> QueryJobMap<'tcx> {
78 let mut job_map = QueryJobMap::default();
79
80 {
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.resolve_type_relative_delegations;
(|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.is_eligible_for_coverage;
(|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_codegen_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_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.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.mir_borrowck_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.all_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.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);
let query: &rustc_middle::query::QueryVTable<'_, _> =
&tcx.query_system.query_vtables.fake_doc_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_fake_doc_items;
(|query|
{
collect_active_query_jobs_inner(query, collect_kind,
&mut job_map);
})(query);
};for_each_query_vtable!(ALL, tcx, |query| {
81 collect_active_query_jobs_inner(query, collect_kind, &mut job_map);
82 });
83
84 job_map
85}
86
87fn collect_active_query_jobs_inner<'tcx, C>(
91 query: &'tcx QueryVTable<'tcx, C>,
92 collect_kind: CollectActiveJobsKind,
93 job_map: &mut QueryJobMap<'tcx>,
94) where
95 C: QueryCache<Key: QueryKey + DynSend + DynSync>,
96 QueryVTable<'tcx, C>: DynSync,
97{
98 let mut collect_shard_jobs = |shard: &HashTable<(C::Key, ActiveKeyStatus<'tcx>)>| {
99 for (key, status) in shard.iter() {
100 if let ActiveKeyStatus::Started(job) = status {
101 let tagged_key = (query.create_tagged_key)(*key);
104 job_map.insert(job.id, QueryJobInfo { tagged_key, job: job.clone() });
105 }
106 }
107 };
108
109 match collect_kind {
110 CollectActiveJobsKind::Full => {
111 for shard in query.state.active.lock_shards() {
112 collect_shard_jobs(&shard);
113 }
114 }
115 CollectActiveJobsKind::FullNoContention => {
116 for shard in query.state.active.try_lock_shards() {
117 match shard {
118 Some(shard) => collect_shard_jobs(&shard),
119 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),
120 }
121 }
122 }
123 CollectActiveJobsKind::PartialAllowed => {
124 for shard in query.state.active.try_lock_shards() {
125 match shard {
126 Some(shard) => collect_shard_jobs(&shard),
127 None => {
use ::tracing::__macro_support::Callsite as _;
static __CALLSITE: ::tracing::callsite::DefaultCallsite =
{
static META: ::tracing::Metadata<'static> =
{
::tracing_core::metadata::Metadata::new("event /rustc-dev/1303417c416e1595173d9689e7394c31e136ae95/compiler/rustc_query_impl/src/job.rs:132",
"rustc_query_impl::job", ::tracing::Level::DEBUG,
::tracing_core::__macro_support::Option::Some("/rustc-dev/1303417c416e1595173d9689e7394c31e136ae95/compiler/rustc_query_impl/src/job.rs"),
::tracing_core::__macro_support::Option::Some(132u32),
::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),
133 }
134 }
135 }
136 }
137}
138
139pub(crate) fn find_cycle_in_stack<'tcx>(
140 id: QueryJobId,
141 job_map: QueryJobMap<'tcx>,
142 current_job: &Option<QueryJobId>,
143 span: Span,
144) -> QueryCycle<'tcx> {
145 let mut frames = Vec::new();
147 let mut current_job = Option::clone(current_job);
148
149 while let Some(job) = current_job {
150 let info = &job_map.map[&job];
151 frames.push(QueryStackFrame { span: info.job.span, tagged_key: info.tagged_key });
152
153 if job == id {
154 frames.reverse();
155
156 frames[0].span = span;
160 let usage = try {
162 let parent = info.job.parent?;
163 QueryStackFrame { span: info.job.span, tagged_key: job_map.tagged_key_of(parent) }
164 };
165 return QueryCycle { usage, frames };
166 }
167
168 current_job = info.job.parent;
169 }
170
171 { ::core::panicking::panic_fmt(format_args!("did not find a cycle")); }panic!("did not find a cycle")
172}
173
174#[cold]
177#[inline(never)]
178pub(crate) fn find_dep_kind_root<'tcx>(
179 tcx: TyCtxt<'tcx>,
180 id: QueryJobId,
181 job_map: QueryJobMap<'tcx>,
182) -> (Span, String, usize) {
183 let mut depth = 1;
184 let mut info = &job_map.map[&id];
185 let expected_query = mem::discriminant::<TaggedQueryKey<'tcx>>(&info.tagged_key);
188 let mut last_info = info;
189
190 while let Some(id) = info.job.parent {
191 info = &job_map.map[&id];
192 if mem::discriminant(&info.tagged_key) == expected_query {
193 depth += 1;
194 last_info = info;
195 }
196 }
197 (last_info.job.span, last_info.tagged_key.description(tcx), depth)
198}
199
200type ResumableWaiterLocation = (QueryJobId, usize);
203
204struct AbstractedWaiter {
207 span: Span,
209 parent: Option<QueryJobId>,
211 resumable: Option<ResumableWaiterLocation>,
212}
213
214fn abstracted_waiters_of(job_map: &QueryJobMap<'_>, query: QueryJobId) -> Vec<AbstractedWaiter> {
217 let mut result = Vec::new();
218
219 result.push(AbstractedWaiter {
221 span: job_map.span_of(query),
222 parent: job_map.parent_of(query),
223 resumable: None,
224 });
225
226 if let Some(latch) = job_map.latch_of(query) {
228 for (i, waiter) in latch.waiters.lock().as_ref().unwrap().iter().enumerate() {
229 result.push(AbstractedWaiter {
230 span: waiter.span,
231 parent: waiter.parent,
232 resumable: Some((query, i)),
233 });
234 }
235 }
236
237 result
238}
239
240fn find_cycle<'tcx>(
245 job_map: &QueryJobMap<'tcx>,
246 query: QueryJobId,
247 span: Span,
248 stack: &mut Vec<(Span, QueryJobId)>,
249 visited: &mut FxHashSet<QueryJobId>,
250) -> ControlFlow<Option<ResumableWaiterLocation>> {
251 if !visited.insert(query) {
252 return if let Some(pos) = stack.iter().position(|q| q.1 == query) {
253 stack.drain(0..pos);
257 stack[0].0 = span;
259 ControlFlow::Break(None)
260 } else {
261 ControlFlow::Continue(())
262 };
263 }
264
265 stack.push((span, query));
267
268 for abstracted_waiter in abstracted_waiters_of(job_map, query) {
270 let Some(parent) = abstracted_waiter.parent else {
271 continue;
273 };
274 if let ControlFlow::Break(maybe_resumable) =
275 find_cycle(job_map, parent, abstracted_waiter.span, stack, visited)
276 {
277 return ControlFlow::Break(abstracted_waiter.resumable.or(maybe_resumable));
279 }
280 }
281
282 stack.pop();
284
285 ControlFlow::Continue(())
286}
287
288fn connected_to_root<'tcx>(
292 job_map: &QueryJobMap<'tcx>,
293 query: QueryJobId,
294 visited: &mut FxHashSet<QueryJobId>,
295) -> bool {
296 if !visited.insert(query) {
298 return false;
299 }
300
301 for abstracted_waiter in abstracted_waiters_of(job_map, query) {
303 match abstracted_waiter.parent {
304 None => return true,
306 Some(parent) => {
307 if connected_to_root(job_map, parent, visited) {
308 return true;
309 }
310 }
311 }
312 }
313
314 false
315}
316
317fn process_cycle<'tcx>(
319 job_map: &QueryJobMap<'tcx>,
320 stack: Vec<(Span, QueryJobId)>,
321) -> QueryCycle<'tcx> {
322 let (mut spans, queries): (Vec<_>, Vec<_>) = stack.into_iter().rev().unzip();
325
326 spans.rotate_right(1);
328
329 let mut stack: Vec<_> = iter::zip(spans, queries).collect();
331
332 struct EntryPoint {
333 query_in_cycle: QueryJobId,
334 query_waiting_on_cycle: Option<(Span, QueryJobId)>,
335 }
336
337 let entry_points = stack
340 .iter()
341 .filter_map(|&(_, query_in_cycle)| {
342 let mut entrypoint = false;
343 let mut query_waiting_on_cycle = None;
344
345 for abstracted_waiter in abstracted_waiters_of(job_map, query_in_cycle) {
347 let Some(parent) = abstracted_waiter.parent else {
348 entrypoint = true;
350 continue;
351 };
352
353 let mut visited = FxHashSet::from_iter(stack.iter().map(|q| q.1));
356
357 if connected_to_root(job_map, parent, &mut visited) {
358 query_waiting_on_cycle = Some((abstracted_waiter.span, parent));
359 entrypoint = true;
360 break;
361 }
362 }
363
364 entrypoint.then_some(EntryPoint { query_in_cycle, query_waiting_on_cycle })
365 })
366 .collect::<Vec<EntryPoint>>();
367
368 let entry_point = entry_points
370 .iter()
371 .find(|entry_point| entry_point.query_waiting_on_cycle.is_some())
372 .unwrap_or(&entry_points[0]);
373
374 let entry_point_pos = stack.iter().position(|(_, query)| *query == entry_point.query_in_cycle);
376 if let Some(pos) = entry_point_pos {
377 stack.rotate_left(pos);
378 }
379
380 let usage = entry_point
381 .query_waiting_on_cycle
382 .map(|(span, job)| QueryStackFrame { span, tagged_key: job_map.tagged_key_of(job) });
383
384 QueryCycle {
386 usage,
387 frames: stack
388 .iter()
389 .map(|&(span, job)| QueryStackFrame { span, tagged_key: job_map.tagged_key_of(job) })
390 .collect(),
391 }
392}
393
394fn find_and_process_cycle<'tcx>(
397 job_map: &QueryJobMap<'tcx>,
398 query: QueryJobId,
399) -> Option<Arc<QueryWaiter<'tcx>>> {
400 let mut visited = FxHashSet::default();
401 let mut stack = Vec::new();
402 if let ControlFlow::Break(resumable) =
403 find_cycle(job_map, query, DUMMY_SP, &mut stack, &mut visited)
404 {
405 let error = process_cycle(job_map, stack);
407
408 let (waitee_query, waiter_idx) = resumable.unwrap();
411
412 let waiter = {
414 let latch = job_map.latch_of(waitee_query).unwrap();
415 let mut waiters_guard = latch.waiters.lock();
416 let waiters = waiters_guard.as_mut().expect("non-empty waiters vec");
417 waiters.remove(waiter_idx)
419 };
420
421 *waiter.cycle.lock() = Some(error);
423
424 Some(waiter)
426 } else {
427 None
428 }
429}
430
431#[allow(rustc::potential_query_instability)]
438pub fn break_query_cycle<'tcx>(job_map: QueryJobMap<'tcx>, registry: &rustc_thread_pool::Registry) {
439 let waiter = job_map
441 .map
442 .keys()
443 .find_map(|query| find_and_process_cycle(&job_map, *query))
444 .expect("unable to find a query cycle");
445
446 rustc_thread_pool::mark_unblocked(registry);
448
449 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");
450}
451
452pub fn print_query_stack<'tcx>(
453 tcx: TyCtxt<'tcx>,
454 mut current_query: Option<QueryJobId>,
455 limit_frames: Option<usize>,
456 mut file: Option<std::fs::File>,
457) -> usize {
458 let mut count_printed = 0;
462 let mut count_total = 0;
463
464 let job_map = collect_active_query_jobs(tcx, CollectActiveJobsKind::PartialAllowed);
466
467 if let Some(ref mut file) = file {
468 let _ = file.write_fmt(format_args!("\n\nquery stack during panic:\n"))writeln!(file, "\n\nquery stack during panic:");
469 }
470 while let Some(query) = current_query {
471 let Some(query_info) = job_map.map.get(&query) else {
472 break;
473 };
474 let description = query_info.tagged_key.description(tcx);
475 if Some(count_printed) < limit_frames || limit_frames.is_none() {
476 {
::std::io::_eprint(format_args!("#{1} [{0}] {2}\n",
query_info.tagged_key.query_name(), count_printed, description));
};eprintln!(
478 "#{count_printed} [{query_name}] {description}",
479 query_name = query_info.tagged_key.query_name(),
480 );
481 count_printed += 1;
482 }
483
484 if let Some(ref mut file) = file {
485 let _ = file.write_fmt(format_args!("#{1} [{0}] {2}\n",
query_info.tagged_key.query_name(), count_total, description))writeln!(
486 file,
487 "#{count_total} [{query_name}] {description}",
488 query_name = query_info.tagged_key.query_name(),
489 );
490 }
491
492 current_query = query_info.job.parent;
493 count_total += 1;
494 }
495
496 if let Some(ref mut file) = file {
497 let _ = file.write_fmt(format_args!("end of query stack\n"))writeln!(file, "end of query stack");
498 }
499 count_total
500}