From 2fb5d5df89897115cb4c7fba6b8da41ed665f75d Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Sun, 9 Sep 2018 15:43:28 +0200 Subject: [PATCH] stabilize `#[used]` closes #40289 --- src/libstd/lib.rs | 2 +- src/libsyntax/feature_gate.rs | 11 ++++------- src/test/run-make-fulldeps/used/used.rs | 1 - src/test/ui/run-pass/issues/issue-41628.rs | 1 - src/test/ui/used.rs | 2 -- 5 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 4278926b042..5c9e88dc57c 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -307,7 +307,7 @@ #![feature(doc_cfg)] #![feature(doc_masked)] #![feature(doc_spotlight)] -#![cfg_attr(windows, feature(used))] +#![cfg_attr(all(windows, stage0), feature(used))] #![feature(doc_alias)] #![feature(doc_keyword)] #![feature(panic_info_message)] diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 0270e36db11..cbadbf8ee16 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -349,9 +349,6 @@ pub fn walk_feature_fields(&self, mut f: F) // Allows the `try {...}` expression (active, try_blocks, "1.29.0", Some(31436), None), - // Used to preserve symbols (see llvm.used) - (active, used, "1.18.0", Some(40289), None), - // Allows module-level inline assembly by way of global_asm!() (active, global_asm, "1.18.0", Some(35119), None), @@ -674,6 +671,9 @@ pub fn walk_feature_fields(&self, mut f: F) // Allows all literals in attribute lists and values of key-value pairs. (accepted, attr_literals, "1.30.0", Some(34981), None), (accepted, panic_handler, "1.30.0", Some(44489), None), + // Used to preserve symbols (see llvm.used) + (accepted, used, "1.29.0", Some(40289), None), + ); // If you change this, please modify src/doc/unstable-book as well. You must @@ -1064,10 +1064,7 @@ pub fn is_builtin_attr(attr: &ast::Attribute) -> bool { "unwind_attributes", "#[unwind] is experimental", cfg_fn!(unwind_attributes))), - ("used", Whitelisted, Gated( - Stability::Unstable, "used", - "the `#[used]` attribute is an experimental feature", - cfg_fn!(used))), + ("used", Whitelisted, Ungated), // used in resolve ("prelude_import", Whitelisted, Gated(Stability::Unstable, diff --git a/src/test/run-make-fulldeps/used/used.rs b/src/test/run-make-fulldeps/used/used.rs index 186cd0fdf5e..6992dd94af3 100644 --- a/src/test/run-make-fulldeps/used/used.rs +++ b/src/test/run-make-fulldeps/used/used.rs @@ -9,7 +9,6 @@ // except according to those terms. #![crate_type = "lib"] -#![feature(used)] #[used] static FOO: u32 = 0; diff --git a/src/test/ui/run-pass/issues/issue-41628.rs b/src/test/ui/run-pass/issues/issue-41628.rs index 75924274f1c..f4b9588ff05 100644 --- a/src/test/ui/run-pass/issues/issue-41628.rs +++ b/src/test/ui/run-pass/issues/issue-41628.rs @@ -10,7 +10,6 @@ // run-pass #![deny(dead_code)] -#![feature(used)] #[used] static FOO: u32 = 0; diff --git a/src/test/ui/used.rs b/src/test/ui/used.rs index f170d9c25f5..b3ed8601988 100644 --- a/src/test/ui/used.rs +++ b/src/test/ui/used.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(used)] - #[used] static FOO: u32 = 0; // OK -- 2.44.0