rustc_middle/middle/
mod.rs

1pub mod codegen_fn_attrs;
2pub mod debugger_visualizer;
3pub mod dependency_format;
4pub mod exported_symbols;
5pub mod lang_items;
6pub mod lib_features {
7    use rustc_data_structures::unord::UnordMap;
8    use rustc_macros::{HashStable, TyDecodable, TyEncodable};
9    use rustc_span::{Span, Symbol};
10
11    #[derive(Copy, Clone, Debug, PartialEq, Eq)]
12    #[derive(HashStable, TyEncodable, TyDecodable)]
13    pub enum FeatureStability {
14        AcceptedSince(Symbol),
15        Unstable,
16    }
17
18    #[derive(HashStable, Debug, Default)]
19    pub struct LibFeatures {
20        pub stability: UnordMap<Symbol, (FeatureStability, Span)>,
21    }
22
23    impl LibFeatures {
24        pub fn to_sorted_vec(&self) -> Vec<(Symbol, FeatureStability)> {
25            self.stability
26                .to_sorted_stable_ord()
27                .iter()
28                .map(|(&sym, &(stab, _))| (sym, stab))
29                .collect()
30        }
31    }
32}
33pub mod limits;
34pub mod privacy;
35pub mod region;
36pub mod resolve_bound_vars;
37pub mod stability;
38
39pub fn provide(providers: &mut crate::query::Providers) {
40    limits::provide(providers);
41}