]> git.proxmox.com Git - rustc.git/blame - compiler/rustc_query_impl/src/lib.rs
New upstream version 1.57.0+dfsg1
[rustc.git] / compiler / rustc_query_impl / src / lib.rs
CommitLineData
6a06907d
XL
1//! Support for serializing the dep-graph and reloading it.
2
3#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
136023e0 4#![feature(crate_visibility_modifier)]
6a06907d 5#![feature(in_band_lifetimes)]
6a06907d
XL
6#![feature(nll)]
7#![feature(min_specialization)]
136023e0 8#![feature(once_cell)]
6a06907d 9#![feature(rustc_attrs)]
6a06907d
XL
10#![recursion_limit = "256"]
11
136023e0
XL
12#[macro_use]
13extern crate rustc_macros;
6a06907d
XL
14#[macro_use]
15extern crate rustc_middle;
16#[macro_use]
17extern crate tracing;
18
19use rustc_data_structures::fingerprint::Fingerprint;
20use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
136023e0 21use rustc_errors::DiagnosticBuilder;
6a06907d 22use rustc_middle::dep_graph;
6a06907d
XL
23use rustc_middle::ty::query::{query_keys, query_storage, query_stored, query_values};
24use rustc_middle::ty::query::{Providers, QueryEngine};
25use rustc_middle::ty::{self, TyCtxt};
c295e0f8 26use rustc_query_system::ich::StableHashingContext;
17df50a5 27use rustc_span::Span;
6a06907d
XL
28
29#[macro_use]
30mod plumbing;
31pub use plumbing::QueryCtxt;
32use plumbing::QueryStruct;
33use rustc_query_system::query::*;
34
35mod stats;
36pub use self::stats::print_stats;
37
38mod keys;
39use keys::Key;
40
41mod values;
42use self::values::Value;
43
44use rustc_query_system::query::QueryAccessors;
45pub use rustc_query_system::query::QueryConfig;
46pub(crate) use rustc_query_system::query::QueryDescription;
47
136023e0
XL
48mod on_disk_cache;
49pub use on_disk_cache::OnDiskCache;
6a06907d
XL
50
51mod profiling_support;
52pub use self::profiling_support::alloc_self_profile_query_strings;
53
94222f64
XL
54mod util;
55
6a06907d
XL
56rustc_query_append! { [define_queries!][<'tcx>] }
57
58impl<'tcx> Queries<'tcx> {
59 // Force codegen in the dyn-trait transformation in this crate.
60 pub fn as_dyn(&'tcx self) -> &'tcx dyn QueryEngine<'tcx> {
61 self
62 }
63}