diff options
| author | Dylan DPC <99973273+Dylan-DPC@users.noreply.github.com> | 2022-09-14 19:26:21 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-14 19:26:21 +0530 |
| commit | 94bc08d94f13ea28be22972de014f860b06d799d (patch) | |
| tree | fd31e49038f05ca81082b41e32f2af2b7f8406a5 | |
| parent | dce471582a575c905be208d19fcda654207a5233 (diff) | |
| parent | 3a38d566bd222981b3292ba9d6870340a6d26958 (diff) | |
| download | rust-94bc08d94f13ea28be22972de014f860b06d799d.tar.gz rust-94bc08d94f13ea28be22972de014f860b06d799d.zip | |
Rollup merge of #101772 - est31:replace_placeholder_diagnostics, r=jackh726
Also replace the placeholder for the stable_features lint Follow up of #101215 and #100591 . Fixes #101766
| -rw-r--r-- | compiler/rustc_attr/src/builtin.rs | 10 | ||||
| -rw-r--r-- | compiler/rustc_passes/src/lib_features.rs | 6 | ||||
| -rw-r--r-- | compiler/rustc_passes/src/stability.rs | 13 |
3 files changed, 20 insertions, 9 deletions
diff --git a/compiler/rustc_attr/src/builtin.rs b/compiler/rustc_attr/src/builtin.rs index bb972a18acb..753f62dd589 100644 --- a/compiler/rustc_attr/src/builtin.rs +++ b/compiler/rustc_attr/src/builtin.rs @@ -21,6 +21,12 @@ use crate::session_diagnostics::{self, IncorrectReprFormatGenericCause}; /// For more, see [this pull request](https://github.com/rust-lang/rust/pull/100591). pub const VERSION_PLACEHOLDER: &str = "CURRENT_RUSTC_VERSION"; +pub fn rust_version_symbol() -> Symbol { + let version = option_env!("CFG_VERSION").unwrap_or("<current>"); + let version = version.split(' ').next().unwrap(); + Symbol::intern(&version) +} + pub fn is_builtin_attr(attr: &Attribute) -> bool { attr.is_doc_comment() || attr.ident().filter(|ident| is_builtin_attr_name(ident.name)).is_some() } @@ -495,9 +501,7 @@ where } if let Some(s) = since && s.as_str() == VERSION_PLACEHOLDER { - let version = option_env!("CFG_VERSION").unwrap_or("<current>"); - let version = version.split(' ').next().unwrap(); - since = Some(Symbol::intern(&version)); + since = Some(rust_version_symbol()); } match (feature, since) { diff --git a/compiler/rustc_passes/src/lib_features.rs b/compiler/rustc_passes/src/lib_features.rs index 5aac6943eef..04173c792a9 100644 --- a/compiler/rustc_passes/src/lib_features.rs +++ b/compiler/rustc_passes/src/lib_features.rs @@ -5,7 +5,7 @@ //! collect them instead. use rustc_ast::{Attribute, MetaItemKind}; -use rustc_attr::VERSION_PLACEHOLDER; +use rustc_attr::{rust_version_symbol, VERSION_PLACEHOLDER}; use rustc_errors::struct_span_err; use rustc_hir::intravisit::Visitor; use rustc_middle::hir::nested_filter; @@ -57,9 +57,7 @@ impl<'tcx> LibFeatureCollector<'tcx> { } if let Some(s) = since && s.as_str() == VERSION_PLACEHOLDER { - let version = option_env!("CFG_VERSION").unwrap_or("<current>"); - let version = version.split(' ').next().unwrap(); - since = Some(Symbol::intern(&version)); + since = Some(rust_version_symbol()); } if let Some(feature) = feature { diff --git a/compiler/rustc_passes/src/stability.rs b/compiler/rustc_passes/src/stability.rs index a24b191aebf..9ba1276099d 100644 --- a/compiler/rustc_passes/src/stability.rs +++ b/compiler/rustc_passes/src/stability.rs @@ -2,7 +2,8 @@ //! propagating default levels lexically from parent to children ast nodes. use rustc_attr::{ - self as attr, ConstStability, Stability, StabilityLevel, Unstable, UnstableReason, + self as attr, rust_version_symbol, ConstStability, Stability, StabilityLevel, Unstable, + UnstableReason, VERSION_PLACEHOLDER, }; use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap}; use rustc_errors::{struct_span_err, Applicability}; @@ -1106,7 +1107,15 @@ fn unnecessary_partially_stable_feature_lint( }); } -fn unnecessary_stable_feature_lint(tcx: TyCtxt<'_>, span: Span, feature: Symbol, since: Symbol) { +fn unnecessary_stable_feature_lint( + tcx: TyCtxt<'_>, + span: Span, + feature: Symbol, + mut since: Symbol, +) { + if since.as_str() == VERSION_PLACEHOLDER { + since = rust_version_symbol(); + } tcx.struct_span_lint_hir(lint::builtin::STABLE_FEATURES, hir::CRATE_HIR_ID, span, |lint| { lint.build(&format!( "the feature `{feature}` has been stable since {since} and no longer requires an \ |
