diff --git a/compiler/rustc_feature/src/accepted.rs b/compiler/rustc_feature/src/accepted.rs index 43032bf938c0b..521168d4d8517 100644 --- a/compiler/rustc_feature/src/accepted.rs +++ b/compiler/rustc_feature/src/accepted.rs @@ -25,9 +25,6 @@ declare_features! ( // feature-group-start: for testing purposes // ------------------------------------------------------------------------- - /// A temporary feature gate used to enable parser extensions needed - /// to bootstrap fix for #5723. - (accepted, issue_5723_bootstrap, "1.0.0", None), /// These are used to test this portion of the compiler, /// they don't actually mean anything. (accepted, test_accepted_feature, "1.0.0", None), diff --git a/compiler/rustc_feature/src/removed.rs b/compiler/rustc_feature/src/removed.rs index 71a735cd8cc78..f8501ba3da296 100644 --- a/compiler/rustc_feature/src/removed.rs +++ b/compiler/rustc_feature/src/removed.rs @@ -172,6 +172,9 @@ declare_features! ( /// Allow anonymous constants from an inline `const` block in pattern position (removed, inline_const_pat, "1.88.0", Some(76001), Some("removed due to implementation concerns as it requires significant refactorings"), 138492), + /// A temporary feature gate used to enable parser extensions needed + /// to bootstrap fix for #5723. + (removed, issue_5723_bootstrap, "CURRENT_RUSTC_VERSION", None, None), /// Lazily evaluate constants. This allows constants to depend on type parameters. (removed, lazy_normalization_consts, "1.56.0", Some(72219), Some("superseded by `generic_const_exprs`"), 88369), /// Changes `impl Trait` to capture all lifetimes in scope. diff --git a/library/std/tests/volatile-fat-ptr.rs b/library/std/tests/volatile-fat-ptr.rs index b00277e7a4113..406eb7c80afb5 100644 --- a/library/std/tests/volatile-fat-ptr.rs +++ b/library/std/tests/volatile-fat-ptr.rs @@ -1,5 +1,3 @@ -#![allow(stable_features)] - use std::ptr::{read_volatile, write_volatile}; #[test] diff --git a/tests/ui/array-slice-vec/array_const_index-2.rs b/tests/ui/array-slice-vec/array_const_index-2.rs index 30338e0ab87cd..8dcfc294aae53 100644 --- a/tests/ui/array-slice-vec/array_const_index-2.rs +++ b/tests/ui/array-slice-vec/array_const_index-2.rs @@ -1,8 +1,5 @@ //@ run-pass #![allow(dead_code)] -#![allow(stable_features)] - -#![feature(const_indexing)] fn main() { const ARR: [i32; 6] = [42, 43, 44, 45, 46, 47]; diff --git a/tests/ui/array-slice-vec/slice-of-zero-size-elements.rs b/tests/ui/array-slice-vec/slice-of-zero-size-elements.rs index 7aa8a251fec5e..ea7d8f8be2bf3 100644 --- a/tests/ui/array-slice-vec/slice-of-zero-size-elements.rs +++ b/tests/ui/array-slice-vec/slice-of-zero-size-elements.rs @@ -1,10 +1,6 @@ //@ run-pass -#![allow(stable_features)] - //@ compile-flags: -C debug-assertions -#![feature(iter_to_slice)] - use std::slice; fn foo(v: &[T]) -> Option<&[T]> { diff --git a/tests/ui/borrowck/fsu-moves-and-copies.rs b/tests/ui/borrowck/fsu-moves-and-copies.rs index 397e4199bc054..6576fb51a5d2d 100644 --- a/tests/ui/borrowck/fsu-moves-and-copies.rs +++ b/tests/ui/borrowck/fsu-moves-and-copies.rs @@ -1,11 +1,9 @@ //@ run-pass #![allow(non_camel_case_types)] -#![allow(stable_features)] // Issue 4691: Ensure that functional-struct-updates operates // correctly and moves rather than copy when appropriate. -#![feature(core)] struct ncint { v: isize } fn ncint(v: isize) -> ncint { ncint { v: v } } diff --git a/tests/ui/cfg/crt-static-off-works.rs b/tests/ui/cfg/crt-static-off-works.rs index 1d77dba24b1cd..520d139915cc5 100644 --- a/tests/ui/cfg/crt-static-off-works.rs +++ b/tests/ui/cfg/crt-static-off-works.rs @@ -1,10 +1,6 @@ //@ run-pass - -#![allow(stable_features)] //@ compile-flags:-C target-feature=-crt-static -Z unstable-options //@ ignore-musl - requires changing the linker which is hard -#![feature(cfg_target_feature)] - #[cfg(not(target_feature = "crt-static"))] fn main() {} diff --git a/tests/ui/consts/const-fn.rs b/tests/ui/consts/const-fn.rs index aa9c478ea6330..34aaeac6462d5 100644 --- a/tests/ui/consts/const-fn.rs +++ b/tests/ui/consts/const-fn.rs @@ -1,10 +1,6 @@ //@ run-pass -#![allow(stable_features)] - // A very basic test of const fn functionality. -#![feature(const_indexing)] - const fn add(x: u32, y: u32) -> u32 { x + y } diff --git a/tests/ui/consts/issue-29914.rs b/tests/ui/consts/issue-29914.rs index 7897733c72389..36a82f5b95012 100644 --- a/tests/ui/consts/issue-29914.rs +++ b/tests/ui/consts/issue-29914.rs @@ -1,8 +1,4 @@ //@ run-pass -#![allow(stable_features)] - -#![feature(const_indexing)] - const ARR: [usize; 5] = [5, 4, 3, 2, 1]; fn main() { diff --git a/tests/ui/dropck/cleanup-arm-conditional.rs b/tests/ui/dropck/cleanup-arm-conditional.rs index 31331f24d6f6b..7afbf9595da5d 100644 --- a/tests/ui/dropck/cleanup-arm-conditional.rs +++ b/tests/ui/dropck/cleanup-arm-conditional.rs @@ -1,13 +1,9 @@ //@ run-pass -#![allow(stable_features)] #![allow(unused_imports)] // Test that cleanup scope for temporaries created in a match // arm is confined to the match arm itself. - -#![feature(os)] - use std::os; struct Test { x: isize } diff --git a/tests/ui/dst/dst-coerce-rc.rs b/tests/ui/dst/dst-coerce-rc.rs index 5ec7853a8e822..490cfaca7de92 100644 --- a/tests/ui/dst/dst-coerce-rc.rs +++ b/tests/ui/dst/dst-coerce-rc.rs @@ -1,10 +1,7 @@ //@ run-pass #![allow(unused_variables)] -#![allow(stable_features)] // Test a very simple custom DST coercion. -#![feature(core, rc_weak)] - use std::cell::RefCell; use std::rc::{Rc, Weak}; diff --git a/tests/ui/enum-discriminant/discriminant_value.rs b/tests/ui/enum-discriminant/discriminant_value.rs index 0d6b9166c26a3..dc3d9cb83cca1 100644 --- a/tests/ui/enum-discriminant/discriminant_value.rs +++ b/tests/ui/enum-discriminant/discriminant_value.rs @@ -1,6 +1,5 @@ //@ run-pass -#![allow(stable_features)] -#![feature(core, core_intrinsics)] +#![feature(core_intrinsics)] extern crate core; use core::intrinsics::discriminant_value; diff --git a/tests/ui/functions-closures/parallel-codegen-closures.rs b/tests/ui/functions-closures/parallel-codegen-closures.rs index 1842ac4db6060..8628376c73343 100644 --- a/tests/ui/functions-closures/parallel-codegen-closures.rs +++ b/tests/ui/functions-closures/parallel-codegen-closures.rs @@ -1,15 +1,12 @@ //@ run-pass #![allow(dead_code)] #![allow(unused_variables)] -#![allow(stable_features)] // Tests parallel codegen - this can fail if the symbol for the anonymous // closure in `sum` pollutes the second codegen unit from the first. //@ compile-flags: -C codegen_units=2 -#![feature(iter_arith)] - mod a { fn foo() { let x = ["a", "bob", "c"]; diff --git a/tests/ui/inference/iterator-sum-array-15673.rs b/tests/ui/inference/iterator-sum-array-15673.rs index c3d94415affda..b8d9fd994218e 100644 --- a/tests/ui/inference/iterator-sum-array-15673.rs +++ b/tests/ui/inference/iterator-sum-array-15673.rs @@ -1,9 +1,6 @@ //! Regression test for https://github.com/rust-lang/rust/issues/15673 //@ run-pass -#![allow(stable_features)] - -#![feature(iter_arith)] fn main() { let x: [u64; 3] = [1, 2, 3]; diff --git a/tests/ui/issues/issue-20644.rs b/tests/ui/issues/issue-20644.rs index 5f7e4054f7765..09a2ee7217c3a 100644 --- a/tests/ui/issues/issue-20644.rs +++ b/tests/ui/issues/issue-20644.rs @@ -1,14 +1,10 @@ //@ build-pass #![allow(dead_code)] #![allow(unused_imports)] -#![allow(stable_features)] // A reduced version of the rustbook ice. The problem this encountered // had to do with codegen ignoring binders. - -#![feature(os)] - use std::iter; use std::os; use std::fs::File; diff --git a/tests/ui/issues/issue-21634.rs b/tests/ui/issues/issue-21634.rs index 270a893474adf..475a33eca58ec 100644 --- a/tests/ui/issues/issue-21634.rs +++ b/tests/ui/issues/issue-21634.rs @@ -1,7 +1,4 @@ //@ run-pass -#![allow(stable_features)] - -#![feature(cfg_target_feature)] #[cfg(any(not(target_arch = "x86"), target_feature = "sse2"))] fn main() { diff --git a/tests/ui/issues/issue-29663.rs b/tests/ui/issues/issue-29663.rs index ed512f14f4ced..9f7de6b72e117 100644 --- a/tests/ui/issues/issue-29663.rs +++ b/tests/ui/issues/issue-29663.rs @@ -1,8 +1,6 @@ //@ run-pass -#![allow(stable_features)] // write_volatile causes an LLVM assert with composite types -#![feature(volatile)] use std::ptr::{read_volatile, write_volatile}; #[derive(Debug, Eq, PartialEq)] diff --git a/tests/ui/issues/issue-34780.rs b/tests/ui/issues/issue-34780.rs index ee5cc0750dceb..4470e3af682b0 100644 --- a/tests/ui/issues/issue-34780.rs +++ b/tests/ui/issues/issue-34780.rs @@ -1,6 +1,4 @@ //@ check-pass -#![allow(stable_features)] -#![feature(associated_consts)] use std::marker::PhantomData; diff --git a/tests/ui/issues/issue-42956.rs b/tests/ui/issues/issue-42956.rs index a124ca84f3c34..5d6d4249a7d88 100644 --- a/tests/ui/issues/issue-42956.rs +++ b/tests/ui/issues/issue-42956.rs @@ -1,7 +1,5 @@ //@ check-pass #![allow(dead_code)] -#![allow(stable_features)] -#![feature(associated_consts)] impl A for i32 { type Foo = u32; diff --git a/tests/ui/iterators/iter-cloned-type-inference.rs b/tests/ui/iterators/iter-cloned-type-inference.rs index 10f9558811887..3957c99cea325 100644 --- a/tests/ui/iterators/iter-cloned-type-inference.rs +++ b/tests/ui/iterators/iter-cloned-type-inference.rs @@ -1,11 +1,7 @@ //@ run-pass -#![allow(stable_features)] - // Test to see that the element type of .cloned() can be inferred // properly. Previously this would fail to deduce the type of `sum`. -#![feature(iter_arith)] - fn square_sum(v: &[i64]) -> i64 { let sum: i64 = v.iter().cloned().sum(); sum * sum diff --git a/tests/ui/iterators/iterator-type-inference-sum-15673.rs b/tests/ui/iterators/iterator-type-inference-sum-15673.rs index aee027927f2f7..4b75503df10e9 100644 --- a/tests/ui/iterators/iterator-type-inference-sum-15673.rs +++ b/tests/ui/iterators/iterator-type-inference-sum-15673.rs @@ -1,8 +1,5 @@ // https://github.com/rust-lang/rust/issues/15673 //@ run-pass -#![allow(stable_features)] - -#![feature(iter_arith)] fn main() { let x: [u64; 3] = [1, 2, 3]; diff --git a/tests/ui/macros/macro-lifetime-used-with-labels.rs b/tests/ui/macros/macro-lifetime-used-with-labels.rs index 3b51b8050b348..4489ca6b681be 100644 --- a/tests/ui/macros/macro-lifetime-used-with-labels.rs +++ b/tests/ui/macros/macro-lifetime-used-with-labels.rs @@ -1,5 +1,4 @@ //@ run-pass -#![allow(stable_features)] #![allow(unused_labels)] #![allow(unreachable_code)] diff --git a/tests/ui/macros/parse-complex-macro-invoc-op.rs b/tests/ui/macros/parse-complex-macro-invoc-op.rs index 27ead36f69d8c..2c384bdb42efe 100644 --- a/tests/ui/macros/parse-complex-macro-invoc-op.rs +++ b/tests/ui/macros/parse-complex-macro-invoc-op.rs @@ -3,14 +3,10 @@ #![allow(dead_code)] #![allow(unused_assignments)] #![allow(unused_variables)] -#![allow(stable_features)] #![allow(dropping_copy_types)] // Test parsing binary operators after macro invocations. - -#![feature(macro_rules)] - macro_rules! id { ($e: expr) => { $e } } diff --git a/tests/ui/methods/method-normalize-bounds-issue-20604.rs b/tests/ui/methods/method-normalize-bounds-issue-20604.rs index ea18fe14d157a..9f20f99b97fc4 100644 --- a/tests/ui/methods/method-normalize-bounds-issue-20604.rs +++ b/tests/ui/methods/method-normalize-bounds-issue-20604.rs @@ -1,7 +1,6 @@ //@ run-pass #![allow(dead_code)] #![allow(unused_variables)] -#![allow(stable_features)] // Test that we handle projection types which wind up important for // resolving methods. This test was reduced from a larger example; the @@ -10,8 +9,6 @@ // type projection. -#![feature(associated_types)] - trait Hasher { type Output; fn finish(&self) -> Self::Output; diff --git a/tests/ui/mir/mir_fat_ptr_drop.rs b/tests/ui/mir/mir_fat_ptr_drop.rs index ff6a0d70881f3..b832d5a4ce9fd 100644 --- a/tests/ui/mir/mir_fat_ptr_drop.rs +++ b/tests/ui/mir/mir_fat_ptr_drop.rs @@ -1,10 +1,7 @@ //@ run-pass #![allow(unused_variables)] -#![allow(stable_features)] // test that ordinary fat pointer operations work. - -#![feature(braced_empty_structs)] #![feature(rustc_attrs)] use std::sync::atomic; diff --git a/tests/ui/no_std/no-core-with-explicit-std-core.rs b/tests/ui/no_std/no-core-with-explicit-std-core.rs index 3940bcb3aa4fb..6e8e41adca07e 100644 --- a/tests/ui/no_std/no-core-with-explicit-std-core.rs +++ b/tests/ui/no_std/no-core-with-explicit-std-core.rs @@ -6,8 +6,7 @@ //@ run-pass -#![allow(stable_features)] -#![feature(no_core, core)] +#![feature(no_core)] #![no_core] extern crate core; diff --git a/tests/ui/overloaded/overloaded-autoderef.rs b/tests/ui/overloaded/overloaded-autoderef.rs index a7a07449ca890..c1a715dd2e9f5 100644 --- a/tests/ui/overloaded/overloaded-autoderef.rs +++ b/tests/ui/overloaded/overloaded-autoderef.rs @@ -1,6 +1,5 @@ //@ run-pass #![allow(unused_variables)] -#![allow(stable_features)] use std::cell::RefCell; use std::rc::Rc; diff --git a/tests/ui/overloaded/overloaded-index-autoderef.rs b/tests/ui/overloaded/overloaded-index-autoderef.rs index ab49826e9dfc9..3709bb0b5cd59 100644 --- a/tests/ui/overloaded/overloaded-index-autoderef.rs +++ b/tests/ui/overloaded/overloaded-index-autoderef.rs @@ -1,6 +1,4 @@ //@ run-pass -#![allow(stable_features)] - // Test overloaded indexing combined with autoderef. use std::ops::{Index, IndexMut}; diff --git a/tests/ui/panics/panic-handler-chain-update-hook.rs b/tests/ui/panics/panic-handler-chain-update-hook.rs index 2ae79ad236ef2..b75c21c8b3b2d 100644 --- a/tests/ui/panics/panic-handler-chain-update-hook.rs +++ b/tests/ui/panics/panic-handler-chain-update-hook.rs @@ -1,11 +1,8 @@ //@ run-pass //@ needs-unwind -#![allow(stable_features)] - //@ needs-threads //@ ignore-backends: gcc -#![feature(std_panic)] #![feature(panic_update_hook)] use std::sync::atomic::{AtomicUsize, Ordering}; diff --git a/tests/ui/panics/panic-handler-chain.rs b/tests/ui/panics/panic-handler-chain.rs index cc591c1d9992d..49b76834ffe9e 100644 --- a/tests/ui/panics/panic-handler-chain.rs +++ b/tests/ui/panics/panic-handler-chain.rs @@ -2,9 +2,6 @@ //@ needs-unwind //@ needs-threads //@ ignore-backends: gcc -#![allow(stable_features)] - -#![feature(std_panic)] use std::sync::atomic::{AtomicUsize, Ordering}; use std::panic; diff --git a/tests/ui/panics/panic-handler-flail-wildly.rs b/tests/ui/panics/panic-handler-flail-wildly.rs index d5f5195d38121..b44a388caad32 100644 --- a/tests/ui/panics/panic-handler-flail-wildly.rs +++ b/tests/ui/panics/panic-handler-flail-wildly.rs @@ -1,14 +1,11 @@ //@ run-pass //@ needs-unwind -#![allow(stable_features)] #![allow(unused_must_use)] //@ needs-threads //@ ignore-backends: gcc -#![feature(std_panic)] - use std::panic; use std::thread; diff --git a/tests/ui/panics/panic-handler-set-twice.rs b/tests/ui/panics/panic-handler-set-twice.rs index ca4ed65f5683d..aa40187f08ca2 100644 --- a/tests/ui/panics/panic-handler-set-twice.rs +++ b/tests/ui/panics/panic-handler-set-twice.rs @@ -1,9 +1,6 @@ //@ run-pass //@ needs-unwind #![allow(unused_variables)] -#![allow(stable_features)] - -#![feature(std_panic)] //@ needs-threads //@ ignore-backends: gcc diff --git a/tests/ui/regions/regions-bound-lists-feature-gate-2.rs b/tests/ui/regions/regions-bound-lists-feature-gate-2.rs index f4f27a4456dfb..6cdae0d49081e 100644 --- a/tests/ui/regions/regions-bound-lists-feature-gate-2.rs +++ b/tests/ui/regions/regions-bound-lists-feature-gate-2.rs @@ -1,8 +1,5 @@ //@ run-pass #![allow(dead_code)] -#![allow(stable_features)] - -#![feature(issue_5723_bootstrap)] trait Foo { fn dummy(&self) { } diff --git a/tests/ui/regions/regions-bound-lists-feature-gate.rs b/tests/ui/regions/regions-bound-lists-feature-gate.rs index 1bc2b7dd03efc..23878f5b406f1 100644 --- a/tests/ui/regions/regions-bound-lists-feature-gate.rs +++ b/tests/ui/regions/regions-bound-lists-feature-gate.rs @@ -1,9 +1,6 @@ //@ run-pass #![allow(dead_code)] #![allow(unused_variables)] -#![allow(stable_features)] - -#![feature(issue_5723_bootstrap)] trait Foo { fn dummy(&self) { } diff --git a/tests/ui/repr/align-with-extern-c-fn.rs b/tests/ui/repr/align-with-extern-c-fn.rs index 4d17d1e8816f2..a695f4bffe943 100644 --- a/tests/ui/repr/align-with-extern-c-fn.rs +++ b/tests/ui/repr/align-with-extern-c-fn.rs @@ -1,12 +1,9 @@ //@ run-pass -#![allow(stable_features)] #![allow(unused_variables)] // #45662 -#![feature(repr_align)] - #[repr(align(16))] pub struct A(#[allow(dead_code)] i64); diff --git a/tests/ui/simd/target-feature-mixup.rs b/tests/ui/simd/target-feature-mixup.rs index 014a9966f5cbd..5f599f38fb92f 100644 --- a/tests/ui/simd/target-feature-mixup.rs +++ b/tests/ui/simd/target-feature-mixup.rs @@ -1,13 +1,12 @@ //@ run-pass #![allow(unused_variables)] -#![allow(stable_features)] #![allow(overflowing_literals)] //@ needs-subprocess //@ ignore-fuchsia must translate zircon signal to SIGILL, FIXME (#58590) //@ ignore-backends: gcc -#![feature(repr_simd, target_feature, cfg_target_feature)] +#![feature(repr_simd)] #[path = "../../auxiliary/minisimd.rs"] mod minisimd; diff --git a/tests/ui/target-feature/target-feature-detection.rs b/tests/ui/target-feature/target-feature-detection.rs index 41fc246913125..9a9102bf7d54d 100644 --- a/tests/ui/target-feature/target-feature-detection.rs +++ b/tests/ui/target-feature/target-feature-detection.rs @@ -4,9 +4,6 @@ //@ run-pass //@ ignore-i586 (no SSE2) -#![allow(stable_features)] -#![feature(cfg_target_feature)] - fn main() { if cfg!(any(target_arch = "x86", target_arch = "x86_64")) { assert!( diff --git a/tests/ui/threads-sendsync/tls-init-on-init.rs b/tests/ui/threads-sendsync/tls-init-on-init.rs index 1cae19aae86c7..d7c110e80e85b 100644 --- a/tests/ui/threads-sendsync/tls-init-on-init.rs +++ b/tests/ui/threads-sendsync/tls-init-on-init.rs @@ -1,7 +1,5 @@ //@ run-pass -#![allow(stable_features)] //@ needs-threads -#![feature(thread_local_try_with)] use std::sync::atomic::{AtomicUsize, Ordering}; use std::thread; diff --git a/tests/ui/threads-sendsync/tls-try-with.rs b/tests/ui/threads-sendsync/tls-try-with.rs index 04071e77daa48..1d0c5de7d87f2 100644 --- a/tests/ui/threads-sendsync/tls-try-with.rs +++ b/tests/ui/threads-sendsync/tls-try-with.rs @@ -1,7 +1,5 @@ //@ run-pass -#![allow(stable_features)] //@ needs-threads -#![feature(thread_local_try_with)] use std::thread; diff --git a/tests/ui/use/use.rs b/tests/ui/use/use.rs index 25b8e529c432a..c6b6724ef7c15 100644 --- a/tests/ui/use/use.rs +++ b/tests/ui/use/use.rs @@ -1,9 +1,7 @@ //@ run-pass -#![allow(stable_features)] - #![allow(unused_imports)] -#![feature(no_core, core)] +#![feature(no_core)] #![no_core] extern crate std;