diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-10-05 16:08:07 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-10-05 18:01:11 +1100 |
| commit | 4602d9257de0939ff8770dcf7f10ac1832bce35f (patch) | |
| tree | fcf1d4bce5d874bcd80bc2da7169851e80e0cd54 /compiler/rustc_feature/src | |
| parent | b229be0127dacde928826f6dac697230c74eef05 (diff) | |
Rename `Features::active_features`.
The word "active" is currently used in two different and confusing ways: - `ACTIVE_FEATURES` actually means "available unstable features" - `Features::active_features` actually means "features declared in the crate's code", which can include feature within `ACTIVE_FEATURES` but also others. (This is also distinct from "enabled" features which includes declared features but also some edition-specific features automatically enabled depending on the edition in use.) This commit changes the `Features::active_features` to `Features::declared_features` which actually matches its meaning. Likewise, `Features::active` becomes `Features::declared`.
Diffstat (limited to 'compiler/rustc_feature/src')
| -rw-r--r-- | compiler/rustc_feature/src/active.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/compiler/rustc_feature/src/active.rs b/compiler/rustc_feature/src/active.rs index 3acc7308e8d..07101778ef1 100644 --- a/compiler/rustc_feature/src/active.rs +++ b/compiler/rustc_feature/src/active.rs @@ -60,8 +60,9 @@ macro_rules! declare_features { pub declared_lang_features: Vec<(Symbol, Span, Option<Symbol>)>, /// `#![feature]` attrs for non-language (library) features. pub declared_lib_features: Vec<(Symbol, Span)>, - /// Features enabled for this crate. - pub active_features: FxHashSet<Symbol>, + /// `declared_lang_features` + `declared_lib_features`. + pub declared_features: FxHashSet<Symbol>, + /// Individual features (unstable only). $( $(#[doc = $doc])* pub $feature: bool @@ -73,12 +74,14 @@ macro_rules! declare_features { $(f(stringify!($feature), self.$feature);)+ } - /// Is the given feature active? - pub fn active(&self, feature: Symbol) -> bool { - self.active_features.contains(&feature) + /// Is the given feature explicitly declared, i.e. named in a + /// `#![feature(...)]` within the code? + pub fn declared(&self, feature: Symbol) -> bool { + self.declared_features.contains(&feature) } - /// Is the given feature enabled? + /// Is the given feature enabled, i.e. declared or automatically + /// enabled due to the edition? /// /// Panics if the symbol doesn't correspond to a declared feature. pub fn enabled(&self, feature: Symbol) -> bool { |
