diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-10-04 14:54:12 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-10-05 10:23:26 +1100 |
| commit | 1ddb2872ddeb5d56f7bdecfd4175fb13fc510069 (patch) | |
| tree | 372a8474eb9b217274f5cb6b4a6e33c0e55516cc /compiler/rustc_feature/src/lib.rs | |
| parent | 3c1b60c1b44b7a6e322982c5e19c0dc5e628680c (diff) | |
| download | rust-1ddb2872ddeb5d56f7bdecfd4175fb13fc510069.tar.gz rust-1ddb2872ddeb5d56f7bdecfd4175fb13fc510069.zip | |
Streamline `find_lang_feature_issue`.
It currently processes `ACTIVE_FEATURES` separately from `ACCEPTED_FEATURES`, `REMOVED_FEATURES`, and `STABLE_REMOVED_FEATURES`, for no good reason. This commit treats them uniformly.
Diffstat (limited to 'compiler/rustc_feature/src/lib.rs')
| -rw-r--r-- | compiler/rustc_feature/src/lib.rs | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/compiler/rustc_feature/src/lib.rs b/compiler/rustc_feature/src/lib.rs index b4933d6339c..d4dc5920bec 100644 --- a/compiler/rustc_feature/src/lib.rs +++ b/compiler/rustc_feature/src/lib.rs @@ -79,8 +79,8 @@ pub enum UnstableFeatures { impl UnstableFeatures { /// This takes into account `RUSTC_BOOTSTRAP`. /// - /// If `krate` is [`Some`], then setting `RUSTC_BOOTSTRAP=krate` will enable the nightly features. - /// Otherwise, only `RUSTC_BOOTSTRAP=1` will work. + /// If `krate` is [`Some`], then setting `RUSTC_BOOTSTRAP=krate` will enable the nightly + /// features. Otherwise, only `RUSTC_BOOTSTRAP=1` will work. pub fn from_environment(krate: Option<&str>) -> Self { // `true` if this is a feature-staged build, i.e., on the beta or stable channel. let disable_unstable_features = @@ -107,19 +107,18 @@ impl UnstableFeatures { } fn find_lang_feature_issue(feature: Symbol) -> Option<NonZeroU32> { - if let Some(info) = ACTIVE_FEATURES.iter().find(|t| t.name == feature) { - info.issue - } else { - // search in Accepted, Removed, or Stable Removed features - let found = ACCEPTED_FEATURES - .iter() - .chain(REMOVED_FEATURES) - .chain(STABLE_REMOVED_FEATURES) - .find(|t| t.name == feature); - match found { - Some(found) => found.issue, - None => panic!("feature `{feature}` is not declared anywhere"), - } + // Search in all the feature lists. + let found = [] + .iter() + .chain(ACTIVE_FEATURES) + .chain(ACCEPTED_FEATURES) + .chain(REMOVED_FEATURES) + .chain(STABLE_REMOVED_FEATURES) + .find(|t| t.name == feature); + + match found { + Some(found) => found.issue, + None => panic!("feature `{feature}` is not declared anywhere"), } } |
