pub mod exported_symbols;
pub mod lang_items;
pub mod lib_features {
- use rustc_data_structures::fx::{FxHashMap, FxHashSet};
- use rustc_span::symbol::Symbol;
+ use rustc_data_structures::fx::FxHashMap;
+ use rustc_span::{symbol::Symbol, Span};
#[derive(HashStable, Debug)]
pub struct LibFeatures {
- // A map from feature to stabilisation version.
- pub stable: FxHashMap<Symbol, Symbol>,
- pub unstable: FxHashSet<Symbol>,
+ /// A map from feature to stabilisation version.
+ pub stable: FxHashMap<Symbol, (Symbol, Span)>,
+ pub unstable: FxHashMap<Symbol, Span>,
}
impl LibFeatures {
let mut all_features: Vec<_> = self
.stable
.iter()
- .map(|(f, s)| (*f, Some(*s)))
- .chain(self.unstable.iter().map(|f| (*f, None)))
+ .map(|(f, (s, _))| (*f, Some(*s)))
+ .chain(self.unstable.iter().map(|(f, _)| (*f, None)))
.collect();
all_features.sort_unstable_by(|a, b| a.0.as_str().partial_cmp(b.0.as_str()).unwrap());
all_features