Skip to main content

rustc_query_impl/
query_impl.rs

1use rustc_middle::queries::TaggedQueryKey;
2use rustc_middle::query::erase::{self, Erased};
3use rustc_middle::query::plumbing::QueryVTable;
4use rustc_middle::query::{AsLocalQueryKey, QueryMode};
5use rustc_middle::ty::TyCtxt;
6use rustc_span::Span;
7
8use crate::GetQueryVTable;
9
10macro_rules! define_queries {
11    (
12        // Note: `$K` and `$V` are unused but present so this can be called by
13        // `rustc_with_all_queries`.
14        queries {
15            $(
16                $(#[$attr:meta])*
17                fn $name:ident($K:ty) -> $V:ty
18                {
19                    // Search for (QMODLIST) to find all occurrences of this query modifier list.
20                    anon: $anon:literal,
21                    arena_cache: $arena_cache:literal,
22                    cache_on_disk: $cache_on_disk:literal,
23                    depth_limit: $depth_limit:literal,
24                    eval_always: $eval_always:literal,
25                    feedable: $feedable:literal,
26                    no_hash: $no_hash:literal,
27                    returns_error_guaranteed: $returns_error_guaranteed:literal,
28                    separate_provide_extern: $separate_provide_extern:literal,
29                }
30            )*
31        }
32        // Non-queries are unused here.
33        non_queries { $($_:tt)* }
34    ) => {
35        // This macro expects to be expanded into `crate::query_impl`, which is this file.
36        $(
37            pub(crate) mod $name {
38                use super::*;
39
40                // It seems to be important that every query has its own monomorphic
41                // copy of `execute_query_incr` and `execute_query_non_incr`.
42                // Trying to inline these wrapper functions into their generic
43                // "inner" helpers tends to break `tests/run-make/short-ice`.
44
45                pub(crate) mod execute_query_incr {
46                    use super::*;
47                    use rustc_middle::queries::$name::{Key, Value};
48
49                    // Adding `__rust_end_short_backtrace` marker to backtraces so that we emit the frames
50                    // when `RUST_BACKTRACE=1`, add a new mod with `$name` here is to allow duplicate naming
51                    #[inline(never)]
52                    pub(crate) fn __rust_end_short_backtrace<'tcx>(
53                        tcx: TyCtxt<'tcx>,
54                        span: Span,
55                        key: Key<'tcx>,
56                        mode: QueryMode,
57                    ) -> Option<Erased<Value<'tcx>>> {
58                        #[cfg(debug_assertions)]
59                        let _guard = tracing::span!(tracing::Level::TRACE, stringify!($name), ?key).entered();
60                        crate::execution::execute_query_incr_inner(
61                            &tcx.query_system.query_vtables.$name,
62                            tcx,
63                            span,
64                            key,
65                            mode
66                        )
67                    }
68                }
69
70                pub(crate) mod execute_query_non_incr {
71                    use super::*;
72                    use rustc_middle::queries::$name::{Key, Value};
73
74                    #[inline(never)]
75                    pub(crate) fn __rust_end_short_backtrace<'tcx>(
76                        tcx: TyCtxt<'tcx>,
77                        span: Span,
78                        key: Key<'tcx>,
79                        __mode: QueryMode,
80                    ) -> Option<Erased<Value<'tcx>>> {
81                        Some(crate::execution::execute_query_non_incr_inner(
82                            &tcx.query_system.query_vtables.$name,
83                            tcx,
84                            span,
85                            key,
86                        ))
87                    }
88                }
89
90                /// Defines an `invoke_provider` function that calls the query's provider,
91                /// to be used as a function pointer in the query's vtable.
92                ///
93                /// To mark a short-backtrace boundary, the function's actual name
94                /// (after demangling) must be `__rust_begin_short_backtrace`.
95                mod invoke_provider_fn {
96                    use super::*;
97                    use rustc_middle::queries::$name::{Key, Value, provided_to_erased};
98
99                    #[inline(never)]
100                    pub(crate) fn __rust_begin_short_backtrace<'tcx>(
101                        tcx: TyCtxt<'tcx>,
102                        key: Key<'tcx>,
103                    ) -> Erased<Value<'tcx>> {
104                        #[cfg(debug_assertions)]
105                        let _guard = tracing::span!(tracing::Level::TRACE, stringify!($name), ?key).entered();
106
107                        // Call the actual provider function for this query.
108
109                        #[cfg($separate_provide_extern)]
110                        let provided_value = if let Some(local_key) = key.as_local_key() {
111                            (tcx.query_system.local_providers.$name)(tcx, local_key)
112                        } else {
113                            (tcx.query_system.extern_providers.$name)(tcx, key)
114                        };
115
116                        #[cfg(not($separate_provide_extern))]
117                        let provided_value = (tcx.query_system.local_providers.$name)(tcx, key);
118
119                        rustc_middle::ty::print::with_reduced_queries!({
120                            tracing::trace!(?provided_value);
121                        });
122
123                        // Erase the returned value, because `QueryVTable` uses erased values.
124                        // For queries with `arena_cache`, this also arena-allocates the value.
125                        provided_to_erased(tcx, provided_value)
126                    }
127                }
128
129                pub(crate) fn make_query_vtable<'tcx>(incremental: bool)
130                    -> QueryVTable<'tcx, rustc_middle::queries::$name::Cache<'tcx>>
131                {
132                    use rustc_middle::queries::$name::Value;
133
134                    QueryVTable {
135                        name: stringify!($name),
136                        anon: $anon,
137                        eval_always: $eval_always,
138                        depth_limit: $depth_limit,
139                        feedable: $feedable,
140                        dep_kind: rustc_middle::dep_graph::DepKind::$name,
141                        state: Default::default(),
142                        cache: Default::default(),
143
144                        invoke_provider_fn: self::invoke_provider_fn::__rust_begin_short_backtrace,
145
146                        #[cfg($cache_on_disk)]
147                        will_cache_on_disk_for_key_fn:
148                            rustc_middle::queries::_cache_on_disk_if_fns::$name,
149                        #[cfg(not($cache_on_disk))]
150                        will_cache_on_disk_for_key_fn: |_, _| false,
151
152                        #[cfg($cache_on_disk)]
153                        try_load_from_disk_fn: |tcx, key, prev_index, index| {
154                            use rustc_middle::queries::$name::{ProvidedValue, provided_to_erased};
155
156                            // Check the `cache_on_disk_if` condition for this key.
157                            if !rustc_middle::queries::_cache_on_disk_if_fns::$name(tcx, key) {
158                                return None;
159                            }
160
161                            let loaded_value: ProvidedValue<'tcx> =
162                                $crate::plumbing::try_load_from_disk(tcx, prev_index, index)?;
163
164                            // Arena-alloc the value if appropriate, and erase it.
165                            Some(provided_to_erased(tcx, loaded_value))
166                        },
167                        #[cfg(not($cache_on_disk))]
168                        try_load_from_disk_fn: |_tcx, _key, _prev_index, _index| None,
169
170                        #[cfg($cache_on_disk)]
171                        is_loadable_from_disk_fn: |tcx, key, index| -> bool {
172                            rustc_middle::queries::_cache_on_disk_if_fns::$name(tcx, key) &&
173                                $crate::plumbing::loadable_from_disk(tcx, index)
174                        },
175                        #[cfg(not($cache_on_disk))]
176                        is_loadable_from_disk_fn: |_tcx, _key, _index| false,
177
178                        // The default just emits `err` and then aborts.
179                        // `from_cycle_error::specialize_query_vtables` overwrites this default for
180                        // certain queries.
181                        value_from_cycle_error: |_tcx, _key, _cycle, err| {
182                            $crate::from_cycle_error::default(err)
183                        },
184
185                        #[cfg($no_hash)]
186                        hash_value_fn: None,
187                        #[cfg(not($no_hash))]
188                        hash_value_fn: Some(|hcx, erased_value: &erase::Erased<Value<'tcx>>| {
189                            let value = erase::restore_val(*erased_value);
190                            rustc_middle::dep_graph::hash_result(hcx, &value)
191                        }),
192
193                        format_value: |erased_value: &erase::Erased<Value<'tcx>>| {
194                            format!("{:?}", erase::restore_val(*erased_value))
195                        },
196                        create_tagged_key: TaggedQueryKey::$name,
197                        execute_query_fn: if incremental {
198                            crate::query_impl::$name::execute_query_incr::__rust_end_short_backtrace
199                        } else {
200                            crate::query_impl::$name::execute_query_non_incr::__rust_end_short_backtrace
201                        },
202                    }
203                }
204
205                /// Marker type that implements [`GetQueryVTable`] for this query.
206                pub(crate) enum VTableGetter {}
207
208                impl<'tcx> GetQueryVTable<'tcx> for VTableGetter {
209                    type Cache = rustc_middle::queries::$name::Cache<'tcx>;
210
211                    #[inline(always)]
212                    fn query_vtable(tcx: TyCtxt<'tcx>) -> &'tcx QueryVTable<'tcx, Self::Cache> {
213                        &tcx.query_system.query_vtables.$name
214                    }
215                }
216            }
217        )*
218
219        pub(crate) fn make_query_vtables<'tcx>(incremental: bool)
220            -> rustc_middle::queries::QueryVTables<'tcx>
221        {
222            rustc_middle::queries::QueryVTables {
223                $(
224                    $name: crate::query_impl::$name::make_query_vtable(incremental),
225                )*
226            }
227        }
228
229        /// Given a filter condition (e.g. `ALL` or `CACHE_ON_DISK`), a `tcx`,
230        /// and a closure expression that accepts `&QueryVTable`, this macro
231        /// calls that closure with each query vtable that satisfies the filter
232        /// condition.
233        ///
234        /// This needs to be a macro, because the vtables can have different
235        /// key/value/cache types for different queries.
236        ///
237        /// This macro's argument syntax is specifically intended to look like
238        /// plain Rust code, so that `for_each_query_vtable!(..)` calls will be
239        /// formatted by rustfmt.
240        ///
241        /// To avoid too much nested-macro complication, filter conditions are
242        /// implemented by hand as needed.
243        macro_rules! for_each_query_vtable {
244            // Call with all queries.
245            (ALL, $tcx:expr, $closure:expr) => {{
246                let tcx: rustc_middle::ty::TyCtxt<'_> = $tcx;
247                $(
248                    let query: &rustc_middle::query::plumbing::QueryVTable<'_, _> =
249                        &tcx.query_system.query_vtables.$name;
250                    $closure(query);
251                )*
252            }};
253
254            // Only call with queries that can potentially cache to disk.
255            //
256            // This allows the use of trait bounds that only need to be satisfied
257            // by the subset of queries that actually cache to disk.
258            (CACHE_ON_DISK, $tcx:expr, $closure:expr) => {{
259                let tcx: rustc_middle::ty::TyCtxt<'_> = $tcx;
260                $(
261                    #[cfg($cache_on_disk)]
262                    {
263                        let query: &rustc_middle::query::plumbing::QueryVTable<'_, _> =
264                            &tcx.query_system.query_vtables.$name;
265                        $closure(query);
266                    }
267                )*
268            }}
269        }
270
271        pub(crate) use for_each_query_vtable;
272    }
273}
274
275pub(crate) mod externally_implementable_items {
    use super::*;
    pub(crate) mod execute_query_incr {
        use super::*;
        use rustc_middle::queries::externally_implementable_items::{
            Key, Value,
        };
        #[inline(never)]
        pub(crate) fn __rust_end_short_backtrace<'tcx>(tcx: TyCtxt<'tcx>,
            span: Span, key: Key<'tcx>, mode: QueryMode)
            -> Option<Erased<Value<'tcx>>> {
            let _guard =
                {
                        use ::tracing::__macro_support::Callsite as _;
                        static __CALLSITE: ::tracing::callsite::DefaultCallsite =
                            {
                                static META: ::tracing::Metadata<'static> =
                                    {
                                        ::tracing_core::metadata::Metadata::new("externally_implementable_items",
                                            "rustc_query_impl::query_impl::externally_implementable_items::execute_query_incr",
                                            tracing::Level::TRACE,
                                            ::tracing_core::__macro_support::Option::Some("compiler/rustc_query_impl/src/query_impl.rs"),
                                            ::tracing_core::__macro_support::Option::Some(275u32),
                                            ::tracing_core::__macro_support::Option::Some("rustc_query_impl::query_impl::externally_implementable_items::execute_query_incr"),
                                            ::tracing_core::field::FieldSet::new(&["key"],
                                                ::tracing_core::callsite::Identifier(&__CALLSITE)),
                                            ::tracing::metadata::Kind::SPAN)
                                    };
                                ::tracing::callsite::DefaultCallsite::new(&META)
                            };
                        let mut interest = ::tracing::subscriber::Interest::never();
                        if tracing::Level::TRACE <=
                                            ::tracing::level_filters::STATIC_MAX_LEVEL &&
                                        tracing::Level::TRACE <=
                                            ::tracing::level_filters::LevelFilter::current() &&
                                    { interest = __CALLSITE.interest(); !interest.is_never() }
                                &&
                                ::tracing::__macro_support::__is_enabled(__CALLSITE.metadata(),
                                    interest) {
                            let meta = __CALLSITE.metadata();
                            ::tracing::Span::new(meta,
                                &{
                                        #[allow(unused_imports)]
                                        use ::tracing::field::{debug, display, Value};
                                        let mut iter = meta.fields().iter();
                                        meta.fields().value_set(&[(&::tracing::__macro_support::Iterator::next(&mut iter).expect("FieldSet corrupted (this is a bug)"),
                                                            ::tracing::__macro_support::Option::Some(&debug(&key) as
                                                                    &dyn Value))])
                                    })
                        } else {
                            let span =
                                ::tracing::__macro_support::__disabled_span(__CALLSITE.metadata());
                            {};
                            span
                        }
                    }.entered();
            crate::execution::execute_query_incr_inner(&tcx.query_system.query_vtables.externally_implementable_items,
                tcx, span, key, mode)
        }
    }
    pub(crate) mod execute_query_non_incr {
        use super::*;
        use rustc_middle::queries::externally_implementable_items::{
            Key, Value,
        };
        #[inline(never)]
        pub(crate) fn __rust_end_short_backtrace<'tcx>(tcx: TyCtxt<'tcx>,
            span: Span, key: Key<'tcx>, __mode: QueryMode)
            -> Option<Erased<Value<'tcx>>> {
            Some(crate::execution::execute_query_non_incr_inner(&tcx.query_system.query_vtables.externally_implementable_items,
                    tcx, span, key))
        }
    }
    /// Defines an `invoke_provider` function that calls the query's provider,
    /// to be used as a function pointer in the query's vtable.
    ///
    /// To mark a short-backtrace boundary, the function's actual name
    /// (after demangling) must be `__rust_begin_short_backtrace`.
    mod invoke_provider_fn {
        use super::*;
        use rustc_middle::queries::externally_implementable_items::{
            Key, Value, provided_to_erased,
        };
        #[inline(never)]
        pub(crate) fn __rust_begin_short_backtrace<'tcx>(tcx: TyCtxt<'tcx>,
            key: Key<'tcx>) -> Erased<Value<'tcx>> {
            let _guard =
                {
                        use ::tracing::__macro_support::Callsite as _;
                        static __CALLSITE: ::tracing::callsite::DefaultCallsite =
                            {
                                static META: ::tracing::Metadata<'static> =
                                    {
                                        ::tracing_core::metadata::Metadata::new("externally_implementable_items",
                                            "rustc_query_impl::query_impl::externally_implementable_items::invoke_provider_fn",
                                            tracing::Level::TRACE,
                                            ::tracing_core::__macro_support::Option::Some("compiler/rustc_query_impl/src/query_impl.rs"),
                                            ::tracing_core::__macro_support::Option::Some(275u32),
                                            ::tracing_core::__macro_support::Option::Some("rustc_query_impl::query_impl::externally_implementable_items::invoke_provider_fn"),
                                            ::tracing_core::field::FieldSet::new(&["key"],
                                                ::tracing_core::callsite::Identifier(&__CALLSITE)),
                                            ::tracing::metadata::Kind::SPAN)
                                    };
                                ::tracing::callsite::DefaultCallsite::new(&META)
                            };
                        let mut interest = ::tracing::subscriber::Interest::never();
                        if tracing::Level::TRACE <=
                                            ::tracing::level_filters::STATIC_MAX_LEVEL &&
                                        tracing::Level::TRACE <=
                                            ::tracing::level_filters::LevelFilter::current() &&
                                    { interest = __CALLSITE.interest(); !interest.is_never() }
                                &&
                                ::tracing::__macro_support::__is_enabled(__CALLSITE.metadata(),
                                    interest) {
                            let meta = __CALLSITE.metadata();
                            ::tracing::Span::new(meta,
                                &{
                                        #[allow(unused_imports)]
                                        use ::tracing::field::{debug, display, Value};
                                        let mut iter = meta.fields().iter();
                                        meta.fields().value_set(&[(&::tracing::__macro_support::Iterator::next(&mut iter).expect("FieldSet corrupted (this is a bug)"),
                                                            ::tracing::__macro_support::Option::Some(&debug(&key) as
                                                                    &dyn Value))])
                                    })
                        } else {
                            let span =
                                ::tracing::__macro_support::__disabled_span(__CALLSITE.metadata());
                            {};
                            span
                        }
                    }.entered();
            let provided_value =
                if let Some(local_key) = key.as_local_key() {
                    (tcx.query_system.local_providers.externally_implementable_items)(tcx,
                        local_key)
                } else {
                    (tcx.query_system.extern_providers.externally_implementable_items)(tcx,
                        key)
                };
            {
                let _guard = ReducedQueriesGuard::new();
                {
                    {
                        use ::tracing::__macro_support::Callsite as _;
                        static __CALLSITE: ::tracing::callsite::DefaultCallsite =
                            {
                                static META: ::tracing::Metadata<'static> =
                                    {
                                        ::tracing_core::metadata::Metadata::new("event compiler/rustc_query_impl/src/query_impl.rs:275",
                                            "rustc_query_impl::query_impl::externally_implementable_items::invoke_provider_fn",
                                            ::tracing::Level::TRACE,
                                            ::tracing_core::__macro_support::Option::Some("compiler/rustc_query_impl/src/query_impl.rs"),
                                            ::tracing_core::__macro_support::Option::Some(275u32),
                                            ::tracing_core::__macro_support::Option::Some("rustc_query_impl::query_impl::externally_implementable_items::invoke_provider_fn"),
                                            ::tracing_core::field::FieldSet::new(&["provided_value"],
                                                ::tracing_core::callsite::Identifier(&__CALLSITE)),
                                            ::tracing::metadata::Kind::EVENT)
                                    };
                                ::tracing::callsite::DefaultCallsite::new(&META)
                            };
                        let enabled =
                            ::tracing::Level::TRACE <=
                                        ::tracing::level_filters::STATIC_MAX_LEVEL &&
                                    ::tracing::Level::TRACE <=
                                        ::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};
                                    let mut iter = __CALLSITE.metadata().fields().iter();
                                    __CALLSITE.metadata().fields().value_set(&[(&::tracing::__macro_support::Iterator::next(&mut iter).expect("FieldSet corrupted (this is a bug)"),
                                                        ::tracing::__macro_support::Option::Some(&debug(&provided_value)
                                                                as &dyn Value))])
                                });
                        } else { ; }
                    };
                }
            };
            provided_to_erased(tcx, provided_value)
        }
    }
    pub(crate) fn make_query_vtable<'tcx>(incremental: bool)
        ->
            QueryVTable<'tcx,
            rustc_middle::queries::externally_implementable_items::Cache<'tcx>> {
        use rustc_middle::queries::externally_implementable_items::Value;
        QueryVTable {
            name: "externally_implementable_items",
            anon: false,
            eval_always: false,
            depth_limit: false,
            feedable: false,
            dep_kind: rustc_middle::dep_graph::DepKind::externally_implementable_items,
            state: Default::default(),
            cache: Default::default(),
            invoke_provider_fn: self::invoke_provider_fn::__rust_begin_short_backtrace,
            will_cache_on_disk_for_key_fn: rustc_middle::queries::_cache_on_disk_if_fns::externally_implementable_items,
            try_load_from_disk_fn: |tcx, key, prev_index, index|
                {
                    use rustc_middle::queries::externally_implementable_items::{
                        ProvidedValue, provided_to_erased,
                    };
                    if !rustc_middle::queries::_cache_on_disk_if_fns::externally_implementable_items(tcx,
                                key) {
                        return None;
                    }
                    let loaded_value: ProvidedValue<'tcx> =
                        crate::plumbing::try_load_from_disk(tcx, prev_index,
                                index)?;
                    Some(provided_to_erased(tcx, loaded_value))
                },
            is_loadable_from_disk_fn: |tcx, key, index| -> bool
                {
                    rustc_middle::queries::_cache_on_disk_if_fns::externally_implementable_items(tcx,
                            key) && crate::plumbing::loadable_from_disk(tcx, index)
                },
            value_from_cycle_error: |_tcx, _key, _cycle, err|
                { crate::from_cycle_error::default(err) },
            hash_value_fn: Some(|hcx,
                    erased_value: &erase::Erased<Value<'tcx>>|
                    {
                        let value = erase::restore_val(*erased_value);
                        rustc_middle::dep_graph::hash_result(hcx, &value)
                    }),
            format_value: |erased_value: &erase::Erased<Value<'tcx>>|
                {
                    ::alloc::__export::must_use({
                            ::alloc::fmt::format(format_args!("{0:?}",
                                    erase::restore_val(*erased_value)))
                        })
                },
            create_tagged_key: TaggedQueryKey::externally_implementable_items,
            execute_query_fn: if incremental {
                crate::query_impl::externally_implementable_items::execute_query_incr::__rust_end_short_backtrace
            } else {
                crate::query_impl::externally_implementable_items::execute_query_non_incr::__rust_end_short_backtrace
            },
        }
    }
    /// Marker type that implements [`GetQueryVTable`] for this query.
    pub(crate) enum VTableGetter {}
    impl<'tcx> GetQueryVTable<'tcx> for VTableGetter {
        type Cache =
            rustc_middle::queries::externally_implementable_items::Cache<'tcx>;
        #[inline(always)]
        fn query_vtable(tcx: TyCtxt<'tcx>)
            -> &'tcx QueryVTable<'tcx, Self::Cache> {
            &tcx.query_system.query_vtables.externally_implementable_items
        }
    }
}
pub(crate) fn make_query_vtables<'tcx>(incremental: bool)
    -> rustc_middle::queries::QueryVTables<'tcx> {
    rustc_middle::queries::QueryVTables {
        derive_macro_expansion: crate::query_impl::derive_macro_expansion::make_query_vtable(incremental),
        trigger_delayed_bug: crate::query_impl::trigger_delayed_bug::make_query_vtable(incremental),
        registered_tools: crate::query_impl::registered_tools::make_query_vtable(incremental),
        early_lint_checks: crate::query_impl::early_lint_checks::make_query_vtable(incremental),
        env_var_os: crate::query_impl::env_var_os::make_query_vtable(incremental),
        resolutions: crate::query_impl::resolutions::make_query_vtable(incremental),
        resolver_for_lowering_raw: crate::query_impl::resolver_for_lowering_raw::make_query_vtable(incremental),
        source_span: crate::query_impl::source_span::make_query_vtable(incremental),
        hir_crate: crate::query_impl::hir_crate::make_query_vtable(incremental),
        hir_crate_items: crate::query_impl::hir_crate_items::make_query_vtable(incremental),
        hir_module_items: crate::query_impl::hir_module_items::make_query_vtable(incremental),
        local_def_id_to_hir_id: crate::query_impl::local_def_id_to_hir_id::make_query_vtable(incremental),
        hir_owner_parent_q: crate::query_impl::hir_owner_parent_q::make_query_vtable(incremental),
        opt_hir_owner_nodes: crate::query_impl::opt_hir_owner_nodes::make_query_vtable(incremental),
        hir_attr_map: crate::query_impl::hir_attr_map::make_query_vtable(incremental),
        opt_ast_lowering_delayed_lints: crate::query_impl::opt_ast_lowering_delayed_lints::make_query_vtable(incremental),
        const_param_default: crate::query_impl::const_param_default::make_query_vtable(incremental),
        const_of_item: crate::query_impl::const_of_item::make_query_vtable(incremental),
        type_of: crate::query_impl::type_of::make_query_vtable(incremental),
        type_of_opaque: crate::query_impl::type_of_opaque::make_query_vtable(incremental),
        type_of_opaque_hir_typeck: crate::query_impl::type_of_opaque_hir_typeck::make_query_vtable(incremental),
        type_alias_is_lazy: crate::query_impl::type_alias_is_lazy::make_query_vtable(incremental),
        collect_return_position_impl_trait_in_trait_tys: crate::query_impl::collect_return_position_impl_trait_in_trait_tys::make_query_vtable(incremental),
        opaque_ty_origin: crate::query_impl::opaque_ty_origin::make_query_vtable(incremental),
        unsizing_params_for_adt: crate::query_impl::unsizing_params_for_adt::make_query_vtable(incremental),
        analysis: crate::query_impl::analysis::make_query_vtable(incremental),
        check_expectations: crate::query_impl::check_expectations::make_query_vtable(incremental),
        generics_of: crate::query_impl::generics_of::make_query_vtable(incremental),
        predicates_of: crate::query_impl::predicates_of::make_query_vtable(incremental),
        opaque_types_defined_by: crate::query_impl::opaque_types_defined_by::make_query_vtable(incremental),
        nested_bodies_within: crate::query_impl::nested_bodies_within::make_query_vtable(incremental),
        explicit_item_bounds: crate::query_impl::explicit_item_bounds::make_query_vtable(incremental),
        explicit_item_self_bounds: crate::query_impl::explicit_item_self_bounds::make_query_vtable(incremental),
        item_bounds: crate::query_impl::item_bounds::make_query_vtable(incremental),
        item_self_bounds: crate::query_impl::item_self_bounds::make_query_vtable(incremental),
        item_non_self_bounds: crate::query_impl::item_non_self_bounds::make_query_vtable(incremental),
        impl_super_outlives: crate::query_impl::impl_super_outlives::make_query_vtable(incremental),
        native_libraries: crate::query_impl::native_libraries::make_query_vtable(incremental),
        shallow_lint_levels_on: crate::query_impl::shallow_lint_levels_on::make_query_vtable(incremental),
        lint_expectations: crate::query_impl::lint_expectations::make_query_vtable(incremental),
        lints_that_dont_need_to_run: crate::query_impl::lints_that_dont_need_to_run::make_query_vtable(incremental),
        expn_that_defined: crate::query_impl::expn_that_defined::make_query_vtable(incremental),
        is_panic_runtime: crate::query_impl::is_panic_runtime::make_query_vtable(incremental),
        check_representability: crate::query_impl::check_representability::make_query_vtable(incremental),
        check_representability_adt_ty: crate::query_impl::check_representability_adt_ty::make_query_vtable(incremental),
        params_in_repr: crate::query_impl::params_in_repr::make_query_vtable(incremental),
        thir_body: crate::query_impl::thir_body::make_query_vtable(incremental),
        mir_keys: crate::query_impl::mir_keys::make_query_vtable(incremental),
        mir_const_qualif: crate::query_impl::mir_const_qualif::make_query_vtable(incremental),
        mir_built: crate::query_impl::mir_built::make_query_vtable(incremental),
        thir_abstract_const: crate::query_impl::thir_abstract_const::make_query_vtable(incremental),
        mir_drops_elaborated_and_const_checked: crate::query_impl::mir_drops_elaborated_and_const_checked::make_query_vtable(incremental),
        mir_for_ctfe: crate::query_impl::mir_for_ctfe::make_query_vtable(incremental),
        mir_promoted: crate::query_impl::mir_promoted::make_query_vtable(incremental),
        closure_typeinfo: crate::query_impl::closure_typeinfo::make_query_vtable(incremental),
        closure_saved_names_of_captured_variables: crate::query_impl::closure_saved_names_of_captured_variables::make_query_vtable(incremental),
        mir_coroutine_witnesses: crate::query_impl::mir_coroutine_witnesses::make_query_vtable(incremental),
        check_coroutine_obligations: crate::query_impl::check_coroutine_obligations::make_query_vtable(incremental),
        check_potentially_region_dependent_goals: crate::query_impl::check_potentially_region_dependent_goals::make_query_vtable(incremental),
        optimized_mir: crate::query_impl::optimized_mir::make_query_vtable(incremental),
        coverage_attr_on: crate::query_impl::coverage_attr_on::make_query_vtable(incremental),
        coverage_ids_info: crate::query_impl::coverage_ids_info::make_query_vtable(incremental),
        promoted_mir: crate::query_impl::promoted_mir::make_query_vtable(incremental),
        erase_and_anonymize_regions_ty: crate::query_impl::erase_and_anonymize_regions_ty::make_query_vtable(incremental),
        wasm_import_module_map: crate::query_impl::wasm_import_module_map::make_query_vtable(incremental),
        trait_explicit_predicates_and_bounds: crate::query_impl::trait_explicit_predicates_and_bounds::make_query_vtable(incremental),
        explicit_predicates_of: crate::query_impl::explicit_predicates_of::make_query_vtable(incremental),
        inferred_outlives_of: crate::query_impl::inferred_outlives_of::make_query_vtable(incremental),
        explicit_super_predicates_of: crate::query_impl::explicit_super_predicates_of::make_query_vtable(incremental),
        explicit_implied_predicates_of: crate::query_impl::explicit_implied_predicates_of::make_query_vtable(incremental),
        explicit_supertraits_containing_assoc_item: crate::query_impl::explicit_supertraits_containing_assoc_item::make_query_vtable(incremental),
        const_conditions: crate::query_impl::const_conditions::make_query_vtable(incremental),
        explicit_implied_const_bounds: crate::query_impl::explicit_implied_const_bounds::make_query_vtable(incremental),
        type_param_predicates: crate::query_impl::type_param_predicates::make_query_vtable(incremental),
        trait_def: crate::query_impl::trait_def::make_query_vtable(incremental),
        adt_def: crate::query_impl::adt_def::make_query_vtable(incremental),
        adt_destructor: crate::query_impl::adt_destructor::make_query_vtable(incremental),
        adt_async_destructor: crate::query_impl::adt_async_destructor::make_query_vtable(incremental),
        adt_sizedness_constraint: crate::query_impl::adt_sizedness_constraint::make_query_vtable(incremental),
        adt_dtorck_constraint: crate::query_impl::adt_dtorck_constraint::make_query_vtable(incremental),
        constness: crate::query_impl::constness::make_query_vtable(incremental),
        asyncness: crate::query_impl::asyncness::make_query_vtable(incremental),
        is_promotable_const_fn: crate::query_impl::is_promotable_const_fn::make_query_vtable(incremental),
        coroutine_by_move_body_def_id: crate::query_impl::coroutine_by_move_body_def_id::make_query_vtable(incremental),
        coroutine_kind: crate::query_impl::coroutine_kind::make_query_vtable(incremental),
        coroutine_for_closure: crate::query_impl::coroutine_for_closure::make_query_vtable(incremental),
        coroutine_hidden_types: crate::query_impl::coroutine_hidden_types::make_query_vtable(incremental),
        crate_variances: crate::query_impl::crate_variances::make_query_vtable(incremental),
        variances_of: crate::query_impl::variances_of::make_query_vtable(incremental),
        inferred_outlives_crate: crate::query_impl::inferred_outlives_crate::make_query_vtable(incremental),
        associated_item_def_ids: crate::query_impl::associated_item_def_ids::make_query_vtable(incremental),
        associated_item: crate::query_impl::associated_item::make_query_vtable(incremental),
        associated_items: crate::query_impl::associated_items::make_query_vtable(incremental),
        impl_item_implementor_ids: crate::query_impl::impl_item_implementor_ids::make_query_vtable(incremental),
        associated_types_for_impl_traits_in_trait_or_impl: crate::query_impl::associated_types_for_impl_traits_in_trait_or_impl::make_query_vtable(incremental),
        impl_trait_header: crate::query_impl::impl_trait_header::make_query_vtable(incremental),
        impl_self_is_guaranteed_unsized: crate::query_impl::impl_self_is_guaranteed_unsized::make_query_vtable(incremental),
        inherent_impls: crate::query_impl::inherent_impls::make_query_vtable(incremental),
        incoherent_impls: crate::query_impl::incoherent_impls::make_query_vtable(incremental),
        check_transmutes: crate::query_impl::check_transmutes::make_query_vtable(incremental),
        check_unsafety: crate::query_impl::check_unsafety::make_query_vtable(incremental),
        check_tail_calls: crate::query_impl::check_tail_calls::make_query_vtable(incremental),
        assumed_wf_types: crate::query_impl::assumed_wf_types::make_query_vtable(incremental),
        assumed_wf_types_for_rpitit: crate::query_impl::assumed_wf_types_for_rpitit::make_query_vtable(incremental),
        fn_sig: crate::query_impl::fn_sig::make_query_vtable(incremental),
        lint_mod: crate::query_impl::lint_mod::make_query_vtable(incremental),
        check_unused_traits: crate::query_impl::check_unused_traits::make_query_vtable(incremental),
        check_mod_attrs: crate::query_impl::check_mod_attrs::make_query_vtable(incremental),
        check_mod_unstable_api_usage: crate::query_impl::check_mod_unstable_api_usage::make_query_vtable(incremental),
        check_mod_privacy: crate::query_impl::check_mod_privacy::make_query_vtable(incremental),
        check_liveness: crate::query_impl::check_liveness::make_query_vtable(incremental),
        live_symbols_and_ignored_derived_traits: crate::query_impl::live_symbols_and_ignored_derived_traits::make_query_vtable(incremental),
        check_mod_deathness: crate::query_impl::check_mod_deathness::make_query_vtable(incremental),
        check_type_wf: crate::query_impl::check_type_wf::make_query_vtable(incremental),
        coerce_unsized_info: crate::query_impl::coerce_unsized_info::make_query_vtable(incremental),
        typeck: crate::query_impl::typeck::make_query_vtable(incremental),
        used_trait_imports: crate::query_impl::used_trait_imports::make_query_vtable(incremental),
        coherent_trait: crate::query_impl::coherent_trait::make_query_vtable(incremental),
        mir_borrowck: crate::query_impl::mir_borrowck::make_query_vtable(incremental),
        crate_inherent_impls: crate::query_impl::crate_inherent_impls::make_query_vtable(incremental),
        crate_inherent_impls_validity_check: crate::query_impl::crate_inherent_impls_validity_check::make_query_vtable(incremental),
        crate_inherent_impls_overlap_check: crate::query_impl::crate_inherent_impls_overlap_check::make_query_vtable(incremental),
        orphan_check_impl: crate::query_impl::orphan_check_impl::make_query_vtable(incremental),
        mir_callgraph_cyclic: crate::query_impl::mir_callgraph_cyclic::make_query_vtable(incremental),
        mir_inliner_callees: crate::query_impl::mir_inliner_callees::make_query_vtable(incremental),
        tag_for_variant: crate::query_impl::tag_for_variant::make_query_vtable(incremental),
        eval_to_allocation_raw: crate::query_impl::eval_to_allocation_raw::make_query_vtable(incremental),
        eval_static_initializer: crate::query_impl::eval_static_initializer::make_query_vtable(incremental),
        eval_to_const_value_raw: crate::query_impl::eval_to_const_value_raw::make_query_vtable(incremental),
        eval_to_valtree: crate::query_impl::eval_to_valtree::make_query_vtable(incremental),
        valtree_to_const_val: crate::query_impl::valtree_to_const_val::make_query_vtable(incremental),
        lit_to_const: crate::query_impl::lit_to_const::make_query_vtable(incremental),
        check_match: crate::query_impl::check_match::make_query_vtable(incremental),
        effective_visibilities: crate::query_impl::effective_visibilities::make_query_vtable(incremental),
        check_private_in_public: crate::query_impl::check_private_in_public::make_query_vtable(incremental),
        reachable_set: crate::query_impl::reachable_set::make_query_vtable(incremental),
        region_scope_tree: crate::query_impl::region_scope_tree::make_query_vtable(incremental),
        mir_shims: crate::query_impl::mir_shims::make_query_vtable(incremental),
        symbol_name: crate::query_impl::symbol_name::make_query_vtable(incremental),
        def_kind: crate::query_impl::def_kind::make_query_vtable(incremental),
        def_span: crate::query_impl::def_span::make_query_vtable(incremental),
        def_ident_span: crate::query_impl::def_ident_span::make_query_vtable(incremental),
        ty_span: crate::query_impl::ty_span::make_query_vtable(incremental),
        lookup_stability: crate::query_impl::lookup_stability::make_query_vtable(incremental),
        lookup_const_stability: crate::query_impl::lookup_const_stability::make_query_vtable(incremental),
        lookup_default_body_stability: crate::query_impl::lookup_default_body_stability::make_query_vtable(incremental),
        should_inherit_track_caller: crate::query_impl::should_inherit_track_caller::make_query_vtable(incremental),
        inherited_align: crate::query_impl::inherited_align::make_query_vtable(incremental),
        lookup_deprecation_entry: crate::query_impl::lookup_deprecation_entry::make_query_vtable(incremental),
        is_doc_hidden: crate::query_impl::is_doc_hidden::make_query_vtable(incremental),
        is_doc_notable_trait: crate::query_impl::is_doc_notable_trait::make_query_vtable(incremental),
        attrs_for_def: crate::query_impl::attrs_for_def::make_query_vtable(incremental),
        codegen_fn_attrs: crate::query_impl::codegen_fn_attrs::make_query_vtable(incremental),
        asm_target_features: crate::query_impl::asm_target_features::make_query_vtable(incremental),
        fn_arg_idents: crate::query_impl::fn_arg_idents::make_query_vtable(incremental),
        rendered_const: crate::query_impl::rendered_const::make_query_vtable(incremental),
        rendered_precise_capturing_args: crate::query_impl::rendered_precise_capturing_args::make_query_vtable(incremental),
        impl_parent: crate::query_impl::impl_parent::make_query_vtable(incremental),
        is_mir_available: crate::query_impl::is_mir_available::make_query_vtable(incremental),
        own_existential_vtable_entries: crate::query_impl::own_existential_vtable_entries::make_query_vtable(incremental),
        vtable_entries: crate::query_impl::vtable_entries::make_query_vtable(incremental),
        first_method_vtable_slot: crate::query_impl::first_method_vtable_slot::make_query_vtable(incremental),
        supertrait_vtable_slot: crate::query_impl::supertrait_vtable_slot::make_query_vtable(incremental),
        vtable_allocation: crate::query_impl::vtable_allocation::make_query_vtable(incremental),
        codegen_select_candidate: crate::query_impl::codegen_select_candidate::make_query_vtable(incremental),
        all_local_trait_impls: crate::query_impl::all_local_trait_impls::make_query_vtable(incremental),
        local_trait_impls: crate::query_impl::local_trait_impls::make_query_vtable(incremental),
        trait_impls_of: crate::query_impl::trait_impls_of::make_query_vtable(incremental),
        specialization_graph_of: crate::query_impl::specialization_graph_of::make_query_vtable(incremental),
        dyn_compatibility_violations: crate::query_impl::dyn_compatibility_violations::make_query_vtable(incremental),
        is_dyn_compatible: crate::query_impl::is_dyn_compatible::make_query_vtable(incremental),
        param_env: crate::query_impl::param_env::make_query_vtable(incremental),
        typing_env_normalized_for_post_analysis: crate::query_impl::typing_env_normalized_for_post_analysis::make_query_vtable(incremental),
        is_copy_raw: crate::query_impl::is_copy_raw::make_query_vtable(incremental),
        is_use_cloned_raw: crate::query_impl::is_use_cloned_raw::make_query_vtable(incremental),
        is_sized_raw: crate::query_impl::is_sized_raw::make_query_vtable(incremental),
        is_freeze_raw: crate::query_impl::is_freeze_raw::make_query_vtable(incremental),
        is_unsafe_unpin_raw: crate::query_impl::is_unsafe_unpin_raw::make_query_vtable(incremental),
        is_unpin_raw: crate::query_impl::is_unpin_raw::make_query_vtable(incremental),
        is_async_drop_raw: crate::query_impl::is_async_drop_raw::make_query_vtable(incremental),
        needs_drop_raw: crate::query_impl::needs_drop_raw::make_query_vtable(incremental),
        needs_async_drop_raw: crate::query_impl::needs_async_drop_raw::make_query_vtable(incremental),
        has_significant_drop_raw: crate::query_impl::has_significant_drop_raw::make_query_vtable(incremental),
        has_structural_eq_impl: crate::query_impl::has_structural_eq_impl::make_query_vtable(incremental),
        adt_drop_tys: crate::query_impl::adt_drop_tys::make_query_vtable(incremental),
        adt_async_drop_tys: crate::query_impl::adt_async_drop_tys::make_query_vtable(incremental),
        adt_significant_drop_tys: crate::query_impl::adt_significant_drop_tys::make_query_vtable(incremental),
        list_significant_drop_tys: crate::query_impl::list_significant_drop_tys::make_query_vtable(incremental),
        layout_of: crate::query_impl::layout_of::make_query_vtable(incremental),
        fn_abi_of_fn_ptr: crate::query_impl::fn_abi_of_fn_ptr::make_query_vtable(incremental),
        fn_abi_of_instance_no_deduced_attrs: crate::query_impl::fn_abi_of_instance_no_deduced_attrs::make_query_vtable(incremental),
        fn_abi_of_instance_raw: crate::query_impl::fn_abi_of_instance_raw::make_query_vtable(incremental),
        dylib_dependency_formats: crate::query_impl::dylib_dependency_formats::make_query_vtable(incremental),
        dependency_formats: crate::query_impl::dependency_formats::make_query_vtable(incremental),
        is_compiler_builtins: crate::query_impl::is_compiler_builtins::make_query_vtable(incremental),
        has_global_allocator: crate::query_impl::has_global_allocator::make_query_vtable(incremental),
        has_alloc_error_handler: crate::query_impl::has_alloc_error_handler::make_query_vtable(incremental),
        has_panic_handler: crate::query_impl::has_panic_handler::make_query_vtable(incremental),
        is_profiler_runtime: crate::query_impl::is_profiler_runtime::make_query_vtable(incremental),
        has_ffi_unwind_calls: crate::query_impl::has_ffi_unwind_calls::make_query_vtable(incremental),
        required_panic_strategy: crate::query_impl::required_panic_strategy::make_query_vtable(incremental),
        panic_in_drop_strategy: crate::query_impl::panic_in_drop_strategy::make_query_vtable(incremental),
        is_no_builtins: crate::query_impl::is_no_builtins::make_query_vtable(incremental),
        symbol_mangling_version: crate::query_impl::symbol_mangling_version::make_query_vtable(incremental),
        extern_crate: crate::query_impl::extern_crate::make_query_vtable(incremental),
        specialization_enabled_in: crate::query_impl::specialization_enabled_in::make_query_vtable(incremental),
        specializes: crate::query_impl::specializes::make_query_vtable(incremental),
        in_scope_traits_map: crate::query_impl::in_scope_traits_map::make_query_vtable(incremental),
        defaultness: crate::query_impl::defaultness::make_query_vtable(incremental),
        default_field: crate::query_impl::default_field::make_query_vtable(incremental),
        check_well_formed: crate::query_impl::check_well_formed::make_query_vtable(incremental),
        enforce_impl_non_lifetime_params_are_constrained: crate::query_impl::enforce_impl_non_lifetime_params_are_constrained::make_query_vtable(incremental),
        reachable_non_generics: crate::query_impl::reachable_non_generics::make_query_vtable(incremental),
        is_reachable_non_generic: crate::query_impl::is_reachable_non_generic::make_query_vtable(incremental),
        is_unreachable_local_definition: crate::query_impl::is_unreachable_local_definition::make_query_vtable(incremental),
        upstream_monomorphizations: crate::query_impl::upstream_monomorphizations::make_query_vtable(incremental),
        upstream_monomorphizations_for: crate::query_impl::upstream_monomorphizations_for::make_query_vtable(incremental),
        upstream_drop_glue_for: crate::query_impl::upstream_drop_glue_for::make_query_vtable(incremental),
        upstream_async_drop_glue_for: crate::query_impl::upstream_async_drop_glue_for::make_query_vtable(incremental),
        foreign_modules: crate::query_impl::foreign_modules::make_query_vtable(incremental),
        clashing_extern_declarations: crate::query_impl::clashing_extern_declarations::make_query_vtable(incremental),
        entry_fn: crate::query_impl::entry_fn::make_query_vtable(incremental),
        proc_macro_decls_static: crate::query_impl::proc_macro_decls_static::make_query_vtable(incremental),
        crate_hash: crate::query_impl::crate_hash::make_query_vtable(incremental),
        crate_host_hash: crate::query_impl::crate_host_hash::make_query_vtable(incremental),
        extra_filename: crate::query_impl::extra_filename::make_query_vtable(incremental),
        crate_extern_paths: crate::query_impl::crate_extern_paths::make_query_vtable(incremental),
        implementations_of_trait: crate::query_impl::implementations_of_trait::make_query_vtable(incremental),
        crate_incoherent_impls: crate::query_impl::crate_incoherent_impls::make_query_vtable(incremental),
        native_library: crate::query_impl::native_library::make_query_vtable(incremental),
        inherit_sig_for_delegation_item: crate::query_impl::inherit_sig_for_delegation_item::make_query_vtable(incremental),
        resolve_bound_vars: crate::query_impl::resolve_bound_vars::make_query_vtable(incremental),
        named_variable_map: crate::query_impl::named_variable_map::make_query_vtable(incremental),
        is_late_bound_map: crate::query_impl::is_late_bound_map::make_query_vtable(incremental),
        object_lifetime_default: crate::query_impl::object_lifetime_default::make_query_vtable(incremental),
        late_bound_vars_map: crate::query_impl::late_bound_vars_map::make_query_vtable(incremental),
        opaque_captured_lifetimes: crate::query_impl::opaque_captured_lifetimes::make_query_vtable(incremental),
        visibility: crate::query_impl::visibility::make_query_vtable(incremental),
        inhabited_predicate_adt: crate::query_impl::inhabited_predicate_adt::make_query_vtable(incremental),
        inhabited_predicate_type: crate::query_impl::inhabited_predicate_type::make_query_vtable(incremental),
        crate_dep_kind: crate::query_impl::crate_dep_kind::make_query_vtable(incremental),
        crate_name: crate::query_impl::crate_name::make_query_vtable(incremental),
        module_children: crate::query_impl::module_children::make_query_vtable(incremental),
        num_extern_def_ids: crate::query_impl::num_extern_def_ids::make_query_vtable(incremental),
        lib_features: crate::query_impl::lib_features::make_query_vtable(incremental),
        stability_implications: crate::query_impl::stability_implications::make_query_vtable(incremental),
        intrinsic_raw: crate::query_impl::intrinsic_raw::make_query_vtable(incremental),
        get_lang_items: crate::query_impl::get_lang_items::make_query_vtable(incremental),
        all_diagnostic_items: crate::query_impl::all_diagnostic_items::make_query_vtable(incremental),
        defined_lang_items: crate::query_impl::defined_lang_items::make_query_vtable(incremental),
        diagnostic_items: crate::query_impl::diagnostic_items::make_query_vtable(incremental),
        missing_lang_items: crate::query_impl::missing_lang_items::make_query_vtable(incremental),
        visible_parent_map: crate::query_impl::visible_parent_map::make_query_vtable(incremental),
        trimmed_def_paths: crate::query_impl::trimmed_def_paths::make_query_vtable(incremental),
        missing_extern_crate_item: crate::query_impl::missing_extern_crate_item::make_query_vtable(incremental),
        used_crate_source: crate::query_impl::used_crate_source::make_query_vtable(incremental),
        debugger_visualizers: crate::query_impl::debugger_visualizers::make_query_vtable(incremental),
        postorder_cnums: crate::query_impl::postorder_cnums::make_query_vtable(incremental),
        is_private_dep: crate::query_impl::is_private_dep::make_query_vtable(incremental),
        allocator_kind: crate::query_impl::allocator_kind::make_query_vtable(incremental),
        alloc_error_handler_kind: crate::query_impl::alloc_error_handler_kind::make_query_vtable(incremental),
        upvars_mentioned: crate::query_impl::upvars_mentioned::make_query_vtable(incremental),
        crates: crate::query_impl::crates::make_query_vtable(incremental),
        used_crates: crate::query_impl::used_crates::make_query_vtable(incremental),
        duplicate_crate_names: crate::query_impl::duplicate_crate_names::make_query_vtable(incremental),
        traits: crate::query_impl::traits::make_query_vtable(incremental),
        trait_impls_in_crate: crate::query_impl::trait_impls_in_crate::make_query_vtable(incremental),
        stable_order_of_exportable_impls: crate::query_impl::stable_order_of_exportable_impls::make_query_vtable(incremental),
        exportable_items: crate::query_impl::exportable_items::make_query_vtable(incremental),
        exported_non_generic_symbols: crate::query_impl::exported_non_generic_symbols::make_query_vtable(incremental),
        exported_generic_symbols: crate::query_impl::exported_generic_symbols::make_query_vtable(incremental),
        collect_and_partition_mono_items: crate::query_impl::collect_and_partition_mono_items::make_query_vtable(incremental),
        is_codegened_item: crate::query_impl::is_codegened_item::make_query_vtable(incremental),
        codegen_unit: crate::query_impl::codegen_unit::make_query_vtable(incremental),
        backend_optimization_level: crate::query_impl::backend_optimization_level::make_query_vtable(incremental),
        output_filenames: crate::query_impl::output_filenames::make_query_vtable(incremental),
        normalize_canonicalized_projection: crate::query_impl::normalize_canonicalized_projection::make_query_vtable(incremental),
        normalize_canonicalized_free_alias: crate::query_impl::normalize_canonicalized_free_alias::make_query_vtable(incremental),
        normalize_canonicalized_inherent_projection: crate::query_impl::normalize_canonicalized_inherent_projection::make_query_vtable(incremental),
        try_normalize_generic_arg_after_erasing_regions: crate::query_impl::try_normalize_generic_arg_after_erasing_regions::make_query_vtable(incremental),
        implied_outlives_bounds: crate::query_impl::implied_outlives_bounds::make_query_vtable(incremental),
        dropck_outlives: crate::query_impl::dropck_outlives::make_query_vtable(incremental),
        evaluate_obligation: crate::query_impl::evaluate_obligation::make_query_vtable(incremental),
        type_op_ascribe_user_type: crate::query_impl::type_op_ascribe_user_type::make_query_vtable(incremental),
        type_op_prove_predicate: crate::query_impl::type_op_prove_predicate::make_query_vtable(incremental),
        type_op_normalize_ty: crate::query_impl::type_op_normalize_ty::make_query_vtable(incremental),
        type_op_normalize_clause: crate::query_impl::type_op_normalize_clause::make_query_vtable(incremental),
        type_op_normalize_poly_fn_sig: crate::query_impl::type_op_normalize_poly_fn_sig::make_query_vtable(incremental),
        type_op_normalize_fn_sig: crate::query_impl::type_op_normalize_fn_sig::make_query_vtable(incremental),
        instantiate_and_check_impossible_predicates: crate::query_impl::instantiate_and_check_impossible_predicates::make_query_vtable(incremental),
        is_impossible_associated_item: crate::query_impl::is_impossible_associated_item::make_query_vtable(incremental),
        method_autoderef_steps: crate::query_impl::method_autoderef_steps::make_query_vtable(incremental),
        evaluate_root_goal_for_proof_tree_raw: crate::query_impl::evaluate_root_goal_for_proof_tree_raw::make_query_vtable(incremental),
        rust_target_features: crate::query_impl::rust_target_features::make_query_vtable(incremental),
        implied_target_features: crate::query_impl::implied_target_features::make_query_vtable(incremental),
        features_query: crate::query_impl::features_query::make_query_vtable(incremental),
        crate_for_resolver: crate::query_impl::crate_for_resolver::make_query_vtable(incremental),
        resolve_instance_raw: crate::query_impl::resolve_instance_raw::make_query_vtable(incremental),
        reveal_opaque_types_in_bounds: crate::query_impl::reveal_opaque_types_in_bounds::make_query_vtable(incremental),
        limits: crate::query_impl::limits::make_query_vtable(incremental),
        diagnostic_hir_wf_check: crate::query_impl::diagnostic_hir_wf_check::make_query_vtable(incremental),
        global_backend_features: crate::query_impl::global_backend_features::make_query_vtable(incremental),
        check_validity_requirement: crate::query_impl::check_validity_requirement::make_query_vtable(incremental),
        compare_impl_item: crate::query_impl::compare_impl_item::make_query_vtable(incremental),
        deduced_param_attrs: crate::query_impl::deduced_param_attrs::make_query_vtable(incremental),
        doc_link_resolutions: crate::query_impl::doc_link_resolutions::make_query_vtable(incremental),
        doc_link_traits_in_scope: crate::query_impl::doc_link_traits_in_scope::make_query_vtable(incremental),
        stripped_cfg_items: crate::query_impl::stripped_cfg_items::make_query_vtable(incremental),
        generics_require_sized_self: crate::query_impl::generics_require_sized_self::make_query_vtable(incremental),
        cross_crate_inlinable: crate::query_impl::cross_crate_inlinable::make_query_vtable(incremental),
        check_mono_item: crate::query_impl::check_mono_item::make_query_vtable(incremental),
        skip_move_check_fns: crate::query_impl::skip_move_check_fns::make_query_vtable(incremental),
        items_of_instance: crate::query_impl::items_of_instance::make_query_vtable(incremental),
        size_estimate: crate::query_impl::size_estimate::make_query_vtable(incremental),
        anon_const_kind: crate::query_impl::anon_const_kind::make_query_vtable(incremental),
        trivial_const: crate::query_impl::trivial_const::make_query_vtable(incremental),
        sanitizer_settings_for: crate::query_impl::sanitizer_settings_for::make_query_vtable(incremental),
        check_externally_implementable_items: crate::query_impl::check_externally_implementable_items::make_query_vtable(incremental),
        externally_implementable_items: crate::query_impl::externally_implementable_items::make_query_vtable(incremental),
    }
}
/// Given a filter condition (e.g. `ALL` or `CACHE_ON_DISK`), a `tcx`,
/// and a closure expression that accepts `&QueryVTable`, this macro
/// calls that closure with each query vtable that satisfies the filter
/// condition.
///
/// This needs to be a macro, because the vtables can have different
/// key/value/cache types for different queries.
///
/// This macro's argument syntax is specifically intended to look like
/// plain Rust code, so that `for_each_query_vtable!(..)` calls will be
/// formatted by rustfmt.
///
/// To avoid too much nested-macro complication, filter conditions are
/// implemented by hand as needed.
macro_rules! for_each_query_vtable {
    (ALL, $tcx : expr, $closure : expr) =>
    {{
            let tcx : rustc_middle :: ty :: TyCtxt < '_ > = $tcx; let query :
            & rustc_middle :: query :: plumbing :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.derive_macro_expansion;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.trigger_delayed_bug;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.registered_tools; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.early_lint_checks;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.env_var_os; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.resolutions; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.resolver_for_lowering_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.source_span; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.hir_crate; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.hir_crate_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.hir_module_items; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.local_def_id_to_hir_id;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.hir_owner_parent_q;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.opt_hir_owner_nodes;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.hir_attr_map; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = &
            tcx.query_system.query_vtables.opt_ast_lowering_delayed_lints;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.const_param_default;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.const_of_item; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.type_of; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.type_of_opaque;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_of_opaque_hir_typeck;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_alias_is_lazy;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.collect_return_position_impl_trait_in_trait_tys;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.opaque_ty_origin; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.unsizing_params_for_adt;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.analysis; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.check_expectations;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.generics_of; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.predicates_of;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.opaque_types_defined_by;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.nested_bodies_within;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.explicit_item_bounds;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.explicit_item_self_bounds;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.item_bounds; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.item_self_bounds;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.item_non_self_bounds;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.impl_super_outlives;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.native_libraries; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.shallow_lint_levels_on;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.lint_expectations; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.lints_that_dont_need_to_run;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.expn_that_defined; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.is_panic_runtime;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_representability;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_representability_adt_ty;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.params_in_repr; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.thir_body;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.mir_keys; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.mir_const_qualif;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.mir_built; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.thir_abstract_const;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.mir_drops_elaborated_and_const_checked;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.mir_for_ctfe; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.mir_promoted;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.closure_typeinfo; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.closure_saved_names_of_captured_variables;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.mir_coroutine_witnesses;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_coroutine_obligations;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_potentially_region_dependent_goals;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.optimized_mir; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.coverage_attr_on;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.coverage_ids_info; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.promoted_mir;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.erase_and_anonymize_regions_ty;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.wasm_import_module_map;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.trait_explicit_predicates_and_bounds;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.explicit_predicates_of;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.inferred_outlives_of;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.explicit_super_predicates_of;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.explicit_implied_predicates_of;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.explicit_supertraits_containing_assoc_item;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.const_conditions; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.explicit_implied_const_bounds;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_param_predicates;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.trait_def; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.adt_def; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.adt_destructor;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.adt_async_destructor;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.adt_sizedness_constraint;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.adt_dtorck_constraint;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.constness; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.asyncness; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.is_promotable_const_fn;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.coroutine_by_move_body_def_id;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.coroutine_kind; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.coroutine_for_closure;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.coroutine_hidden_types;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.crate_variances; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.variances_of;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.inferred_outlives_crate;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.associated_item_def_ids;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.associated_item; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.associated_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.impl_item_implementor_ids;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.associated_types_for_impl_traits_in_trait_or_impl;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.impl_trait_header; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.impl_self_is_guaranteed_unsized;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.inherent_impls; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.incoherent_impls;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_transmutes; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.check_unsafety;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_tail_calls; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.assumed_wf_types;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.assumed_wf_types_for_rpitit;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.fn_sig; $closure(query); let query
            : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.lint_mod; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.check_unused_traits;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_mod_attrs; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.check_mod_unstable_api_usage;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_mod_privacy; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.check_liveness;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.live_symbols_and_ignored_derived_traits;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_mod_deathness;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_type_wf; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.coerce_unsized_info;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.typeck; $closure(query); let query
            : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.used_trait_imports;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.coherent_trait; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.mir_borrowck;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.crate_inherent_impls;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.crate_inherent_impls_validity_check;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.crate_inherent_impls_overlap_check;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.orphan_check_impl; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.mir_callgraph_cyclic;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.mir_inliner_callees;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.tag_for_variant; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.eval_to_allocation_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.eval_static_initializer;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.eval_to_const_value_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.eval_to_valtree; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.valtree_to_const_val;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.lit_to_const; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.check_match; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.effective_visibilities;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_private_in_public;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.reachable_set; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.region_scope_tree;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.mir_shims; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.symbol_name; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.def_kind;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.def_span; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.def_ident_span;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.ty_span; $closure(query); let query
            : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.lookup_stability; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.lookup_const_stability;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.lookup_default_body_stability;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.should_inherit_track_caller;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.inherited_align; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.lookup_deprecation_entry;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_doc_hidden; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.is_doc_notable_trait;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.attrs_for_def; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.codegen_fn_attrs;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.asm_target_features;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.fn_arg_idents; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.rendered_const;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.rendered_precise_capturing_args;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.impl_parent; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.is_mir_available;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.own_existential_vtable_entries;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.vtable_entries; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.first_method_vtable_slot;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.supertrait_vtable_slot;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.vtable_allocation; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.codegen_select_candidate;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.all_local_trait_impls;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.local_trait_impls; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.trait_impls_of;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.specialization_graph_of;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.dyn_compatibility_violations;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_dyn_compatible; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.param_env;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.typing_env_normalized_for_post_analysis;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_copy_raw; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.is_use_cloned_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_sized_raw; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.is_freeze_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_unsafe_unpin_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_unpin_raw; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.is_async_drop_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.needs_drop_raw; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.needs_async_drop_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.has_significant_drop_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.has_structural_eq_impl;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.adt_drop_tys; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.adt_async_drop_tys;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.adt_significant_drop_tys;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.list_significant_drop_tys;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.layout_of; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.fn_abi_of_fn_ptr;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.fn_abi_of_instance_no_deduced_attrs;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.fn_abi_of_instance_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.dylib_dependency_formats;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.dependency_formats;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_compiler_builtins;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.has_global_allocator;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.has_alloc_error_handler;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.has_panic_handler; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.is_profiler_runtime;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.has_ffi_unwind_calls;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.required_panic_strategy;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.panic_in_drop_strategy;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_no_builtins; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.symbol_mangling_version;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.extern_crate; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.specialization_enabled_in;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.specializes; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.in_scope_traits_map;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.defaultness; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.default_field;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_well_formed; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.enforce_impl_non_lifetime_params_are_constrained;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.reachable_non_generics;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_reachable_non_generic;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_unreachable_local_definition;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.upstream_monomorphizations;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.upstream_monomorphizations_for;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.upstream_drop_glue_for;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.upstream_async_drop_glue_for;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.foreign_modules; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.clashing_extern_declarations;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.entry_fn; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.proc_macro_decls_static;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.crate_hash; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.crate_host_hash;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.extra_filename; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.crate_extern_paths;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.implementations_of_trait;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.crate_incoherent_impls;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.native_library; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.inherit_sig_for_delegation_item;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.resolve_bound_vars;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.named_variable_map;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_late_bound_map; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.object_lifetime_default;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.late_bound_vars_map;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.opaque_captured_lifetimes;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.visibility; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.inhabited_predicate_adt;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.inhabited_predicate_type;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.crate_dep_kind; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.crate_name;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.module_children; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.num_extern_def_ids;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.lib_features; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.stability_implications;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.intrinsic_raw; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.get_lang_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.all_diagnostic_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.defined_lang_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.diagnostic_items; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.missing_lang_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.visible_parent_map;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.trimmed_def_paths; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.missing_extern_crate_item;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.used_crate_source; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.debugger_visualizers;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.postorder_cnums; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.is_private_dep;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.allocator_kind; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.alloc_error_handler_kind;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.upvars_mentioned; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.crates;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.used_crates; $closure(query); let
            query : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _
            > = & tcx.query_system.query_vtables.duplicate_crate_names;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.traits; $closure(query); let query
            : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.trait_impls_in_crate;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.stable_order_of_exportable_impls;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.exportable_items; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.exported_non_generic_symbols;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.exported_generic_symbols;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.collect_and_partition_mono_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_codegened_item; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.codegen_unit;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.backend_optimization_level;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.output_filenames; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = &
            tcx.query_system.query_vtables.normalize_canonicalized_projection;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.normalize_canonicalized_free_alias;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.normalize_canonicalized_inherent_projection;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.try_normalize_generic_arg_after_erasing_regions;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.implied_outlives_bounds;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.dropck_outlives; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.evaluate_obligation;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_op_ascribe_user_type;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_op_prove_predicate;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_op_normalize_ty;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_op_normalize_clause;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_op_normalize_poly_fn_sig;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.type_op_normalize_fn_sig;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.instantiate_and_check_impossible_predicates;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.is_impossible_associated_item;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.method_autoderef_steps;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.evaluate_root_goal_for_proof_tree_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.rust_target_features;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.implied_target_features;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.features_query; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.crate_for_resolver;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.resolve_instance_raw;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.reveal_opaque_types_in_bounds;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.limits; $closure(query); let query
            : & rustc_middle :: query :: plumbing :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.diagnostic_hir_wf_check;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.global_backend_features;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_validity_requirement;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.compare_impl_item; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.deduced_param_attrs;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.doc_link_resolutions;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.doc_link_traits_in_scope;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.stripped_cfg_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.generics_require_sized_self;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.cross_crate_inlinable;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_mono_item; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.skip_move_check_fns;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.items_of_instance; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.size_estimate;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.anon_const_kind; $closure(query);
            let query : & rustc_middle :: query :: plumbing :: QueryVTable <
            '_, _ > = & tcx.query_system.query_vtables.trivial_const;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.sanitizer_settings_for;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.check_externally_implementable_items;
            $closure(query); let query : & rustc_middle :: query :: plumbing
            :: QueryVTable < '_, _ > = &
            tcx.query_system.query_vtables.externally_implementable_items;
            $closure(query);
        }}; (CACHE_ON_DISK, $tcx : expr, $closure : expr) =>
    {{
            let tcx : rustc_middle :: ty :: TyCtxt < '_ > = $tcx; #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.derive_macro_expansion;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.trigger_delayed_bug;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.registered_tools;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.early_lint_checks;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.env_var_os;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.resolutions;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.resolver_for_lowering_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.source_span;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.hir_crate;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.hir_crate_items;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.hir_module_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.local_def_id_to_hir_id;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.hir_owner_parent_q;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.opt_hir_owner_nodes;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.hir_attr_map;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.opt_ast_lowering_delayed_lints;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.const_param_default;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.const_of_item;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.type_of;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.type_of_opaque;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_of_opaque_hir_typeck;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_alias_is_lazy;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.collect_return_position_impl_trait_in_trait_tys;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.opaque_ty_origin;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.unsizing_params_for_adt;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.analysis;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_expectations;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.generics_of;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.predicates_of;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.opaque_types_defined_by;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.nested_bodies_within;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.explicit_item_bounds;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.explicit_item_self_bounds;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.item_bounds;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.item_self_bounds;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.item_non_self_bounds;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.impl_super_outlives;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.native_libraries;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.shallow_lint_levels_on;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.lint_expectations;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.lints_that_dont_need_to_run;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.expn_that_defined;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_panic_runtime;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_representability;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_representability_adt_ty;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.params_in_repr;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.thir_body;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.mir_keys;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.mir_const_qualif;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.mir_built;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.thir_abstract_const;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.mir_drops_elaborated_and_const_checked;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.mir_for_ctfe;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.mir_promoted;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.closure_typeinfo;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.closure_saved_names_of_captured_variables;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.mir_coroutine_witnesses;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_coroutine_obligations;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_potentially_region_dependent_goals;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.optimized_mir;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.coverage_attr_on;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.coverage_ids_info;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.promoted_mir;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.erase_and_anonymize_regions_ty;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.wasm_import_module_map;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.trait_explicit_predicates_and_bounds;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.explicit_predicates_of;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.inferred_outlives_of;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.explicit_super_predicates_of;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.explicit_implied_predicates_of;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.explicit_supertraits_containing_assoc_item;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.const_conditions;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.explicit_implied_const_bounds;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_param_predicates;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.trait_def;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.adt_def;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.adt_destructor;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.adt_async_destructor;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.adt_sizedness_constraint;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.adt_dtorck_constraint;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.constness;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.asyncness;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_promotable_const_fn;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.coroutine_by_move_body_def_id;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.coroutine_kind;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.coroutine_for_closure;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.coroutine_hidden_types;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.crate_variances;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.variances_of;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.inferred_outlives_crate;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.associated_item_def_ids;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.associated_item;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.associated_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.impl_item_implementor_ids;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.associated_types_for_impl_traits_in_trait_or_impl;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.impl_trait_header;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.impl_self_is_guaranteed_unsized;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.inherent_impls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.incoherent_impls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.check_transmutes;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.check_unsafety;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.check_tail_calls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.assumed_wf_types;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.assumed_wf_types_for_rpitit;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.fn_sig;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.lint_mod;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_unused_traits;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.check_mod_attrs;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_mod_unstable_api_usage;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_mod_privacy;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.check_liveness;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.live_symbols_and_ignored_derived_traits;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_mod_deathness;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.check_type_wf;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.coerce_unsized_info;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.typeck;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.used_trait_imports;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.coherent_trait;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.mir_borrowck;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.crate_inherent_impls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.crate_inherent_impls_validity_check;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.crate_inherent_impls_overlap_check;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.orphan_check_impl;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.mir_callgraph_cyclic;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.mir_inliner_callees;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.tag_for_variant;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.eval_to_allocation_raw;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.eval_static_initializer;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.eval_to_const_value_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.eval_to_valtree;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.valtree_to_const_val;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.lit_to_const;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.check_match;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.effective_visibilities;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_private_in_public;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.reachable_set;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.region_scope_tree;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.mir_shims;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.symbol_name;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.def_kind;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.def_span;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.def_ident_span;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.ty_span;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.lookup_stability;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.lookup_const_stability;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.lookup_default_body_stability;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.should_inherit_track_caller;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.inherited_align;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.lookup_deprecation_entry;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_doc_hidden;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_doc_notable_trait;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.attrs_for_def;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.codegen_fn_attrs;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.asm_target_features;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.fn_arg_idents;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.rendered_const;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.rendered_precise_capturing_args;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.impl_parent;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_mir_available;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.own_existential_vtable_entries;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.vtable_entries;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.first_method_vtable_slot;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.supertrait_vtable_slot;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.vtable_allocation;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.codegen_select_candidate;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.all_local_trait_impls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.local_trait_impls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.trait_impls_of;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.specialization_graph_of;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.dyn_compatibility_violations;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_dyn_compatible;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.param_env;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.typing_env_normalized_for_post_analysis;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_copy_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_use_cloned_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_sized_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_freeze_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_unsafe_unpin_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_unpin_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_async_drop_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.needs_drop_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.needs_async_drop_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.has_significant_drop_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.has_structural_eq_impl;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.adt_drop_tys;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.adt_async_drop_tys;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.adt_significant_drop_tys;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.list_significant_drop_tys;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.layout_of;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.fn_abi_of_fn_ptr;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.fn_abi_of_instance_no_deduced_attrs;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.fn_abi_of_instance_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.dylib_dependency_formats;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.dependency_formats;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_compiler_builtins;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.has_global_allocator;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.has_alloc_error_handler;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.has_panic_handler;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_profiler_runtime;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.has_ffi_unwind_calls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.required_panic_strategy;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.panic_in_drop_strategy;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_no_builtins;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.symbol_mangling_version;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.extern_crate;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.specialization_enabled_in;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.specializes;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.in_scope_traits_map;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.defaultness;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.default_field;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_well_formed;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.enforce_impl_non_lifetime_params_are_constrained;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.reachable_non_generics;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_reachable_non_generic;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_unreachable_local_definition;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.upstream_monomorphizations;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.upstream_monomorphizations_for;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.upstream_drop_glue_for;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.upstream_async_drop_glue_for;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.foreign_modules;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.clashing_extern_declarations;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.entry_fn;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.proc_macro_decls_static;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.crate_hash;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.crate_host_hash;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.extra_filename;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.crate_extern_paths;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.implementations_of_trait;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.crate_incoherent_impls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.native_library;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.inherit_sig_for_delegation_item;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.resolve_bound_vars;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.named_variable_map;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_late_bound_map;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.object_lifetime_default;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.late_bound_vars_map;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.opaque_captured_lifetimes;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.visibility;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.inhabited_predicate_adt;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.inhabited_predicate_type;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.crate_dep_kind;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.crate_name;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.module_children;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.num_extern_def_ids;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.lib_features;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.stability_implications;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.intrinsic_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.get_lang_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.all_diagnostic_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.defined_lang_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.diagnostic_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.missing_lang_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.visible_parent_map;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.trimmed_def_paths;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.missing_extern_crate_item;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.used_crate_source;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.debugger_visualizers;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.postorder_cnums;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.is_private_dep;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.allocator_kind;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.alloc_error_handler_kind;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.upvars_mentioned;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.crates;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.used_crates;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.duplicate_crate_names;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.traits;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.trait_impls_in_crate;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.stable_order_of_exportable_impls;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.exportable_items;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.exported_non_generic_symbols;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.exported_generic_symbols;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.collect_and_partition_mono_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_codegened_item;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.codegen_unit;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.backend_optimization_level;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.output_filenames;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.normalize_canonicalized_projection;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.normalize_canonicalized_free_alias;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.normalize_canonicalized_inherent_projection;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.try_normalize_generic_arg_after_erasing_regions;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.implied_outlives_bounds;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.dropck_outlives;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.evaluate_obligation;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_op_ascribe_user_type;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_op_prove_predicate;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_op_normalize_ty;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_op_normalize_clause;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_op_normalize_poly_fn_sig;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.type_op_normalize_fn_sig;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.instantiate_and_check_impossible_predicates;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.is_impossible_associated_item;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.method_autoderef_steps;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.evaluate_root_goal_for_proof_tree_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.rust_target_features;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.implied_target_features;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.features_query;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.crate_for_resolver;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.resolve_instance_raw;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.reveal_opaque_types_in_bounds;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.limits;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.diagnostic_hir_wf_check;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.global_backend_features;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_validity_requirement;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.compare_impl_item;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.deduced_param_attrs;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.doc_link_resolutions;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.doc_link_traits_in_scope;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.stripped_cfg_items;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.generics_require_sized_self;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.cross_crate_inlinable;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.check_mono_item;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.skip_move_check_fns;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.items_of_instance;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.size_estimate;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.anon_const_kind;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = & tcx.query_system.query_vtables.trivial_const;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.sanitizer_settings_for;
                $closure(query);
            } #[cfg(false)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.check_externally_implementable_items;
                $closure(query);
            } #[cfg(true)]
            {
                let query : & rustc_middle :: query :: plumbing :: QueryVTable
                < '_, _ > = &
                tcx.query_system.query_vtables.externally_implementable_items;
                $closure(query);
            }
        }}
}
pub(crate) use for_each_query_vtable;rustc_middle::queries::rustc_with_all_queries! { define_queries! }