Skip to main content

rustc_query_impl/
plumbing.rs

1use std::num::NonZero;
2
3use rustc_data_structures::Limit;
4use rustc_data_structures::stack::ensure_sufficient_stack;
5use rustc_data_structures::unord::UnordMap;
6use rustc_middle::bug;
7#[expect(unused_imports, reason = "used by doc comments")]
8use rustc_middle::dep_graph::DepKindVTable;
9use rustc_middle::dep_graph::{DepNode, DepNodeIndex, DepNodeKey, SerializedDepNodeIndex};
10use rustc_middle::query::erase::{Erasable, Erased};
11use rustc_middle::query::on_disk_cache::{CacheDecoder, CacheEncoder};
12use rustc_middle::query::{QueryCache, QueryJobId, QueryVTable, erase};
13use rustc_middle::ty::TyCtxt;
14use rustc_middle::ty::tls::{self, ImplicitCtxt};
15use rustc_middle::verify_ich::incremental_verify_ich;
16use rustc_serialize::{Decodable, Encodable};
17use rustc_span::def_id::LOCAL_CRATE;
18
19use crate::error::{QueryOverflow, QueryOverflowNote};
20use crate::execution::{all_inactive, should_verify_loaded_value};
21use crate::job::find_dep_kind_root;
22use crate::query_impl::for_each_query_vtable;
23use crate::{CollectActiveJobsKind, collect_active_query_jobs};
24
25fn depth_limit_error<'tcx>(tcx: TyCtxt<'tcx>, job: QueryJobId) {
26    let job_map = collect_active_query_jobs(tcx, CollectActiveJobsKind::Full);
27    let (span, desc, depth) = find_dep_kind_root(tcx, job, job_map);
28
29    let suggested_limit = match tcx.recursion_limit() {
30        Limit(0) => Limit(2),
31        limit => limit * 2,
32    };
33
34    tcx.dcx().emit_fatal(QueryOverflow {
35        span,
36        note: QueryOverflowNote { desc, depth },
37        suggested_limit,
38        crate_name: tcx.crate_name(LOCAL_CRATE),
39    });
40}
41
42#[inline]
43pub(crate) fn next_job_id<'tcx>(tcx: TyCtxt<'tcx>) -> QueryJobId {
44    QueryJobId(
45        NonZero::new(tcx.query_system.jobs.fetch_add(1, std::sync::atomic::Ordering::Relaxed))
46            .unwrap(),
47    )
48}
49
50#[inline]
51pub(crate) fn current_query_job() -> Option<QueryJobId> {
52    tls::with_context(|icx| icx.query)
53}
54
55/// Executes a job by changing the `ImplicitCtxt` to point to the new query job while it executes.
56#[inline(always)]
57pub(crate) fn start_query<R>(
58    job_id: QueryJobId,
59    depth_limit: bool,
60    compute: impl FnOnce() -> R,
61) -> R {
62    tls::with_context(move |icx| {
63        if depth_limit && !icx.tcx.recursion_limit().value_within_limit(icx.query_depth) {
64            depth_limit_error(icx.tcx, job_id);
65        }
66
67        // Update the `ImplicitCtxt` to point to our new query job.
68        let icx = ImplicitCtxt {
69            query: Some(job_id),
70            query_depth: icx.query_depth + if depth_limit { 1 } else { 0 },
71            ..*icx
72        };
73
74        // Use the `ImplicitCtxt` while we execute the query.
75        tls::enter_context(&icx, compute)
76    })
77}
78
79pub(crate) fn encode_query_values<'tcx>(tcx: TyCtxt<'tcx>, encoder: &mut CacheEncoder<'_, 'tcx>) {
80    {
    let tcx: rustc_middle::ty::TyCtxt<'_> = tcx;
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.derive_macro_expansion;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.hir_module_items;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.const_param_default;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.const_of_item;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.type_of;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.collect_return_position_impl_trait_in_trait_tys;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.generics_of;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.explicit_item_bounds;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.explicit_item_self_bounds;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.mir_const_qualif;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.mir_for_ctfe;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.mir_coroutine_witnesses;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.optimized_mir;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.promoted_mir;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.explicit_clauses_of;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.inferred_outlives_of;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.explicit_super_clauses_of;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.explicit_implied_clauses_of;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.trait_def;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.adt_def;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.adt_destructor;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.adt_async_destructor;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.variances_of;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.associated_item_def_ids;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.associated_item;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.impl_trait_header;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.impl_is_fully_generic_for_reflection;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.inherent_impls;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.fn_sig;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.coerce_unsized_info;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.typeck_root;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.used_trait_imports;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.mir_callgraph_cyclic;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.eval_to_allocation_raw;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.eval_static_initializer;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.eval_to_const_value_raw;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.reachable_set;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.symbol_name;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.def_span;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.def_ident_span;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.ty_span;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.lookup_stability;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.lookup_const_stability;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.lookup_deprecation_entry;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.codegen_fn_attrs;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.is_mir_available;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.codegen_select_candidate;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.specialization_graph_of;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.adt_drop_tys;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.adt_async_drop_tys;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.has_ffi_unwind_calls;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.is_reachable_non_generic;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.exported_non_generic_symbols;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.exported_generic_symbols;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.items_of_instance;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.size_estimate;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.trivial_const;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
    {
        let query: &rustc_middle::query::QueryVTable<'_, _> =
            &tcx.query_system.query_vtables.externally_implementable_items;
        (|query| { encode_query_values_inner(tcx, query, encoder) })(query);
    }
};for_each_query_vtable!(CACHE_ON_DISK, tcx, |query| {
81        encode_query_values_inner(tcx, query, encoder)
82    });
83}
84
85fn encode_query_values_inner<'a, 'tcx, C, V>(
86    tcx: TyCtxt<'tcx>,
87    query: &'tcx QueryVTable<'tcx, C>,
88    encoder: &mut CacheEncoder<'a, 'tcx>,
89) where
90    C: QueryCache<Value = Erased<V>>,
91    V: Erasable + Encodable<CacheEncoder<'a, 'tcx>>,
92{
93    let _timer = tcx.prof.generic_activity_with_arg("encode_query_results_for", query.name);
94
95    if !all_inactive(&query.state) {
    ::core::panicking::panic("assertion failed: all_inactive(&query.state)")
};assert!(all_inactive(&query.state));
96    query.cache.for_each(&mut |key, value, dep_node| {
97        if query.will_cache_on_disk_for_key(*key) {
98            encoder.encode_query_value::<V>(dep_node, &erase::restore_val::<V>(*value));
99        }
100    });
101}
102
103pub(crate) fn verify_query_key_hashes<'tcx>(tcx: TyCtxt<'tcx>) {
104    if tcx.sess.opts.unstable_opts.incremental_verify_ich || truecfg!(debug_assertions) {
105        tcx.sess.time("verify_query_key_hashes", || {
106            {
    let tcx: rustc_middle::ty::TyCtxt<'_> = tcx;
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.derive_macro_expansion;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.trigger_delayed_bug;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.registered_attr_tools;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.registered_lint_tools;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.early_lint_checks;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.env_var_os;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.resolutions;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.resolver_for_lowering_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.index_ast;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.source_span;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lower_to_hir;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.hir_owner;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.hir_crate_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.hir_module_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.hir_owner_parent_q;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.hir_attr_map;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.const_param_default;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.const_of_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_of_opaque;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_of_opaque_hir_typeck;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_alias_is_checked;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.collect_return_position_impl_trait_in_trait_tys;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.opaque_ty_origin;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.unsizing_params_for_adt;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.analysis;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_expectations;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.generics_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.clauses_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.opaque_types_defined_by;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.nested_bodies_within;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.explicit_item_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.explicit_item_self_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.item_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.item_self_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.item_non_self_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.impl_super_outlives;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.native_libraries;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.shallow_lint_levels_on;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lint_expectations;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.skippable_lints;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.expn_that_defined;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_panic_runtime;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_representability;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_representability_adt_ty;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.params_in_repr;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.thir_body;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_keys;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_const_qualif;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_built;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.thir_abstract_const;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_drops_elaborated_and_const_checked;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_for_ctfe;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_promoted;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.closure_typeinfo;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.closure_saved_names_of_captured_variables;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_coroutine_witnesses;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_coroutine_obligations;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_potentially_region_dependent_goals;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.optimized_mir;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.coverage_attr_on;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.coverage_ids_info;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.promoted_mir;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.erase_and_anonymize_regions_ty;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.wasm_import_module_map;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.trait_explicit_clauses_and_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.explicit_clauses_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.inferred_outlives_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.explicit_super_clauses_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.explicit_implied_clauses_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.explicit_supertraits_containing_assoc_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.const_conditions;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.explicit_implied_const_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_param_clauses;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.trait_def;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.adt_def;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.adt_destructor;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.adt_async_destructor;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.adt_sizedness_constraint;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.adt_dtorck_constraint;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.constness;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.asyncness;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_promotable_const_fn;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.coroutine_by_move_body_def_id;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.coroutine_kind;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.coroutine_for_closure;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.coroutine_hidden_types;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_variances;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.variances_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.inferred_outlives_crate;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.associated_item_def_ids;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.associated_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.associated_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.impl_item_implementor_ids;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.associated_types_for_impl_traits_in_trait_or_impl;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.impl_trait_header;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.impl_is_fully_generic_for_reflection;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.impl_self_is_guaranteed_unsized;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.inherent_impls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.incoherent_impls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_transmutes;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_offloads;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_unsafety;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_tail_calls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.assumed_wf_types;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.assumed_wf_types_for_rpitit;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.fn_sig;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lint_mod;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_unused_traits;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_mod_attrs;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_mod_unstable_api_usage;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_mod_privacy;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_liveness;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.live_symbols_and_ignored_derived_traits;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_mod_deathness;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_type_wf;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.coerce_unsized_info;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.typeck_root;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.used_trait_imports;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.coherent_trait;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_borrowck;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_inherent_impls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_inherent_impls_validity_check;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_inherent_impls_overlap_check;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.orphan_check_impl;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_callgraph_cyclic;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_inliner_callees;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.tag_for_variant;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.eval_to_allocation_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.eval_static_initializer;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.eval_to_const_value_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.eval_to_valtree;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.valtree_to_const_val;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lit_to_const;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_match;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.effective_visibilities;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_private_in_public;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.reachable_set;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.region_scope_tree;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.mir_shims;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.symbol_name;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.def_kind;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.def_span;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.def_ident_span;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.ty_span;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lookup_stability;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lookup_const_stability;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lookup_default_body_stability;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.should_inherit_track_caller;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.inherited_align;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lookup_deprecation_entry;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_doc_hidden;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_doc_notable_trait;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.attrs_for_def;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.codegen_fn_attrs;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.asm_target_features;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.fn_arg_idents;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.rendered_const;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.rendered_precise_capturing_args;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.impl_parent;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_mir_available;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.own_existential_vtable_entries;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.vtable_entries;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.first_method_vtable_slot;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.supertrait_vtable_slot;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.vtable_allocation;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.codegen_select_candidate;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.all_local_trait_impls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.local_trait_impls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.trait_impls_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.specialization_graph_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.dyn_compatibility_violations;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_dyn_compatible;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.param_env;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.param_env_normalized_for_post_analysis;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_copy_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_use_cloned_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_sized_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_freeze_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_unsafe_unpin_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_unpin_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_async_drop_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.needs_drop_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.needs_async_drop_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.has_significant_drop_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.has_structural_eq_impl;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.adt_drop_tys;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.adt_async_drop_tys;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.adt_significant_drop_tys;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.list_significant_drop_tys;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.layout_of;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.fn_abi_of_fn_ptr;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.fn_abi_of_instance_no_deduced_attrs;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.fn_abi_of_instance_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.dylib_dependency_formats;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.dependency_formats;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_compiler_builtins;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.has_global_allocator;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.has_alloc_error_handler;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.has_panic_handler;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_profiler_runtime;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.has_ffi_unwind_calls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.required_panic_strategy;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.panic_in_drop_strategy;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_no_builtins;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.symbol_mangling_version;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.extern_crate;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.specialization_enabled_in;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.specializes;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.defaultness;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.default_field;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_well_formed;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.enforce_impl_non_lifetime_params_are_constrained;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.reachable_non_generics;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_reachable_non_generic;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_unreachable_local_definition;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.upstream_monomorphizations;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.upstream_monomorphizations_for;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.upstream_drop_glue_for;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.upstream_async_drop_glue_for;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.foreign_modules;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.clashing_extern_declarations;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.entry_fn;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.proc_macro_decls_static;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_hash;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_host_hash;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.extra_filename;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_extern_paths;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.implementations_of_trait;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_incoherent_impls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.native_library;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.inherit_sig_for_delegation_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.delegation_user_specified_args;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.resolve_bound_vars;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.named_variable_map;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_late_bound_map;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.object_lifetime_default;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.late_bound_vars_map;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.opaque_captured_lifetimes;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.live_args_for_alias_from_outlives_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.args_known_to_outlive_alias_params;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.visibility;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.inhabited_predicate_adt;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.inhabited_predicate_type;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_opsem_inhabited_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_dep_kind;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_name;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.module_children;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.num_extern_def_ids;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.lib_features;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.stability_implications;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.intrinsic_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.get_lang_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.all_diagnostic_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.all_canonical_symbols;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.defined_lang_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.diagnostic_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.canonical_symbols;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.missing_lang_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.visible_parent_map;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.trimmed_def_paths;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.missing_extern_crate_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.used_crate_source;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.debugger_visualizers;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.postorder_cnums;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_private_dep;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.allocator_kind;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.alloc_error_handler_kind;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.upvars_mentioned;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crates;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.used_crates;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.duplicate_crate_names;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.traits;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.trait_impls_in_crate;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.stable_order_of_exportable_impls;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.exportable_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.exported_non_generic_symbols;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.exported_generic_symbols;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.collect_and_partition_mono_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_codegened_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.codegen_unit;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.backend_optimization_level;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.output_filenames;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.normalize_canonicalized_projection;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.normalize_canonicalized_free_alias;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.normalize_canonicalized_inherent_projection;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.try_normalize_generic_arg_after_erasing_regions;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.implied_outlives_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.dropck_outlives;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.evaluate_obligation;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_op_ascribe_user_type;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_op_prove_predicate;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_op_normalize_ty;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_op_normalize_clause;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_op_normalize_poly_fn_sig;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.type_op_normalize_fn_sig;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.instantiate_and_check_impossible_clauses;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.is_impossible_associated_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.method_autoderef_steps;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.evaluate_root_goal_for_proof_tree_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.rust_target_features;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.implied_target_features;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.features_query;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.crate_for_resolver;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.resolve_instance_raw;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.reveal_opaque_types_in_bounds;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.limits;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.diagnostic_hir_wf_check;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.global_backend_features;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_validity_requirement;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.compare_impl_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.deduced_param_attrs;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.doc_link_resolutions;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.doc_link_traits_in_scope;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.stripped_cfg_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.generics_require_sized_self;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.cross_crate_inlinable;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_mono_item;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.items_of_instance;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.size_estimate;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.anon_const_kind;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.trivial_const;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.sanitizer_settings_for;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.check_externally_implementable_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
    let query: &rustc_middle::query::QueryVTable<'_, _> =
        &tcx.query_system.query_vtables.externally_implementable_items;
    (|query| { verify_query_key_hashes_inner(query, tcx); })(query);
};for_each_query_vtable!(ALL, tcx, |query| {
107                verify_query_key_hashes_inner(query, tcx);
108            });
109        });
110    }
111}
112
113fn verify_query_key_hashes_inner<'tcx, C: QueryCache>(
114    query: &'tcx QueryVTable<'tcx, C>,
115    tcx: TyCtxt<'tcx>,
116) {
117    let _timer = tcx.prof.generic_activity_with_arg("query_key_hash_verify_for", query.name);
118
119    let cache = &query.cache;
120    let mut map = UnordMap::with_capacity(cache.len());
121    cache.for_each(&mut |key, _, _| {
122        let node = DepNode::construct(tcx, query.dep_kind, key);
123        if let Some(other_key) = map.insert(node, *key) {
124            ::rustc_middle::util::bug::bug_fmt(format_args!("query key:\n`{0:?}`\nand key:\n`{1:?}`\nmapped to the same dep node:\n{2:?}",
        key, other_key, node));bug!(
125                "query key:\n\
126                `{:?}`\n\
127                and key:\n\
128                `{:?}`\n\
129                mapped to the same dep node:\n\
130                {:?}",
131                key,
132                other_key,
133                node
134            );
135        }
136    });
137}
138
139/// Inner implementation of [`DepKindVTable::promote_from_disk_fn`] for queries.
140pub(crate) fn promote_from_disk_inner<'tcx, C: QueryCache>(
141    tcx: TyCtxt<'tcx>,
142    query: &'tcx QueryVTable<'tcx, C>,
143    dep_node: DepNode,
144    prev_index: SerializedDepNodeIndex,
145    dep_node_index: DepNodeIndex,
146) {
147    if true {
    if !tcx.dep_graph.is_green(&dep_node) {
        ::core::panicking::panic("assertion failed: tcx.dep_graph.is_green(&dep_node)")
    };
};debug_assert!(tcx.dep_graph.is_green(&dep_node));
148
149    let key = C::Key::try_recover_key(tcx, &dep_node).unwrap_or_else(|| {
150        {
    ::core::panicking::panic_fmt(format_args!("Failed to recover key for {1:?} with key fingerprint {0}",
            dep_node.key_fingerprint, dep_node));
}panic!(
151            "Failed to recover key for {dep_node:?} with key fingerprint {}",
152            dep_node.key_fingerprint
153        )
154    });
155
156    // If the recovered key isn't eligible for cache-on-disk, then there's no
157    // value on disk to promote.
158    if !query.will_cache_on_disk_for_key(key) {
159        return;
160    }
161
162    // If the value is already in memory, then promotion isn't needed.
163    if query.cache.lookup(&key).is_some() {
164        return;
165    }
166
167    // Load the disk-cached value into memory.
168    let dep_graph_data =
169        tcx.dep_graph.data().expect("should always be present in incremental mode");
170
171    let prof_timer = tcx.prof.incr_cache_loading();
172    let value = ensure_sufficient_stack(|| (query.try_load_from_disk_fn)(tcx, prev_index));
173    prof_timer.finish_with_query_invocation_id(dep_node_index.into());
174
175    let Some(value) = value else {
176        // The key is cache-on-disk and its node is green, so a value must be on disk.
177        ::rustc_middle::util::bug::bug_fmt(format_args!("failed to load disk-cached value for green node {0:?}",
        dep_node));bug!("failed to load disk-cached value for green node {dep_node:?}");
178    };
179
180    // Verify the fingerprints of the same subset of loaded values as
181    // `load_from_disk_or_invoke_provider_green` does.
182    let prev_fingerprint = dep_graph_data.prev_value_fingerprint_of(prev_index);
183    if should_verify_loaded_value(tcx, prev_fingerprint) {
184        incremental_verify_ich(
185            tcx,
186            dep_graph_data,
187            &value,
188            prev_index,
189            query.hash_value_fn,
190            query.format_value,
191        );
192    }
193
194    query.cache.complete(key, value, dep_node_index);
195}
196
197pub(crate) fn try_load_from_disk<'tcx, V>(
198    tcx: TyCtxt<'tcx>,
199    prev_index: SerializedDepNodeIndex,
200) -> Option<V>
201where
202    V: for<'a> Decodable<CacheDecoder<'a, 'tcx>>,
203{
204    let on_disk_cache = tcx.query_system.on_disk_cache.as_ref()?;
205
206    // The call to `with_query_deserialization` enforces that no new `DepNodes`
207    // are created during deserialization. See the docs of that method for more
208    // details.
209    tcx.dep_graph.with_query_deserialization(|| on_disk_cache.try_load_query_value(tcx, prev_index))
210}