remove no longer needd UnstableFeature type

This commit is contained in:
Ralf Jung 2024-10-23 08:18:19 +01:00
parent 6ad17bd30c
commit e82bca6f32
4 changed files with 9 additions and 15 deletions

View File

@ -103,7 +103,7 @@ pub fn features(sess: &Session, krate_attrs: &[Attribute], crate_name: Symbol) -
}
// If the enabled feature is unstable, record it.
if UNSTABLE_FEATURES.iter().find(|f| name == f.feature.name).is_some() {
if UNSTABLE_FEATURES.iter().find(|f| name == f.name).is_some() {
// When the ICE comes from core, alloc or std (approximation of the standard
// library), there's a chance that the person hitting the ICE may be using
// -Zbuild-std or similar with an untested target. The bug is probably in the

View File

@ -94,8 +94,8 @@ impl UnstableFeatures {
fn find_lang_feature_issue(feature: Symbol) -> Option<NonZero<u32>> {
// Search in all the feature lists.
if let Some(f) = UNSTABLE_FEATURES.iter().find(|f| f.feature.name == feature) {
return f.feature.issue;
if let Some(f) = UNSTABLE_FEATURES.iter().find(|f| f.name == feature) {
return f.issue;
}
if let Some(f) = ACCEPTED_FEATURES.iter().find(|f| f.name == feature) {
return f.issue;

View File

@ -6,10 +6,6 @@ use rustc_span::symbol::{Symbol, sym};
use super::{Feature, to_nonzero};
pub struct UnstableFeature {
pub feature: Feature,
}
#[derive(PartialEq)]
enum FeatureStatus {
Default,
@ -82,13 +78,11 @@ macro_rules! declare_features {
)+) => {
/// Unstable language features that are being implemented or being
/// considered for acceptance (stabilization) or removal.
pub const UNSTABLE_FEATURES: &[UnstableFeature] = &[
$(UnstableFeature {
feature: Feature {
name: sym::$feature,
since: $ver,
issue: to_nonzero($issue),
},
pub const UNSTABLE_FEATURES: &[Feature] = &[
$(Feature {
name: sym::$feature,
since: $ver,
issue: to_nonzero($issue),
}),+
];

View File

@ -117,7 +117,7 @@ impl<'tcx> HashStable<StableHashingContext<'tcx>> for rustc_feature::Features {
// FIXME: why do we hash something that is a compile-time constant?
for feature in rustc_feature::UNSTABLE_FEATURES.iter() {
feature.feature.name.hash_stable(hcx, hasher);
feature.name.hash_stable(hcx, hasher);
}
}
}