mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
rename lang feature lists to include LANG
This commit is contained in:
parent
e82bca6f32
commit
44638853f5
@ -11,7 +11,8 @@ use rustc_ast::{
|
|||||||
use rustc_attr as attr;
|
use rustc_attr as attr;
|
||||||
use rustc_data_structures::flat_map_in_place::FlatMapInPlace;
|
use rustc_data_structures::flat_map_in_place::FlatMapInPlace;
|
||||||
use rustc_feature::{
|
use rustc_feature::{
|
||||||
ACCEPTED_FEATURES, AttributeSafety, Features, REMOVED_FEATURES, UNSTABLE_FEATURES,
|
ACCEPTED_LANG_FEATURES, AttributeSafety, Features, REMOVED_LANG_FEATURES,
|
||||||
|
UNSTABLE_LANG_FEATURES,
|
||||||
};
|
};
|
||||||
use rustc_lint_defs::BuiltinLintDiag;
|
use rustc_lint_defs::BuiltinLintDiag;
|
||||||
use rustc_parse::validate_attr;
|
use rustc_parse::validate_attr;
|
||||||
@ -77,7 +78,7 @@ pub fn features(sess: &Session, krate_attrs: &[Attribute], crate_name: Symbol) -
|
|||||||
};
|
};
|
||||||
|
|
||||||
// If the enabled feature has been removed, issue an error.
|
// If the enabled feature has been removed, issue an error.
|
||||||
if let Some(f) = REMOVED_FEATURES.iter().find(|f| name == f.feature.name) {
|
if let Some(f) = REMOVED_LANG_FEATURES.iter().find(|f| name == f.feature.name) {
|
||||||
sess.dcx().emit_err(FeatureRemoved {
|
sess.dcx().emit_err(FeatureRemoved {
|
||||||
span: mi.span(),
|
span: mi.span(),
|
||||||
reason: f.reason.map(|reason| FeatureRemovedReason { reason }),
|
reason: f.reason.map(|reason| FeatureRemovedReason { reason }),
|
||||||
@ -86,7 +87,7 @@ pub fn features(sess: &Session, krate_attrs: &[Attribute], crate_name: Symbol) -
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If the enabled feature is stable, record it.
|
// If the enabled feature is stable, record it.
|
||||||
if let Some(f) = ACCEPTED_FEATURES.iter().find(|f| name == f.name) {
|
if let Some(f) = ACCEPTED_LANG_FEATURES.iter().find(|f| name == f.name) {
|
||||||
let since = Some(Symbol::intern(f.since));
|
let since = Some(Symbol::intern(f.since));
|
||||||
features.set_enabled_lang_feature(name, mi.span(), since);
|
features.set_enabled_lang_feature(name, mi.span(), since);
|
||||||
continue;
|
continue;
|
||||||
@ -103,7 +104,7 @@ pub fn features(sess: &Session, krate_attrs: &[Attribute], crate_name: Symbol) -
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If the enabled feature is unstable, record it.
|
// If the enabled feature is unstable, record it.
|
||||||
if UNSTABLE_FEATURES.iter().find(|f| name == f.name).is_some() {
|
if UNSTABLE_LANG_FEATURES.iter().find(|f| name == f.name).is_some() {
|
||||||
// When the ICE comes from core, alloc or std (approximation of the standard
|
// 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
|
// 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
|
// -Zbuild-std or similar with an untested target. The bug is probably in the
|
||||||
|
@ -9,7 +9,7 @@ macro_rules! declare_features {
|
|||||||
$(#[doc = $doc:tt])* (accepted, $feature:ident, $ver:expr, $issue:expr),
|
$(#[doc = $doc:tt])* (accepted, $feature:ident, $ver:expr, $issue:expr),
|
||||||
)+) => {
|
)+) => {
|
||||||
/// Formerly unstable features that have now been accepted (stabilized).
|
/// Formerly unstable features that have now been accepted (stabilized).
|
||||||
pub const ACCEPTED_FEATURES: &[Feature] = &[
|
pub const ACCEPTED_LANG_FEATURES: &[Feature] = &[
|
||||||
$(Feature {
|
$(Feature {
|
||||||
name: sym::$feature,
|
name: sym::$feature,
|
||||||
since: $ver,
|
since: $ver,
|
||||||
|
@ -94,13 +94,13 @@ impl UnstableFeatures {
|
|||||||
|
|
||||||
fn find_lang_feature_issue(feature: Symbol) -> Option<NonZero<u32>> {
|
fn find_lang_feature_issue(feature: Symbol) -> Option<NonZero<u32>> {
|
||||||
// Search in all the feature lists.
|
// Search in all the feature lists.
|
||||||
if let Some(f) = UNSTABLE_FEATURES.iter().find(|f| f.name == feature) {
|
if let Some(f) = UNSTABLE_LANG_FEATURES.iter().find(|f| f.name == feature) {
|
||||||
return f.issue;
|
return f.issue;
|
||||||
}
|
}
|
||||||
if let Some(f) = ACCEPTED_FEATURES.iter().find(|f| f.name == feature) {
|
if let Some(f) = ACCEPTED_LANG_FEATURES.iter().find(|f| f.name == feature) {
|
||||||
return f.issue;
|
return f.issue;
|
||||||
}
|
}
|
||||||
if let Some(f) = REMOVED_FEATURES.iter().find(|f| f.feature.name == feature) {
|
if let Some(f) = REMOVED_LANG_FEATURES.iter().find(|f| f.feature.name == feature) {
|
||||||
return f.feature.issue;
|
return f.feature.issue;
|
||||||
}
|
}
|
||||||
panic!("feature `{feature}` is not declared anywhere");
|
panic!("feature `{feature}` is not declared anywhere");
|
||||||
@ -127,12 +127,12 @@ pub fn find_feature_issue(feature: Symbol, issue: GateIssue) -> Option<NonZero<u
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub use accepted::ACCEPTED_FEATURES;
|
pub use accepted::ACCEPTED_LANG_FEATURES;
|
||||||
pub use builtin_attrs::{
|
pub use builtin_attrs::{
|
||||||
AttributeDuplicates, AttributeGate, AttributeSafety, AttributeTemplate, AttributeType,
|
AttributeDuplicates, AttributeGate, AttributeSafety, AttributeTemplate, AttributeType,
|
||||||
BUILTIN_ATTRIBUTE_MAP, BUILTIN_ATTRIBUTES, BuiltinAttribute, GatedCfg, deprecated_attributes,
|
BUILTIN_ATTRIBUTE_MAP, BUILTIN_ATTRIBUTES, BuiltinAttribute, GatedCfg, deprecated_attributes,
|
||||||
encode_cross_crate, find_gated_cfg, is_builtin_attr_name, is_stable_diagnostic_attribute,
|
encode_cross_crate, find_gated_cfg, is_builtin_attr_name, is_stable_diagnostic_attribute,
|
||||||
is_valid_for_get_attr,
|
is_valid_for_get_attr,
|
||||||
};
|
};
|
||||||
pub use removed::REMOVED_FEATURES;
|
pub use removed::REMOVED_LANG_FEATURES;
|
||||||
pub use unstable::{Features, INCOMPATIBLE_FEATURES, UNSTABLE_FEATURES};
|
pub use unstable::{Features, INCOMPATIBLE_FEATURES, UNSTABLE_LANG_FEATURES};
|
||||||
|
@ -14,7 +14,7 @@ macro_rules! declare_features {
|
|||||||
$(#[doc = $doc:tt])* (removed, $feature:ident, $ver:expr, $issue:expr, $reason:expr),
|
$(#[doc = $doc:tt])* (removed, $feature:ident, $ver:expr, $issue:expr, $reason:expr),
|
||||||
)+) => {
|
)+) => {
|
||||||
/// Formerly unstable features that have now been removed.
|
/// Formerly unstable features that have now been removed.
|
||||||
pub const REMOVED_FEATURES: &[RemovedFeature] = &[
|
pub const REMOVED_LANG_FEATURES: &[RemovedFeature] = &[
|
||||||
$(RemovedFeature {
|
$(RemovedFeature {
|
||||||
feature: Feature {
|
feature: Feature {
|
||||||
name: sym::$feature,
|
name: sym::$feature,
|
||||||
|
@ -78,7 +78,7 @@ macro_rules! declare_features {
|
|||||||
)+) => {
|
)+) => {
|
||||||
/// Unstable language features that are being implemented or being
|
/// Unstable language features that are being implemented or being
|
||||||
/// considered for acceptance (stabilization) or removal.
|
/// considered for acceptance (stabilization) or removal.
|
||||||
pub const UNSTABLE_FEATURES: &[Feature] = &[
|
pub const UNSTABLE_LANG_FEATURES: &[Feature] = &[
|
||||||
$(Feature {
|
$(Feature {
|
||||||
name: sym::$feature,
|
name: sym::$feature,
|
||||||
since: $ver,
|
since: $ver,
|
||||||
|
@ -10,7 +10,7 @@ use rustc_attr::{
|
|||||||
};
|
};
|
||||||
use rustc_data_structures::fx::FxIndexMap;
|
use rustc_data_structures::fx::FxIndexMap;
|
||||||
use rustc_data_structures::unord::{ExtendUnord, UnordMap, UnordSet};
|
use rustc_data_structures::unord::{ExtendUnord, UnordMap, UnordSet};
|
||||||
use rustc_feature::ACCEPTED_FEATURES;
|
use rustc_feature::ACCEPTED_LANG_FEATURES;
|
||||||
use rustc_hir as hir;
|
use rustc_hir as hir;
|
||||||
use rustc_hir::def::{DefKind, Res};
|
use rustc_hir::def::{DefKind, Res};
|
||||||
use rustc_hir::def_id::{CRATE_DEF_ID, LOCAL_CRATE, LocalDefId, LocalModDefId};
|
use rustc_hir::def_id::{CRATE_DEF_ID, LOCAL_CRATE, LocalDefId, LocalModDefId};
|
||||||
@ -248,7 +248,7 @@ impl<'a, 'tcx> Annotator<'a, 'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Stability { level: Unstable { .. }, feature } = stab {
|
if let Stability { level: Unstable { .. }, feature } = stab {
|
||||||
if ACCEPTED_FEATURES.iter().find(|f| f.name == feature).is_some() {
|
if ACCEPTED_LANG_FEATURES.iter().find(|f| f.name == feature).is_some() {
|
||||||
self.tcx
|
self.tcx
|
||||||
.dcx()
|
.dcx()
|
||||||
.emit_err(errors::UnstableAttrForAlreadyStableFeature { span, item_sp });
|
.emit_err(errors::UnstableAttrForAlreadyStableFeature { span, item_sp });
|
||||||
@ -261,7 +261,7 @@ impl<'a, 'tcx> Annotator<'a, 'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Some(ConstStability { level: Unstable { .. }, feature, .. }) = const_stab {
|
if let Some(ConstStability { level: Unstable { .. }, feature, .. }) = const_stab {
|
||||||
if ACCEPTED_FEATURES.iter().find(|f| f.name == feature).is_some() {
|
if ACCEPTED_LANG_FEATURES.iter().find(|f| f.name == feature).is_some() {
|
||||||
self.tcx.dcx().emit_err(errors::UnstableAttrForAlreadyStableFeature {
|
self.tcx.dcx().emit_err(errors::UnstableAttrForAlreadyStableFeature {
|
||||||
span: const_span.unwrap(), // If const_stab contains Some(..), same is true for const_span
|
span: const_span.unwrap(), // If const_stab contains Some(..), same is true for const_span
|
||||||
item_sp,
|
item_sp,
|
||||||
|
@ -116,7 +116,7 @@ impl<'tcx> HashStable<StableHashingContext<'tcx>> for rustc_feature::Features {
|
|||||||
self.enabled_lib_features().hash_stable(hcx, hasher);
|
self.enabled_lib_features().hash_stable(hcx, hasher);
|
||||||
|
|
||||||
// FIXME: why do we hash something that is a compile-time constant?
|
// FIXME: why do we hash something that is a compile-time constant?
|
||||||
for feature in rustc_feature::UNSTABLE_FEATURES.iter() {
|
for feature in rustc_feature::UNSTABLE_LANG_FEATURES.iter() {
|
||||||
feature.name.hash_stable(hcx, hasher);
|
feature.name.hash_stable(hcx, hasher);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user