about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Schneider <github35764891676564198441@oli-obk.de>2018-10-05 10:17:16 +0200
committerOliver Schneider <github35764891676564198441@oli-obk.de>2018-10-05 10:36:14 +0200
commitec74d3533a9b88505d56d0ae00a78acf2e702c92 (patch)
tree90aea3515066a7dcb1069739a194d9153e03073b
parentb8bea5a0a6aef3966008787a25949344f8cf6942 (diff)
downloadrust-ec74d3533a9b88505d56d0ae00a78acf2e702c92.tar.gz
rust-ec74d3533a9b88505d56d0ae00a78acf2e702c92.zip
Stabilize `min_const_fn`
-rw-r--r--src/liballoc/lib.rs2
-rw-r--r--src/liballoc/tests/lib.rs2
-rw-r--r--src/librustc/lib.rs2
-rw-r--r--src/librustc/ty/constness.rs2
-rw-r--r--src/librustc_target/lib.rs2
-rw-r--r--src/libstd/lib.rs2
-rw-r--r--src/libsyntax/attr/builtin.rs3
-rw-r--r--src/libsyntax/feature_gate.rs9
-rw-r--r--src/test/codegen-units/item-collection/unreferenced-const-fn.rs1
-rw-r--r--src/test/codegen/link-dead-code.rs1
-rw-r--r--src/test/compile-fail/issue-43733-2.rs1
-rw-r--r--src/test/mir-opt/lower_128bit_debug_test.rs2
-rw-r--r--src/test/mir-opt/lower_128bit_test.rs2
-rw-r--r--src/test/run-fail/issue-29798.rs1
-rw-r--r--src/test/run-pass-fulldeps/newtype_index.rs2
-rw-r--r--src/test/run-pass/consts/auxiliary/const_fn_lib.rs1
-rw-r--r--src/test/run-pass/consts/const-fn-const-eval.rs1
-rw-r--r--src/test/run-pass/consts/const-fn-method.rs1
-rw-r--r--src/test/run-pass/consts/const-fn-nested.rs2
-rw-r--r--src/test/run-pass/consts/const-meth-pattern.rs2
-rw-r--r--src/test/run-pass/consts/const-pattern-variant.rs1
-rw-r--r--src/test/run-pass/consts/const-size_of-align_of.rs1
-rw-r--r--src/test/run-pass/consts/const-unsafe-fn.rs2
-rw-r--r--src/test/run-pass/consts/consts-in-patterns.rs1
-rw-r--r--src/test/run-pass/ctfe/ice-48279.rs2
-rw-r--r--src/test/run-pass/ctfe/match-const-fn-structs.rs2
-rw-r--r--src/test/run-pass/ctfe/return-in-const-fn.rs1
-rw-r--r--src/test/run-pass/issues/auxiliary/issue-36954.rs1
-rw-r--r--src/test/run-pass/issues/issue-29927.rs1
-rw-r--r--src/test/run-pass/issues/issue-33537.rs1
-rw-r--r--src/test/run-pass/issues/issue-37991.rs1
-rw-r--r--src/test/run-pass/issues/issue29927-1.rs1
-rw-r--r--src/test/rustdoc/auxiliary/issue-27362.rs2
-rw-r--r--src/test/rustdoc/const-fn.rs1
-rw-r--r--src/test/rustdoc/const.rs2
-rw-r--r--src/test/ui/borrowck/move-in-static-initializer-issue-38520.ast.stderr4
-rw-r--r--src/test/ui/borrowck/move-in-static-initializer-issue-38520.mir.stderr4
-rw-r--r--src/test/ui/borrowck/move-in-static-initializer-issue-38520.rs2
-rw-r--r--src/test/ui/consts/auxiliary/const_fn_lib.rs1
-rw-r--r--src/test/ui/consts/const-eval/issue-43197.rs2
-rw-r--r--src/test/ui/consts/const-eval/issue-43197.stderr12
-rw-r--r--src/test/ui/consts/const-eval/issue-47971.rs2
-rw-r--r--src/test/ui/consts/const-pattern-not-const-evaluable.rs2
-rw-r--r--src/test/ui/consts/min_const_fn/cmp_fn_pointers.rs5
-rw-r--r--src/test/ui/consts/min_const_fn/cmp_fn_pointers.stderr8
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr72
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn.rs2
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn.stderr70
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr6
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_dyn.rs2
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_dyn.stderr4
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.rs2
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.stderr4
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_libstd.rs2
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_unsafe.rs2
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr14
-rw-r--r--src/test/ui/consts/min_const_fn/promotion.nll.stderr12
-rw-r--r--src/test/ui/consts/min_const_fn/promotion.rs2
-rw-r--r--src/test/ui/consts/min_const_fn/promotion.stderr12
-rw-r--r--src/test/ui/feature-gates/feature-gate-const_fn.rs4
-rw-r--r--src/test/ui/feature-gates/feature-gate-const_fn.stderr10
-rw-r--r--src/test/ui/feature-gates/feature-gate-min_const_fn.rs7
-rw-r--r--src/test/ui/feature-gates/feature-gate-min_const_fn.stderr28
-rw-r--r--src/test/ui/infinite/infinite-recursion-const-fn.rs1
-rw-r--r--src/test/ui/infinite/infinite-recursion-const-fn.stderr2
-rw-r--r--src/test/ui/issues/issue-28822.rs1
-rw-r--r--src/test/ui/unsafe/unsafe-const-fn.rs2
-rw-r--r--src/test/ui/unsafe/unsafe-const-fn.stderr2
68 files changed, 143 insertions, 223 deletions
diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs
index 5f9ceb8599c..78d1958b8fb 100644
--- a/src/liballoc/lib.rs
+++ b/src/liballoc/lib.rs
@@ -86,7 +86,7 @@
 #![feature(box_syntax)]
 #![feature(cfg_target_has_atomic)]
 #![feature(coerce_unsized)]
-#![feature(min_const_fn)]
+#![cfg_attr(stage0, feature(min_const_fn))]
 #![feature(core_intrinsics)]
 #![feature(custom_attribute)]
 #![feature(dropck_eyepatch)]
diff --git a/src/liballoc/tests/lib.rs b/src/liballoc/tests/lib.rs
index b9ba319a943..c771c41dc3e 100644
--- a/src/liballoc/tests/lib.rs
+++ b/src/liballoc/tests/lib.rs
@@ -11,7 +11,7 @@
 #![feature(allocator_api)]
 #![feature(alloc_system)]
 #![feature(box_syntax)]
-#![feature(min_const_fn)]
+#![cfg_attr(stage0, feature(min_const_fn))]
 #![feature(drain_filter)]
 #![feature(exact_size_is_empty)]
 #![feature(pattern)]
diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs
index 0ac9d415756..5519330a374 100644
--- a/src/librustc/lib.rs
+++ b/src/librustc/lib.rs
@@ -42,7 +42,7 @@
 
 #![feature(box_patterns)]
 #![feature(box_syntax)]
-#![feature(min_const_fn)]
+#![cfg_attr(stage0, feature(min_const_fn))]
 #![feature(core_intrinsics)]
 #![feature(drain_filter)]
 #![cfg_attr(windows, feature(libc))]
diff --git a/src/librustc/ty/constness.rs b/src/librustc/ty/constness.rs
index 64e677fbe12..47aea7a5f07 100644
--- a/src/librustc/ty/constness.rs
+++ b/src/librustc/ty/constness.rs
@@ -65,7 +65,7 @@ impl<'a, 'tcx> TyCtxt<'a, 'tcx, 'tcx> {
                 _ => true,
             }
         } else {
-            // users enabling the `const_fn` can do what they want
+            // users enabling the `const_fn` feature gate can do what they want
             !self.sess.features_untracked().const_fn
         }
     }
diff --git a/src/librustc_target/lib.rs b/src/librustc_target/lib.rs
index 93d61b80847..10ba27e38f4 100644
--- a/src/librustc_target/lib.rs
+++ b/src/librustc_target/lib.rs
@@ -22,7 +22,7 @@
       html_root_url = "https://doc.rust-lang.org/nightly/")]
 
 #![feature(box_syntax)]
-#![feature(min_const_fn)]
+#![cfg_attr(stage0, feature(min_const_fn))]
 #![feature(nll)]
 #![feature(slice_patterns)]
 
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index c58bd364ced..a4db8796805 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -250,7 +250,7 @@
 #![feature(cfg_target_vendor)]
 #![feature(char_error_internals)]
 #![feature(compiler_builtins_lib)]
-#![feature(min_const_fn)]
+#![cfg_attr(stage0, feature(min_const_fn))]
 #![feature(const_int_ops)]
 #![feature(const_ip)]
 #![feature(const_raw_ptr_deref)]
diff --git a/src/libsyntax/attr/builtin.rs b/src/libsyntax/attr/builtin.rs
index f1cec422420..1cc2e62a9c6 100644
--- a/src/libsyntax/attr/builtin.rs
+++ b/src/libsyntax/attr/builtin.rs
@@ -107,8 +107,7 @@ pub struct Stability {
     pub level: StabilityLevel,
     pub feature: Symbol,
     pub rustc_depr: Option<RustcDeprecation>,
-    /// `None` means the function is stable but needs to be allowed by the
-    /// `min_const_fn` feature
+    /// `None` means the function is stable but needs to be a stable const fn, too
     /// `Some` contains the feature gate required to be able to use the function
     /// as const fn
     pub const_stability: Option<Symbol>,
diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs
index adbe2f9d439..e854e3d6760 100644
--- a/src/libsyntax/feature_gate.rs
+++ b/src/libsyntax/feature_gate.rs
@@ -1806,9 +1806,6 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
                 if header.asyncness.is_async() {
                     gate_feature_post!(&self, async_await, span, "async fn is unstable");
                 }
-                if header.constness.node == ast::Constness::Const {
-                    gate_feature_post!(&self, min_const_fn, span, "const fn is unstable");
-                }
                 // stability of const fn methods are covered in
                 // visit_trait_item and visit_impl_item below; this is
                 // because default methods don't pass through this
@@ -1863,11 +1860,7 @@ impl<'a> Visitor<'a> for PostExpansionVisitor<'a> {
         }
 
         match ii.node {
-            ast::ImplItemKind::Method(ref sig, _) => {
-                if sig.header.constness.node == ast::Constness::Const {
-                    gate_feature_post!(&self, min_const_fn, ii.span, "const fn is unstable");
-                }
-            }
+            ast::ImplItemKind::Method(..) => {}
             ast::ImplItemKind::Existential(..) => {
                 gate_feature_post!(
                     &self,
diff --git a/src/test/codegen-units/item-collection/unreferenced-const-fn.rs b/src/test/codegen-units/item-collection/unreferenced-const-fn.rs
index 14624176436..c4a49fd4ec4 100644
--- a/src/test/codegen-units/item-collection/unreferenced-const-fn.rs
+++ b/src/test/codegen-units/item-collection/unreferenced-const-fn.rs
@@ -13,7 +13,6 @@
 
 // NB: We do not expect *any* monomorphization to be generated here.
 
-#![feature(min_const_fn)]
 #![deny(dead_code)]
 #![crate_type = "rlib"]
 
diff --git a/src/test/codegen/link-dead-code.rs b/src/test/codegen/link-dead-code.rs
index 3ea20aa921e..4492ad52083 100644
--- a/src/test/codegen/link-dead-code.rs
+++ b/src/test/codegen/link-dead-code.rs
@@ -10,7 +10,6 @@
 
 // compile-flags:-Clink-dead-code
 
-#![feature(min_const_fn)]
 #![crate_type = "rlib"]
 
 // This test makes sure that, when -Clink-dead-code is specified, we generate
diff --git a/src/test/compile-fail/issue-43733-2.rs b/src/test/compile-fail/issue-43733-2.rs
index fea81f0cc8f..86ae3e2113c 100644
--- a/src/test/compile-fail/issue-43733-2.rs
+++ b/src/test/compile-fail/issue-43733-2.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(min_const_fn)]
 #![feature(cfg_target_thread_local, thread_local_internals)]
 
 // On platforms *without* `#[thread_local]`, use
diff --git a/src/test/mir-opt/lower_128bit_debug_test.rs b/src/test/mir-opt/lower_128bit_debug_test.rs
index 1bf740fdec6..a51498797e4 100644
--- a/src/test/mir-opt/lower_128bit_debug_test.rs
+++ b/src/test/mir-opt/lower_128bit_debug_test.rs
@@ -15,8 +15,6 @@
 
 // compile-flags: -Z lower_128bit_ops=yes -C debug_assertions=yes
 
-#![feature(min_const_fn)]
-
 static TEST_SIGNED: i128 = const_signed(-222);
 static TEST_UNSIGNED: u128 = const_unsigned(200);
 
diff --git a/src/test/mir-opt/lower_128bit_test.rs b/src/test/mir-opt/lower_128bit_test.rs
index 235df8a6785..f64981525b8 100644
--- a/src/test/mir-opt/lower_128bit_test.rs
+++ b/src/test/mir-opt/lower_128bit_test.rs
@@ -12,8 +12,6 @@
 
 // compile-flags: -Z lower_128bit_ops=yes -C debug_assertions=no -O
 
-#![feature(min_const_fn)]
-
 static TEST_SIGNED: i128 = const_signed(-222);
 static TEST_UNSIGNED: u128 = const_unsigned(200);
 
diff --git a/src/test/run-fail/issue-29798.rs b/src/test/run-fail/issue-29798.rs
index 30efe3b9ab2..16b71f676e1 100644
--- a/src/test/run-fail/issue-29798.rs
+++ b/src/test/run-fail/issue-29798.rs
@@ -10,7 +10,6 @@
 
 // error-pattern:index out of bounds: the len is 5 but the index is 5
 
-#![feature(min_const_fn)]
 const fn test(x: usize) -> i32 {
     [42;5][x]
 }
diff --git a/src/test/run-pass-fulldeps/newtype_index.rs b/src/test/run-pass-fulldeps/newtype_index.rs
index 08e2c35e072..3cd622a33b1 100644
--- a/src/test/run-pass-fulldeps/newtype_index.rs
+++ b/src/test/run-pass-fulldeps/newtype_index.rs
@@ -1,4 +1,4 @@
-#![feature(min_const_fn, rustc_attrs, rustc_private, step_trait)]
+#![feature(rustc_attrs, rustc_private, step_trait)]
 
 #[macro_use] extern crate rustc_data_structures;
 extern crate rustc_serialize;
diff --git a/src/test/run-pass/consts/auxiliary/const_fn_lib.rs b/src/test/run-pass/consts/auxiliary/const_fn_lib.rs
index 6985a6527c8..c6ac35bfb10 100644
--- a/src/test/run-pass/consts/auxiliary/const_fn_lib.rs
+++ b/src/test/run-pass/consts/auxiliary/const_fn_lib.rs
@@ -11,6 +11,5 @@
 // Crate that exports a const fn. Used for testing cross-crate.
 
 #![crate_type="rlib"]
-#![feature(min_const_fn)]
 
 pub const fn foo() -> usize { 22 }
diff --git a/src/test/run-pass/consts/const-fn-const-eval.rs b/src/test/run-pass/consts/const-fn-const-eval.rs
index 78276f17e57..5e05865aa1b 100644
--- a/src/test/run-pass/consts/const-fn-const-eval.rs
+++ b/src/test/run-pass/consts/const-fn-const-eval.rs
@@ -10,7 +10,6 @@
 
 // run-pass
 #![allow(dead_code)]
-#![feature(min_const_fn)]
 
 const fn add(x: usize, y: usize) -> usize {
     x + y
diff --git a/src/test/run-pass/consts/const-fn-method.rs b/src/test/run-pass/consts/const-fn-method.rs
index 3ecb4fffba1..cd136774a02 100644
--- a/src/test/run-pass/consts/const-fn-method.rs
+++ b/src/test/run-pass/consts/const-fn-method.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 // run-pass
-#![feature(min_const_fn)]
 
 struct Foo { value: u32 }
 
diff --git a/src/test/run-pass/consts/const-fn-nested.rs b/src/test/run-pass/consts/const-fn-nested.rs
index 41198a901c2..8944642d2d6 100644
--- a/src/test/run-pass/consts/const-fn-nested.rs
+++ b/src/test/run-pass/consts/const-fn-nested.rs
@@ -11,8 +11,6 @@
 // run-pass
 // Test a call whose argument is the result of another call.
 
-#![feature(min_const_fn)]
-
 const fn sub(x: u32, y: u32) -> u32 {
     x - y
 }
diff --git a/src/test/run-pass/consts/const-meth-pattern.rs b/src/test/run-pass/consts/const-meth-pattern.rs
index 1762c17e943..21e011cb176 100644
--- a/src/test/run-pass/consts/const-meth-pattern.rs
+++ b/src/test/run-pass/consts/const-meth-pattern.rs
@@ -10,8 +10,6 @@
 
 // run-pass
 
-#![feature(min_const_fn)]
-
 struct A;
 
 impl A {
diff --git a/src/test/run-pass/consts/const-pattern-variant.rs b/src/test/run-pass/consts/const-pattern-variant.rs
index b0e91e616a0..095cdc09e06 100644
--- a/src/test/run-pass/consts/const-pattern-variant.rs
+++ b/src/test/run-pass/consts/const-pattern-variant.rs
@@ -10,7 +10,6 @@
 
 // run-pass
 #![allow(unreachable_patterns)]
-#![feature(min_const_fn)]
 
 #[derive(PartialEq, Eq)]
 enum Cake {
diff --git a/src/test/run-pass/consts/const-size_of-align_of.rs b/src/test/run-pass/consts/const-size_of-align_of.rs
index 6732e4f14c8..d69e5ed930b 100644
--- a/src/test/run-pass/consts/const-size_of-align_of.rs
+++ b/src/test/run-pass/consts/const-size_of-align_of.rs
@@ -10,7 +10,6 @@
 
 // run-pass
 #![allow(dead_code)]
-#![feature(min_const_fn)]
 
 use std::mem;
 
diff --git a/src/test/run-pass/consts/const-unsafe-fn.rs b/src/test/run-pass/consts/const-unsafe-fn.rs
index cb60b2fdf07..8a2f862b5a0 100644
--- a/src/test/run-pass/consts/const-unsafe-fn.rs
+++ b/src/test/run-pass/consts/const-unsafe-fn.rs
@@ -12,8 +12,6 @@
 #![allow(dead_code)]
 // A quick test of 'unsafe const fn' functionality
 
-#![feature(min_const_fn)]
-
 const unsafe fn dummy(v: u32) -> u32 {
     !v
 }
diff --git a/src/test/run-pass/consts/consts-in-patterns.rs b/src/test/run-pass/consts/consts-in-patterns.rs
index b96ad2f40a5..e2f7faa5955 100644
--- a/src/test/run-pass/consts/consts-in-patterns.rs
+++ b/src/test/run-pass/consts/consts-in-patterns.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 // run-pass
-#![feature(min_const_fn)]
 
 const FOO: isize = 10;
 const BAR: isize = 3;
diff --git a/src/test/run-pass/ctfe/ice-48279.rs b/src/test/run-pass/ctfe/ice-48279.rs
index 40fdcda355f..74a8ba64965 100644
--- a/src/test/run-pass/ctfe/ice-48279.rs
+++ b/src/test/run-pass/ctfe/ice-48279.rs
@@ -14,8 +14,6 @@
 
 // https://github.com/rust-lang/rust/issues/48279
 
-#![feature(min_const_fn)]
-
 #[derive(PartialEq, Eq)]
 pub struct NonZeroU32 {
     value: u32
diff --git a/src/test/run-pass/ctfe/match-const-fn-structs.rs b/src/test/run-pass/ctfe/match-const-fn-structs.rs
index 1c6d72d530f..e41ff906fd2 100644
--- a/src/test/run-pass/ctfe/match-const-fn-structs.rs
+++ b/src/test/run-pass/ctfe/match-const-fn-structs.rs
@@ -13,8 +13,6 @@
 
 // https://github.com/rust-lang/rust/issues/46114
 
-#![feature(min_const_fn)]
-
 #[derive(Eq, PartialEq)]
 struct A { value: u32 }
 
diff --git a/src/test/run-pass/ctfe/return-in-const-fn.rs b/src/test/run-pass/ctfe/return-in-const-fn.rs
index e0020019523..933ec588614 100644
--- a/src/test/run-pass/ctfe/return-in-const-fn.rs
+++ b/src/test/run-pass/ctfe/return-in-const-fn.rs
@@ -12,7 +12,6 @@
 
 // https://github.com/rust-lang/rust/issues/43754
 
-#![feature(min_const_fn)]
 const fn foo(x: usize) -> usize {
     return x;
 }
diff --git a/src/test/run-pass/issues/auxiliary/issue-36954.rs b/src/test/run-pass/issues/auxiliary/issue-36954.rs
index 5351a40916b..e5eafa5a5d1 100644
--- a/src/test/run-pass/issues/auxiliary/issue-36954.rs
+++ b/src/test/run-pass/issues/auxiliary/issue-36954.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(min_const_fn)]
 #![crate_type = "lib"]
 
 const fn foo(i: i32) -> i32 {
diff --git a/src/test/run-pass/issues/issue-29927.rs b/src/test/run-pass/issues/issue-29927.rs
index 863d9e74abb..ce28ebc53cd 100644
--- a/src/test/run-pass/issues/issue-29927.rs
+++ b/src/test/run-pass/issues/issue-29927.rs
@@ -10,7 +10,6 @@
 
 // run-pass
 #![allow(dead_code)]
-#![feature(min_const_fn)]
 struct A {
     field: usize,
 }
diff --git a/src/test/run-pass/issues/issue-33537.rs b/src/test/run-pass/issues/issue-33537.rs
index 3ef1595b958..023b0e800f5 100644
--- a/src/test/run-pass/issues/issue-33537.rs
+++ b/src/test/run-pass/issues/issue-33537.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 // run-pass
-#![feature(min_const_fn)]
 
 const fn foo() -> *const i8 {
     b"foo" as *const _ as *const i8
diff --git a/src/test/run-pass/issues/issue-37991.rs b/src/test/run-pass/issues/issue-37991.rs
index 578c22fe232..e63ba3acce3 100644
--- a/src/test/run-pass/issues/issue-37991.rs
+++ b/src/test/run-pass/issues/issue-37991.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 // run-pass
-#![feature(min_const_fn)]
 
 const fn foo() -> i64 {
     3
diff --git a/src/test/run-pass/issues/issue29927-1.rs b/src/test/run-pass/issues/issue29927-1.rs
index e3332909206..2104f5ef08a 100644
--- a/src/test/run-pass/issues/issue29927-1.rs
+++ b/src/test/run-pass/issues/issue29927-1.rs
@@ -10,7 +10,6 @@
 
 // run-pass
 #![allow(dead_code)]
-#![feature(min_const_fn)]
 const fn f() -> usize {
     5
 }
diff --git a/src/test/rustdoc/auxiliary/issue-27362.rs b/src/test/rustdoc/auxiliary/issue-27362.rs
index 0c1eedc86cc..454f8cb4a51 100644
--- a/src/test/rustdoc/auxiliary/issue-27362.rs
+++ b/src/test/rustdoc/auxiliary/issue-27362.rs
@@ -10,8 +10,6 @@
 
 // compile-flags: -Cmetadata=aux
 
-#![feature(min_const_fn)]
-
 pub const fn foo() {}
 pub const unsafe fn bar() {}
 
diff --git a/src/test/rustdoc/const-fn.rs b/src/test/rustdoc/const-fn.rs
index dc7a2799b46..cb4a5909120 100644
--- a/src/test/rustdoc/const-fn.rs
+++ b/src/test/rustdoc/const-fn.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(min_const_fn)]
 #![crate_name = "foo"]
 
 // @has foo/fn.bar.html
diff --git a/src/test/rustdoc/const.rs b/src/test/rustdoc/const.rs
index 49694e3ae08..074a211cd08 100644
--- a/src/test/rustdoc/const.rs
+++ b/src/test/rustdoc/const.rs
@@ -10,8 +10,6 @@
 
 #![crate_type="lib"]
 
-#![feature(min_const_fn)]
-
 pub struct Foo;
 
 impl Foo {
diff --git a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.ast.stderr b/src/test/ui/borrowck/move-in-static-initializer-issue-38520.ast.stderr
index 4c399ab6014..0c0f539df6a 100644
--- a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.ast.stderr
+++ b/src/test/ui/borrowck/move-in-static-initializer-issue-38520.ast.stderr
@@ -1,11 +1,11 @@
 error[E0507]: cannot move out of borrowed content
-  --> $DIR/move-in-static-initializer-issue-38520.rs:27:23
+  --> $DIR/move-in-static-initializer-issue-38520.rs:25:23
    |
 LL | static Y: usize = get(*&X); //[ast]~ ERROR E0507
    |                       ^^^ cannot move out of borrowed content
 
 error[E0507]: cannot move out of borrowed content
-  --> $DIR/move-in-static-initializer-issue-38520.rs:29:22
+  --> $DIR/move-in-static-initializer-issue-38520.rs:27:22
    |
 LL | const Z: usize = get(*&X); //[ast]~ ERROR E0507
    |                      ^^^ cannot move out of borrowed content
diff --git a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.mir.stderr b/src/test/ui/borrowck/move-in-static-initializer-issue-38520.mir.stderr
index 4c399ab6014..0c0f539df6a 100644
--- a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.mir.stderr
+++ b/src/test/ui/borrowck/move-in-static-initializer-issue-38520.mir.stderr
@@ -1,11 +1,11 @@
 error[E0507]: cannot move out of borrowed content
-  --> $DIR/move-in-static-initializer-issue-38520.rs:27:23
+  --> $DIR/move-in-static-initializer-issue-38520.rs:25:23
    |
 LL | static Y: usize = get(*&X); //[ast]~ ERROR E0507
    |                       ^^^ cannot move out of borrowed content
 
 error[E0507]: cannot move out of borrowed content
-  --> $DIR/move-in-static-initializer-issue-38520.rs:29:22
+  --> $DIR/move-in-static-initializer-issue-38520.rs:27:22
    |
 LL | const Z: usize = get(*&X); //[ast]~ ERROR E0507
    |                      ^^^ cannot move out of borrowed content
diff --git a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.rs b/src/test/ui/borrowck/move-in-static-initializer-issue-38520.rs
index d71c8462587..34e76c92a65 100644
--- a/src/test/ui/borrowck/move-in-static-initializer-issue-38520.rs
+++ b/src/test/ui/borrowck/move-in-static-initializer-issue-38520.rs
@@ -15,8 +15,6 @@
 // permitted as `Foo` is not copy (even in a static/const
 // initializer).
 
-#![feature(min_const_fn)]
-
 struct Foo(usize);
 
 const fn get(x: Foo) -> usize {
diff --git a/src/test/ui/consts/auxiliary/const_fn_lib.rs b/src/test/ui/consts/auxiliary/const_fn_lib.rs
index 499227e71a7..5063c8d1d1f 100644
--- a/src/test/ui/consts/auxiliary/const_fn_lib.rs
+++ b/src/test/ui/consts/auxiliary/const_fn_lib.rs
@@ -11,6 +11,5 @@
 // Crate that exports a const fn. Used for testing cross-crate.
 
 #![crate_type="rlib"]
-#![feature(min_const_fn)]
 
 pub const fn foo() -> usize { 22 } //~ ERROR const fn is unstable
diff --git a/src/test/ui/consts/const-eval/issue-43197.rs b/src/test/ui/consts/const-eval/issue-43197.rs
index 200f423f6e3..6e60fd834d4 100644
--- a/src/test/ui/consts/const-eval/issue-43197.rs
+++ b/src/test/ui/consts/const-eval/issue-43197.rs
@@ -10,8 +10,6 @@
 
 #![warn(const_err)]
 
-#![feature(min_const_fn)]
-
 const fn foo(x: u32) -> u32 {
     x
 }
diff --git a/src/test/ui/consts/const-eval/issue-43197.stderr b/src/test/ui/consts/const-eval/issue-43197.stderr
index 66921dcd7c5..6229790f8ad 100644
--- a/src/test/ui/consts/const-eval/issue-43197.stderr
+++ b/src/test/ui/consts/const-eval/issue-43197.stderr
@@ -1,5 +1,5 @@
 warning: this constant cannot be used
-  --> $DIR/issue-43197.rs:20:5
+  --> $DIR/issue-43197.rs:18:5
    |
 LL |     const X: u32 = 0-1;
    |     ^^^^^^^^^^^^^^^---^
@@ -13,7 +13,7 @@ LL | #![warn(const_err)]
    |         ^^^^^^^^^
 
 warning: this constant cannot be used
-  --> $DIR/issue-43197.rs:22:5
+  --> $DIR/issue-43197.rs:20:5
    |
 LL |     const Y: u32 = foo(0-1);
    |     ^^^^^^^^^^^^^^^^^^^---^^
@@ -21,7 +21,7 @@ LL |     const Y: u32 = foo(0-1);
    |                        attempt to subtract with overflow
 
 error[E0080]: referenced constant has errors
-  --> $DIR/issue-43197.rs:24:26
+  --> $DIR/issue-43197.rs:22:26
    |
 LL |     const Y: u32 = foo(0-1);
    |                        --- attempt to subtract with overflow
@@ -30,13 +30,13 @@ LL |     println!("{} {}", X, Y);
    |                          ^
 
 error[E0080]: erroneous constant used
-  --> $DIR/issue-43197.rs:24:26
+  --> $DIR/issue-43197.rs:22:26
    |
 LL |     println!("{} {}", X, Y);
    |                          ^ referenced constant has errors
 
 error[E0080]: referenced constant has errors
-  --> $DIR/issue-43197.rs:24:23
+  --> $DIR/issue-43197.rs:22:23
    |
 LL |     const X: u32 = 0-1;
    |                    --- attempt to subtract with overflow
@@ -45,7 +45,7 @@ LL |     println!("{} {}", X, Y);
    |                       ^
 
 error[E0080]: erroneous constant used
-  --> $DIR/issue-43197.rs:24:23
+  --> $DIR/issue-43197.rs:22:23
    |
 LL |     println!("{} {}", X, Y);
    |                       ^ referenced constant has errors
diff --git a/src/test/ui/consts/const-eval/issue-47971.rs b/src/test/ui/consts/const-eval/issue-47971.rs
index 2bc860e3ef9..dc449c663c3 100644
--- a/src/test/ui/consts/const-eval/issue-47971.rs
+++ b/src/test/ui/consts/const-eval/issue-47971.rs
@@ -10,8 +10,6 @@
 
 // compile-pass
 
-#![feature(min_const_fn)]
-
 struct S(pub &'static u32, pub u32);
 
 const fn g(ss: &S) -> &u32 { &ss.1 }
diff --git a/src/test/ui/consts/const-pattern-not-const-evaluable.rs b/src/test/ui/consts/const-pattern-not-const-evaluable.rs
index 4f02b1eef3a..07880b03001 100644
--- a/src/test/ui/consts/const-pattern-not-const-evaluable.rs
+++ b/src/test/ui/consts/const-pattern-not-const-evaluable.rs
@@ -10,8 +10,6 @@
 
 // compile-pass
 
-#![feature(min_const_fn)]
-
 #[derive(PartialEq, Eq)]
 enum Cake {
     BlackForest,
diff --git a/src/test/ui/consts/min_const_fn/cmp_fn_pointers.rs b/src/test/ui/consts/min_const_fn/cmp_fn_pointers.rs
new file mode 100644
index 00000000000..d8abd976558
--- /dev/null
+++ b/src/test/ui/consts/min_const_fn/cmp_fn_pointers.rs
@@ -0,0 +1,5 @@
+const fn cmp(x: fn(), y: fn()) -> bool { //~ ERROR function pointers in const fn are unstable
+    x == y
+}
+
+fn main() {}
diff --git a/src/test/ui/consts/min_const_fn/cmp_fn_pointers.stderr b/src/test/ui/consts/min_const_fn/cmp_fn_pointers.stderr
new file mode 100644
index 00000000000..a050c10e02c
--- /dev/null
+++ b/src/test/ui/consts/min_const_fn/cmp_fn_pointers.stderr
@@ -0,0 +1,8 @@
+error: function pointers in const fn are unstable
+  --> $DIR/cmp_fn_pointers.rs:1:14
+   |
+LL | const fn cmp(x: fn(), y: fn()) -> bool { //~ ERROR function pointers in const fn are unstable
+   |              ^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr b/src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr
index 715884d5175..a03c5168367 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr
@@ -1,197 +1,197 @@
 error[E0493]: destructors cannot be evaluated at compile-time
-  --> $DIR/min_const_fn.rs:49:25
+  --> $DIR/min_const_fn.rs:47:25
    |
 LL |     const fn into_inner(self) -> T { self.0 } //~ destructors cannot be evaluated
    |                         ^^^^ constant functions cannot evaluate destructors
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:51:36
+  --> $DIR/min_const_fn.rs:49:36
    |
 LL |     const fn get_mut(&mut self) -> &mut T { &mut self.0 }
    |                                    ^^^^^^
 
 error[E0493]: destructors cannot be evaluated at compile-time
-  --> $DIR/min_const_fn.rs:56:28
+  --> $DIR/min_const_fn.rs:54:28
    |
 LL |     const fn into_inner_lt(self) -> T { self.0 } //~ destructors cannot be evaluated
    |                            ^^^^ constant functions cannot evaluate destructors
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:58:42
+  --> $DIR/min_const_fn.rs:56:42
    |
 LL |     const fn get_mut_lt(&'a mut self) -> &mut T { &mut self.0 }
    |                                          ^^^^^^
 
 error[E0493]: destructors cannot be evaluated at compile-time
-  --> $DIR/min_const_fn.rs:63:27
+  --> $DIR/min_const_fn.rs:61:27
    |
 LL |     const fn into_inner_s(self) -> T { self.0 } //~ ERROR destructors
    |                           ^^^^ constant functions cannot evaluate destructors
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:65:38
+  --> $DIR/min_const_fn.rs:63:38
    |
 LL |     const fn get_mut_s(&mut self) -> &mut T { &mut self.0 }
    |                                      ^^^^^^
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:70:39
+  --> $DIR/min_const_fn.rs:68:39
    |
 LL |     const fn get_mut_sq(&mut self) -> &mut T { &mut self.0 }
    |                                       ^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:88:16
+  --> $DIR/min_const_fn.rs:86:16
    |
 LL | const fn foo11<T: std::fmt::Display>(t: T) -> T { t }
    |                ^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:90:18
+  --> $DIR/min_const_fn.rs:88:18
    |
 LL | const fn foo11_2<T: Send>(t: T) -> T { t }
    |                  ^
 
 error: only int, `bool` and `char` operations are stable in const fn
-  --> $DIR/min_const_fn.rs:92:33
+  --> $DIR/min_const_fn.rs:90:33
    |
 LL | const fn foo19(f: f32) -> f32 { f * 2.0 }
    |                                 ^^^^^^^
 
 error: only int, `bool` and `char` operations are stable in const fn
-  --> $DIR/min_const_fn.rs:94:35
+  --> $DIR/min_const_fn.rs:92:35
    |
 LL | const fn foo19_2(f: f32) -> f32 { 2.0 - f }
    |                                   ^^^^^^^
 
 error: only int and `bool` operations are stable in const fn
-  --> $DIR/min_const_fn.rs:96:35
+  --> $DIR/min_const_fn.rs:94:35
    |
 LL | const fn foo19_3(f: f32) -> f32 { -f }
    |                                   ^^
 
 error: only int, `bool` and `char` operations are stable in const fn
-  --> $DIR/min_const_fn.rs:98:43
+  --> $DIR/min_const_fn.rs:96:43
    |
 LL | const fn foo19_4(f: f32, g: f32) -> f32 { f / g }
    |                                           ^^^^^
 
 error: cannot access `static` items in const fn
-  --> $DIR/min_const_fn.rs:102:27
+  --> $DIR/min_const_fn.rs:100:27
    |
 LL | const fn foo25() -> u32 { BAR } //~ ERROR cannot access `static` items in const fn
    |                           ^^^
 
 error: cannot access `static` items in const fn
-  --> $DIR/min_const_fn.rs:103:36
+  --> $DIR/min_const_fn.rs:101:36
    |
 LL | const fn foo26() -> &'static u32 { &BAR } //~ ERROR cannot access `static` items
    |                                    ^^^^
 
 error: casting pointers to ints is unstable in const fn
-  --> $DIR/min_const_fn.rs:104:42
+  --> $DIR/min_const_fn.rs:102:42
    |
 LL | const fn foo30(x: *const u32) -> usize { x as usize }
    |                                          ^^^^^^^^^^
 
 error: casting pointers to ints is unstable in const fn
-  --> $DIR/min_const_fn.rs:106:42
+  --> $DIR/min_const_fn.rs:104:42
    |
 LL | const fn foo30_2(x: *mut u32) -> usize { x as usize }
    |                                          ^^^^^^^^^^
 
 error: `if`, `match`, `&&` and `||` are not stable in const fn
-  --> $DIR/min_const_fn.rs:108:38
+  --> $DIR/min_const_fn.rs:106:38
    |
 LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } }
    |                                      ^^^^^^^^^^^^^^^^^^^^^^
 
 error: `if`, `match`, `&&` and `||` are not stable in const fn
-  --> $DIR/min_const_fn.rs:110:29
+  --> $DIR/min_const_fn.rs:108:29
    |
 LL | const fn foo30_5(b: bool) { while b { } } //~ ERROR not stable in const fn
    |                             ^^^^^^^^^^^
 
 error: local variables in const fn are unstable
-  --> $DIR/min_const_fn.rs:111:34
+  --> $DIR/min_const_fn.rs:109:34
    |
 LL | const fn foo30_6() -> bool { let x = true; x } //~ ERROR local variables in const fn are unstable
    |                                  ^
 
 error: `if`, `match`, `&&` and `||` are not stable in const fn
-  --> $DIR/min_const_fn.rs:112:44
+  --> $DIR/min_const_fn.rs:110:44
    |
 LL | const fn foo36(a: bool, b: bool) -> bool { a && b }
    |                                            ^^^^^^
 
 error: `if`, `match`, `&&` and `||` are not stable in const fn
-  --> $DIR/min_const_fn.rs:114:44
+  --> $DIR/min_const_fn.rs:112:44
    |
 LL | const fn foo37(a: bool, b: bool) -> bool { a || b }
    |                                            ^^^^^^
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:116:14
+  --> $DIR/min_const_fn.rs:114:14
    |
 LL | const fn inc(x: &mut i32) { *x += 1 }
    |              ^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:121:6
+  --> $DIR/min_const_fn.rs:119:6
    |
 LL | impl<T: std::fmt::Debug> Foo<T> {
    |      ^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:126:6
+  --> $DIR/min_const_fn.rs:124:6
    |
 LL | impl<T: std::fmt::Debug + Sized> Foo<T> {
    |      ^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:131:6
+  --> $DIR/min_const_fn.rs:129:6
    |
 LL | impl<T: Sync + Sized> Foo<T> {
    |      ^
 
 error: `impl Trait` in const fn is unstable
-  --> $DIR/min_const_fn.rs:137:24
+  --> $DIR/min_const_fn.rs:135:24
    |
 LL | const fn no_rpit2() -> AlanTuring<impl std::fmt::Debug> { AlanTuring(0) }
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:139:34
+  --> $DIR/min_const_fn.rs:137:34
    |
 LL | const fn no_apit2(_x: AlanTuring<impl std::fmt::Debug>) {}
    |                                  ^^^^^^^^^^^^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:141:22
+  --> $DIR/min_const_fn.rs:139:22
    |
 LL | const fn no_apit(_x: impl std::fmt::Debug) {} //~ ERROR trait bounds other than `Sized`
    |                      ^^^^^^^^^^^^^^^^^^^^
 
 error: `impl Trait` in const fn is unstable
-  --> $DIR/min_const_fn.rs:142:23
+  --> $DIR/min_const_fn.rs:140:23
    |
 LL | const fn no_rpit() -> impl std::fmt::Debug {} //~ ERROR `impl Trait` in const fn is unstable
    |                       ^^^^^^^^^^^^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:143:23
+  --> $DIR/min_const_fn.rs:141:23
    |
 LL | const fn no_dyn_trait(_x: &dyn std::fmt::Debug) {} //~ ERROR trait bounds other than `Sized`
    |                       ^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:144:32
+  --> $DIR/min_const_fn.rs:142:32
    |
 LL | const fn no_dyn_trait_ret() -> &'static dyn std::fmt::Debug { &() }
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/min_const_fn.rs:144:64
+  --> $DIR/min_const_fn.rs:142:64
    |
 LL | const fn no_dyn_trait_ret() -> &'static dyn std::fmt::Debug { &() }
    |                                                                ^^ - temporary value is freed at the end of this statement
@@ -201,19 +201,19 @@ LL | const fn no_dyn_trait_ret() -> &'static dyn std::fmt::Debug { &() }
    = note: borrowed value must be valid for the static lifetime...
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:149:41
+  --> $DIR/min_const_fn.rs:147:41
    |
 LL | const fn really_no_traits_i_mean_it() { (&() as &std::fmt::Debug, ()).1 }
    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: function pointers in const fn are unstable
-  --> $DIR/min_const_fn.rs:152:21
+  --> $DIR/min_const_fn.rs:150:21
    |
 LL | const fn no_fn_ptrs(_x: fn()) {}
    |                     ^^
 
 error: function pointers in const fn are unstable
-  --> $DIR/min_const_fn.rs:154:27
+  --> $DIR/min_const_fn.rs:152:27
    |
 LL | const fn no_fn_ptrs2() -> fn() { fn foo() {} foo }
    |                           ^^^^
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn.rs b/src/test/ui/consts/min_const_fn/min_const_fn.rs
index b861e312d42..0dba3a7de53 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn.rs
+++ b/src/test/ui/consts/min_const_fn/min_const_fn.rs
@@ -8,8 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(min_const_fn)]
-
 // ok
 const fn foo1() {}
 const fn foo2(x: i32) -> i32 { x }
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn.stderr b/src/test/ui/consts/min_const_fn/min_const_fn.stderr
index 6779b8a7614..bcb9be6e548 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn.stderr
@@ -1,209 +1,209 @@
 error[E0493]: destructors cannot be evaluated at compile-time
-  --> $DIR/min_const_fn.rs:49:25
+  --> $DIR/min_const_fn.rs:47:25
    |
 LL |     const fn into_inner(self) -> T { self.0 } //~ destructors cannot be evaluated
    |                         ^^^^ constant functions cannot evaluate destructors
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:51:36
+  --> $DIR/min_const_fn.rs:49:36
    |
 LL |     const fn get_mut(&mut self) -> &mut T { &mut self.0 }
    |                                    ^^^^^^
 
 error[E0493]: destructors cannot be evaluated at compile-time
-  --> $DIR/min_const_fn.rs:56:28
+  --> $DIR/min_const_fn.rs:54:28
    |
 LL |     const fn into_inner_lt(self) -> T { self.0 } //~ destructors cannot be evaluated
    |                            ^^^^ constant functions cannot evaluate destructors
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:58:42
+  --> $DIR/min_const_fn.rs:56:42
    |
 LL |     const fn get_mut_lt(&'a mut self) -> &mut T { &mut self.0 }
    |                                          ^^^^^^
 
 error[E0493]: destructors cannot be evaluated at compile-time
-  --> $DIR/min_const_fn.rs:63:27
+  --> $DIR/min_const_fn.rs:61:27
    |
 LL |     const fn into_inner_s(self) -> T { self.0 } //~ ERROR destructors
    |                           ^^^^ constant functions cannot evaluate destructors
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:65:38
+  --> $DIR/min_const_fn.rs:63:38
    |
 LL |     const fn get_mut_s(&mut self) -> &mut T { &mut self.0 }
    |                                      ^^^^^^
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:70:39
+  --> $DIR/min_const_fn.rs:68:39
    |
 LL |     const fn get_mut_sq(&mut self) -> &mut T { &mut self.0 }
    |                                       ^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:88:16
+  --> $DIR/min_const_fn.rs:86:16
    |
 LL | const fn foo11<T: std::fmt::Display>(t: T) -> T { t }
    |                ^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:90:18
+  --> $DIR/min_const_fn.rs:88:18
    |
 LL | const fn foo11_2<T: Send>(t: T) -> T { t }
    |                  ^
 
 error: only int, `bool` and `char` operations are stable in const fn
-  --> $DIR/min_const_fn.rs:92:33
+  --> $DIR/min_const_fn.rs:90:33
    |
 LL | const fn foo19(f: f32) -> f32 { f * 2.0 }
    |                                 ^^^^^^^
 
 error: only int, `bool` and `char` operations are stable in const fn
-  --> $DIR/min_const_fn.rs:94:35
+  --> $DIR/min_const_fn.rs:92:35
    |
 LL | const fn foo19_2(f: f32) -> f32 { 2.0 - f }
    |                                   ^^^^^^^
 
 error: only int and `bool` operations are stable in const fn
-  --> $DIR/min_const_fn.rs:96:35
+  --> $DIR/min_const_fn.rs:94:35
    |
 LL | const fn foo19_3(f: f32) -> f32 { -f }
    |                                   ^^
 
 error: only int, `bool` and `char` operations are stable in const fn
-  --> $DIR/min_const_fn.rs:98:43
+  --> $DIR/min_const_fn.rs:96:43
    |
 LL | const fn foo19_4(f: f32, g: f32) -> f32 { f / g }
    |                                           ^^^^^
 
 error: cannot access `static` items in const fn
-  --> $DIR/min_const_fn.rs:102:27
+  --> $DIR/min_const_fn.rs:100:27
    |
 LL | const fn foo25() -> u32 { BAR } //~ ERROR cannot access `static` items in const fn
    |                           ^^^
 
 error: cannot access `static` items in const fn
-  --> $DIR/min_const_fn.rs:103:36
+  --> $DIR/min_const_fn.rs:101:36
    |
 LL | const fn foo26() -> &'static u32 { &BAR } //~ ERROR cannot access `static` items
    |                                    ^^^^
 
 error: casting pointers to ints is unstable in const fn
-  --> $DIR/min_const_fn.rs:104:42
+  --> $DIR/min_const_fn.rs:102:42
    |
 LL | const fn foo30(x: *const u32) -> usize { x as usize }
    |                                          ^^^^^^^^^^
 
 error: casting pointers to ints is unstable in const fn
-  --> $DIR/min_const_fn.rs:106:42
+  --> $DIR/min_const_fn.rs:104:42
    |
 LL | const fn foo30_2(x: *mut u32) -> usize { x as usize }
    |                                          ^^^^^^^^^^
 
 error: `if`, `match`, `&&` and `||` are not stable in const fn
-  --> $DIR/min_const_fn.rs:108:38
+  --> $DIR/min_const_fn.rs:106:38
    |
 LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } }
    |                                      ^^^^^^^^^^^^^^^^^^^^^^
 
 error: `if`, `match`, `&&` and `||` are not stable in const fn
-  --> $DIR/min_const_fn.rs:110:29
+  --> $DIR/min_const_fn.rs:108:29
    |
 LL | const fn foo30_5(b: bool) { while b { } } //~ ERROR not stable in const fn
    |                             ^^^^^^^^^^^
 
 error: local variables in const fn are unstable
-  --> $DIR/min_const_fn.rs:111:34
+  --> $DIR/min_const_fn.rs:109:34
    |
 LL | const fn foo30_6() -> bool { let x = true; x } //~ ERROR local variables in const fn are unstable
    |                                  ^
 
 error: `if`, `match`, `&&` and `||` are not stable in const fn
-  --> $DIR/min_const_fn.rs:112:44
+  --> $DIR/min_const_fn.rs:110:44
    |
 LL | const fn foo36(a: bool, b: bool) -> bool { a && b }
    |                                            ^^^^^^
 
 error: `if`, `match`, `&&` and `||` are not stable in const fn
-  --> $DIR/min_const_fn.rs:114:44
+  --> $DIR/min_const_fn.rs:112:44
    |
 LL | const fn foo37(a: bool, b: bool) -> bool { a || b }
    |                                            ^^^^^^
 
 error: mutable references in const fn are unstable
-  --> $DIR/min_const_fn.rs:116:14
+  --> $DIR/min_const_fn.rs:114:14
    |
 LL | const fn inc(x: &mut i32) { *x += 1 }
    |              ^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:121:6
+  --> $DIR/min_const_fn.rs:119:6
    |
 LL | impl<T: std::fmt::Debug> Foo<T> {
    |      ^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:126:6
+  --> $DIR/min_const_fn.rs:124:6
    |
 LL | impl<T: std::fmt::Debug + Sized> Foo<T> {
    |      ^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:131:6
+  --> $DIR/min_const_fn.rs:129:6
    |
 LL | impl<T: Sync + Sized> Foo<T> {
    |      ^
 
 error: `impl Trait` in const fn is unstable
-  --> $DIR/min_const_fn.rs:137:24
+  --> $DIR/min_const_fn.rs:135:24
    |
 LL | const fn no_rpit2() -> AlanTuring<impl std::fmt::Debug> { AlanTuring(0) }
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:139:34
+  --> $DIR/min_const_fn.rs:137:34
    |
 LL | const fn no_apit2(_x: AlanTuring<impl std::fmt::Debug>) {}
    |                                  ^^^^^^^^^^^^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:141:22
+  --> $DIR/min_const_fn.rs:139:22
    |
 LL | const fn no_apit(_x: impl std::fmt::Debug) {} //~ ERROR trait bounds other than `Sized`
    |                      ^^^^^^^^^^^^^^^^^^^^
 
 error: `impl Trait` in const fn is unstable
-  --> $DIR/min_const_fn.rs:142:23
+  --> $DIR/min_const_fn.rs:140:23
    |
 LL | const fn no_rpit() -> impl std::fmt::Debug {} //~ ERROR `impl Trait` in const fn is unstable
    |                       ^^^^^^^^^^^^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:143:23
+  --> $DIR/min_const_fn.rs:141:23
    |
 LL | const fn no_dyn_trait(_x: &dyn std::fmt::Debug) {} //~ ERROR trait bounds other than `Sized`
    |                       ^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:144:32
+  --> $DIR/min_const_fn.rs:142:32
    |
 LL | const fn no_dyn_trait_ret() -> &'static dyn std::fmt::Debug { &() }
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn.rs:149:41
+  --> $DIR/min_const_fn.rs:147:41
    |
 LL | const fn really_no_traits_i_mean_it() { (&() as &std::fmt::Debug, ()).1 }
    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: function pointers in const fn are unstable
-  --> $DIR/min_const_fn.rs:152:21
+  --> $DIR/min_const_fn.rs:150:21
    |
 LL | const fn no_fn_ptrs(_x: fn()) {}
    |                     ^^
 
 error: function pointers in const fn are unstable
-  --> $DIR/min_const_fn.rs:154:27
+  --> $DIR/min_const_fn.rs:152:27
    |
 LL | const fn no_fn_ptrs2() -> fn() { fn foo() {} foo }
    |                           ^^^^
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr b/src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr
index 9fc38e9e1f3..5d071a0fe24 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr
@@ -1,17 +1,17 @@
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn_dyn.rs:21:5
+  --> $DIR/min_const_fn_dyn.rs:19:5
    |
 LL |     x.0.field;
    |     ^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn_dyn.rs:24:66
+  --> $DIR/min_const_fn_dyn.rs:22:66
    |
 LL | const fn no_inner_dyn_trait_ret() -> Hide { Hide(HasDyn { field: &0 }) }
    |                                                                  ^^
 
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/min_const_fn_dyn.rs:24:67
+  --> $DIR/min_const_fn_dyn.rs:22:67
    |
 LL | const fn no_inner_dyn_trait_ret() -> Hide { Hide(HasDyn { field: &0 }) }
    |                                                                   ^    - temporary value is freed at the end of this statement
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_dyn.rs b/src/test/ui/consts/min_const_fn/min_const_fn_dyn.rs
index 38e28256430..e02474734d9 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_dyn.rs
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_dyn.rs
@@ -8,8 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(min_const_fn)]
-
 struct HasDyn {
     field: &'static dyn std::fmt::Debug,
 }
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_dyn.stderr b/src/test/ui/consts/min_const_fn/min_const_fn_dyn.stderr
index 3a1055f2ede..7bf9bdb6fa9 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_dyn.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_dyn.stderr
@@ -1,11 +1,11 @@
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn_dyn.rs:21:5
+  --> $DIR/min_const_fn_dyn.rs:19:5
    |
 LL |     x.0.field;
    |     ^^^^^^^^^
 
 error: trait bounds other than `Sized` on const fn parameters are unstable
-  --> $DIR/min_const_fn_dyn.rs:24:66
+  --> $DIR/min_const_fn_dyn.rs:22:66
    |
 LL | const fn no_inner_dyn_trait_ret() -> Hide { Hide(HasDyn { field: &0 }) }
    |                                                                  ^^
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.rs b/src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.rs
index 100d275f97e..64f212bc237 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.rs
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.rs
@@ -8,8 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(min_const_fn)]
-
 struct HasPtr {
     field: fn(),
 }
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.stderr b/src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.stderr
index c10af3d2c8e..54ffe66581d 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_fn_ptr.stderr
@@ -1,11 +1,11 @@
 error: function pointers in const fn are unstable
-  --> $DIR/min_const_fn_fn_ptr.rs:23:5
+  --> $DIR/min_const_fn_fn_ptr.rs:21:5
    |
 LL |     x.0.field;
    |     ^^^^^^^^^
 
 error: function pointers in const fn are unstable
-  --> $DIR/min_const_fn_fn_ptr.rs:26:59
+  --> $DIR/min_const_fn_fn_ptr.rs:24:59
    |
 LL | const fn no_inner_dyn_trait_ret() -> Hide { Hide(HasPtr { field }) }
    |                                                           ^^^^^
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_libstd.rs b/src/test/ui/consts/min_const_fn/min_const_fn_libstd.rs
index fcc9545d97f..1a3e6d01912 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_libstd.rs
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_libstd.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(integer_atomics, min_const_fn)]
+#![feature(integer_atomics)]
 
 // compile-pass
 
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.rs b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.rs
index e7caa4c6cb4..67332c6d2cf 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.rs
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.rs
@@ -8,8 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(min_const_fn)]
-
 // ok
 const unsafe fn foo4() -> i32 { 42 }
 const unsafe fn foo5<T>() -> *const T { 0 as *const T }
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr
index 17cba8569c1..8cff0d491d8 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe.stderr
@@ -1,5 +1,5 @@
 error[E0658]: dereferencing raw pointers in constant functions is unstable (see issue #51911)
-  --> $DIR/min_const_fn_unsafe.rs:29:51
+  --> $DIR/min_const_fn_unsafe.rs:27:51
    |
 LL | const unsafe fn foo30_3(x: *mut usize) -> usize { *x } //~ ERROR not allowed in const fn
    |                                                   ^^
@@ -7,7 +7,7 @@ LL | const unsafe fn foo30_3(x: *mut usize) -> usize { *x } //~ ERROR not allowe
    = help: add #![feature(const_raw_ptr_deref)] to the crate attributes to enable
 
 error[E0658]: unions in const fn are unstable (see issue #51909)
-  --> $DIR/min_const_fn_unsafe.rs:36:5
+  --> $DIR/min_const_fn_unsafe.rs:34:5
    |
 LL |     Foo { x: () }.y //~ ERROR not allowed in const fn
    |     ^^^^^^^^^^^^^^^
@@ -15,7 +15,7 @@ LL |     Foo { x: () }.y //~ ERROR not allowed in const fn
    = help: add #![feature(const_fn_union)] to the crate attributes to enable
 
 error: call to unsafe function is unsafe and unsafe operations are not allowed in const fn
-  --> $DIR/min_const_fn_unsafe.rs:21:14
+  --> $DIR/min_const_fn_unsafe.rs:19:14
    |
 LL |     unsafe { foo4() } //~ ERROR unsafe operations are not allowed in const fn
    |              ^^^^^^ call to unsafe function
@@ -23,7 +23,7 @@ LL |     unsafe { foo4() } //~ ERROR unsafe operations are not allowed in const
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error: call to unsafe function is unsafe and unsafe operations are not allowed in const fn
-  --> $DIR/min_const_fn_unsafe.rs:24:14
+  --> $DIR/min_const_fn_unsafe.rs:22:14
    |
 LL |     unsafe { foo5::<String>() } //~ ERROR unsafe operations are not allowed in const fn
    |              ^^^^^^^^^^^^^^^^ call to unsafe function
@@ -31,7 +31,7 @@ LL |     unsafe { foo5::<String>() } //~ ERROR unsafe operations are not allowed
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error: call to unsafe function is unsafe and unsafe operations are not allowed in const fn
-  --> $DIR/min_const_fn_unsafe.rs:27:14
+  --> $DIR/min_const_fn_unsafe.rs:25:14
    |
 LL |     unsafe { foo6::<Vec<std::cell::Cell<u32>>>() } //~ ERROR not allowed in const fn
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
@@ -39,7 +39,7 @@ LL |     unsafe { foo6::<Vec<std::cell::Cell<u32>>>() } //~ ERROR not allowed in
    = note: consult the function's documentation for information on how to avoid undefined behavior
 
 error: dereference of raw pointer is unsafe and unsafe operations are not allowed in const fn
-  --> $DIR/min_const_fn_unsafe.rs:29:51
+  --> $DIR/min_const_fn_unsafe.rs:27:51
    |
 LL | const unsafe fn foo30_3(x: *mut usize) -> usize { *x } //~ ERROR not allowed in const fn
    |                                                   ^^ dereference of raw pointer
@@ -47,7 +47,7 @@ LL | const unsafe fn foo30_3(x: *mut usize) -> usize { *x } //~ ERROR not allowe
    = note: raw pointers may be NULL, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
 
 error: access to union field is unsafe and unsafe operations are not allowed in const fn
-  --> $DIR/min_const_fn_unsafe.rs:36:5
+  --> $DIR/min_const_fn_unsafe.rs:34:5
    |
 LL |     Foo { x: () }.y //~ ERROR not allowed in const fn
    |     ^^^^^^^^^^^^^^^ access to union field
diff --git a/src/test/ui/consts/min_const_fn/promotion.nll.stderr b/src/test/ui/consts/min_const_fn/promotion.nll.stderr
index 999c26b535e..396b58dd219 100644
--- a/src/test/ui/consts/min_const_fn/promotion.nll.stderr
+++ b/src/test/ui/consts/min_const_fn/promotion.nll.stderr
@@ -1,5 +1,5 @@
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/promotion.rs:13:27
+  --> $DIR/promotion.rs:11:27
    |
 LL |     let x: &'static () = &foo1(); //~ ERROR does not live long enough
    |                           ^^^^^^ creates a temporary which is freed while still in use
@@ -10,7 +10,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/promotion.rs:14:28
+  --> $DIR/promotion.rs:12:28
    |
 LL |     let y: &'static i32 = &foo2(42); //~ ERROR does not live long enough
    |                            ^^^^^^^^ creates a temporary which is freed while still in use
@@ -21,7 +21,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/promotion.rs:15:28
+  --> $DIR/promotion.rs:13:28
    |
 LL |     let z: &'static i32 = &foo3(); //~ ERROR does not live long enough
    |                            ^^^^^^ creates a temporary which is freed while still in use
@@ -32,7 +32,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/promotion.rs:16:34
+  --> $DIR/promotion.rs:14:34
    |
 LL |     let a: &'static Cell<i32> = &foo4();  //~ ERROR does not live long enough
    |                                  ^^^^^^ creates a temporary which is freed while still in use
@@ -43,7 +43,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/promotion.rs:17:42
+  --> $DIR/promotion.rs:15:42
    |
 LL |     let a: &'static Option<Cell<i32>> = &foo5(); //~ ERROR does not live long enough
    |                                          ^^^^^^ creates a temporary which is freed while still in use
@@ -54,7 +54,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0716]: temporary value dropped while borrowed
-  --> $DIR/promotion.rs:18:42
+  --> $DIR/promotion.rs:16:42
    |
 LL |     let a: &'static Option<Cell<i32>> = &foo6(); //~ ERROR does not live long enough
    |                                          ^^^^^^ creates a temporary which is freed while still in use
diff --git a/src/test/ui/consts/min_const_fn/promotion.rs b/src/test/ui/consts/min_const_fn/promotion.rs
index cb3bfd74711..969bf40a93b 100644
--- a/src/test/ui/consts/min_const_fn/promotion.rs
+++ b/src/test/ui/consts/min_const_fn/promotion.rs
@@ -1,5 +1,3 @@
-#![feature(min_const_fn)]
-
 use std::cell::Cell;
 
 const fn foo1() {}
diff --git a/src/test/ui/consts/min_const_fn/promotion.stderr b/src/test/ui/consts/min_const_fn/promotion.stderr
index 68d58465822..7052f68c3ec 100644
--- a/src/test/ui/consts/min_const_fn/promotion.stderr
+++ b/src/test/ui/consts/min_const_fn/promotion.stderr
@@ -1,5 +1,5 @@
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/promotion.rs:13:27
+  --> $DIR/promotion.rs:11:27
    |
 LL |     let x: &'static () = &foo1(); //~ ERROR does not live long enough
    |                           ^^^^^^ temporary value does not live long enough
@@ -10,7 +10,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/promotion.rs:14:28
+  --> $DIR/promotion.rs:12:28
    |
 LL |     let y: &'static i32 = &foo2(42); //~ ERROR does not live long enough
    |                            ^^^^^^^^ temporary value does not live long enough
@@ -21,7 +21,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/promotion.rs:15:28
+  --> $DIR/promotion.rs:13:28
    |
 LL |     let z: &'static i32 = &foo3(); //~ ERROR does not live long enough
    |                            ^^^^^^ temporary value does not live long enough
@@ -32,7 +32,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/promotion.rs:16:34
+  --> $DIR/promotion.rs:14:34
    |
 LL |     let a: &'static Cell<i32> = &foo4();  //~ ERROR does not live long enough
    |                                  ^^^^^^ temporary value does not live long enough
@@ -43,7 +43,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/promotion.rs:17:42
+  --> $DIR/promotion.rs:15:42
    |
 LL |     let a: &'static Option<Cell<i32>> = &foo5(); //~ ERROR does not live long enough
    |                                          ^^^^^^ temporary value does not live long enough
@@ -54,7 +54,7 @@ LL | }
    = note: borrowed value must be valid for the static lifetime...
 
 error[E0597]: borrowed value does not live long enough
-  --> $DIR/promotion.rs:18:42
+  --> $DIR/promotion.rs:16:42
    |
 LL |     let a: &'static Option<Cell<i32>> = &foo6(); //~ ERROR does not live long enough
    |                                          ^^^^^^ temporary value does not live long enough
diff --git a/src/test/ui/feature-gates/feature-gate-const_fn.rs b/src/test/ui/feature-gates/feature-gate-const_fn.rs
index f774658975b..e52331fa92a 100644
--- a/src/test/ui/feature-gates/feature-gate-const_fn.rs
+++ b/src/test/ui/feature-gates/feature-gate-const_fn.rs
@@ -8,9 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// Test use of const fn without the `const_fn` feature gate.
-// `min_const_fn` is checked in its own file
-#![feature(min_const_fn)]
+// Test use of advanced const fn without the `const_fn` feature gate.
 
 const fn foo() -> usize { 0 } // ok
 
diff --git a/src/test/ui/feature-gates/feature-gate-const_fn.stderr b/src/test/ui/feature-gates/feature-gate-const_fn.stderr
index 26c0c7877b4..150a702d105 100644
--- a/src/test/ui/feature-gates/feature-gate-const_fn.stderr
+++ b/src/test/ui/feature-gates/feature-gate-const_fn.stderr
@@ -1,23 +1,23 @@
 error[E0379]: trait fns cannot be declared const
-  --> $DIR/feature-gate-const_fn.rs:18:5
+  --> $DIR/feature-gate-const_fn.rs:16:5
    |
 LL |     const fn foo() -> u32; //~ ERROR const fn is unstable
    |     ^^^^^ trait fns cannot be const
 
 error[E0379]: trait fns cannot be declared const
-  --> $DIR/feature-gate-const_fn.rs:20:5
+  --> $DIR/feature-gate-const_fn.rs:18:5
    |
 LL |     const fn bar() -> u32 { 0 } //~ ERROR const fn is unstable
    |     ^^^^^ trait fns cannot be const
 
 error[E0379]: trait fns cannot be declared const
-  --> $DIR/feature-gate-const_fn.rs:29:5
+  --> $DIR/feature-gate-const_fn.rs:27:5
    |
 LL |     const fn foo() -> u32 { 0 } //~ ERROR trait fns cannot be declared const
    |     ^^^^^ trait fns cannot be const
 
 error[E0658]: const fn is unstable (see issue #24111)
-  --> $DIR/feature-gate-const_fn.rs:18:5
+  --> $DIR/feature-gate-const_fn.rs:16:5
    |
 LL |     const fn foo() -> u32; //~ ERROR const fn is unstable
    |     ^^^^^^^^^^^^^^^^^^^^^^
@@ -25,7 +25,7 @@ LL |     const fn foo() -> u32; //~ ERROR const fn is unstable
    = help: add #![feature(const_fn)] to the crate attributes to enable
 
 error[E0658]: const fn is unstable (see issue #24111)
-  --> $DIR/feature-gate-const_fn.rs:20:5
+  --> $DIR/feature-gate-const_fn.rs:18:5
    |
 LL |     const fn bar() -> u32 { 0 } //~ ERROR const fn is unstable
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/feature-gates/feature-gate-min_const_fn.rs b/src/test/ui/feature-gates/feature-gate-min_const_fn.rs
index e052ba9c8b4..40cb75316ef 100644
--- a/src/test/ui/feature-gates/feature-gate-min_const_fn.rs
+++ b/src/test/ui/feature-gates/feature-gate-min_const_fn.rs
@@ -10,7 +10,7 @@
 
 // Test use of min_const_fn without feature gate.
 
-const fn foo() -> usize { 0 } //~ ERROR const fn is unstable
+const fn foo() -> usize { 0 } // stabilized
 
 trait Foo {
     const fn foo() -> u32; //~ ERROR const fn is unstable
@@ -20,12 +20,11 @@ trait Foo {
 }
 
 impl Foo {
-    const fn baz() -> u32 { 0 } //~ ERROR const fn is unstable
+    const fn baz() -> u32 { 0 } // stabilized
 }
 
 impl Foo for u32 {
-    const fn foo() -> u32 { 0 } //~ ERROR const fn is unstable
-                                //~| ERROR trait fns cannot be declared const
+    const fn foo() -> u32 { 0 } //~ ERROR trait fns cannot be declared const
 }
 
 static FOO: usize = foo();
diff --git a/src/test/ui/feature-gates/feature-gate-min_const_fn.stderr b/src/test/ui/feature-gates/feature-gate-min_const_fn.stderr
index aa7750362b2..34526746db8 100644
--- a/src/test/ui/feature-gates/feature-gate-min_const_fn.stderr
+++ b/src/test/ui/feature-gates/feature-gate-min_const_fn.stderr
@@ -13,17 +13,9 @@ LL |     const fn bar() -> u32 { 0 } //~ ERROR const fn is unstable
 error[E0379]: trait fns cannot be declared const
   --> $DIR/feature-gate-min_const_fn.rs:27:5
    |
-LL |     const fn foo() -> u32 { 0 } //~ ERROR const fn is unstable
+LL |     const fn foo() -> u32 { 0 } //~ ERROR trait fns cannot be declared const
    |     ^^^^^ trait fns cannot be const
 
-error[E0658]: const fn is unstable (see issue #53555)
-  --> $DIR/feature-gate-min_const_fn.rs:13:1
-   |
-LL | const fn foo() -> usize { 0 } //~ ERROR const fn is unstable
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = help: add #![feature(min_const_fn)] to the crate attributes to enable
-
 error[E0658]: const fn is unstable (see issue #24111)
   --> $DIR/feature-gate-min_const_fn.rs:16:5
    |
@@ -40,23 +32,7 @@ LL |     const fn bar() -> u32 { 0 } //~ ERROR const fn is unstable
    |
    = help: add #![feature(const_fn)] to the crate attributes to enable
 
-error[E0658]: const fn is unstable (see issue #53555)
-  --> $DIR/feature-gate-min_const_fn.rs:23:5
-   |
-LL |     const fn baz() -> u32 { 0 } //~ ERROR const fn is unstable
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = help: add #![feature(min_const_fn)] to the crate attributes to enable
-
-error[E0658]: const fn is unstable (see issue #53555)
-  --> $DIR/feature-gate-min_const_fn.rs:27:5
-   |
-LL |     const fn foo() -> u32 { 0 } //~ ERROR const fn is unstable
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = help: add #![feature(min_const_fn)] to the crate attributes to enable
-
-error: aborting due to 8 previous errors
+error: aborting due to 5 previous errors
 
 Some errors occurred: E0379, E0658.
 For more information about an error, try `rustc --explain E0379`.
diff --git a/src/test/ui/infinite/infinite-recursion-const-fn.rs b/src/test/ui/infinite/infinite-recursion-const-fn.rs
index 63ae18cf9c2..f99a080a9f0 100644
--- a/src/test/ui/infinite/infinite-recursion-const-fn.rs
+++ b/src/test/ui/infinite/infinite-recursion-const-fn.rs
@@ -10,7 +10,6 @@
 
 //https://github.com/rust-lang/rust/issues/31364
 
-#![feature(min_const_fn)]
 const fn a() -> usize { b() }
 const fn b() -> usize { a() }
 const ARR: [i32; a()] = [5; 6]; //~ ERROR could not evaluate constant expression
diff --git a/src/test/ui/infinite/infinite-recursion-const-fn.stderr b/src/test/ui/infinite/infinite-recursion-const-fn.stderr
index fb7c1be7541..579cc6bd548 100644
--- a/src/test/ui/infinite/infinite-recursion-const-fn.stderr
+++ b/src/test/ui/infinite/infinite-recursion-const-fn.stderr
@@ -1,5 +1,5 @@
 error[E0080]: could not evaluate constant expression
-  --> $DIR/infinite-recursion-const-fn.rs:16:1
+  --> $DIR/infinite-recursion-const-fn.rs:15:1
    |
 LL | const fn a() -> usize { b() }
    |                         ---
diff --git a/src/test/ui/issues/issue-28822.rs b/src/test/ui/issues/issue-28822.rs
index af8531feff2..03b91a13224 100644
--- a/src/test/ui/issues/issue-28822.rs
+++ b/src/test/ui/issues/issue-28822.rs
@@ -10,7 +10,6 @@
 
 // compile-pass
 #![allow(dead_code)]
-#![feature(min_const_fn)]
 
 fn main() {}
 
diff --git a/src/test/ui/unsafe/unsafe-const-fn.rs b/src/test/ui/unsafe/unsafe-const-fn.rs
index fe0bb7533a8..88be25066ce 100644
--- a/src/test/ui/unsafe/unsafe-const-fn.rs
+++ b/src/test/ui/unsafe/unsafe-const-fn.rs
@@ -10,8 +10,6 @@
 
 // A quick test of 'unsafe const fn' functionality
 
-#![feature(min_const_fn)]
-
 const unsafe fn dummy(v: u32) -> u32 {
     !v
 }
diff --git a/src/test/ui/unsafe/unsafe-const-fn.stderr b/src/test/ui/unsafe/unsafe-const-fn.stderr
index d4b3ed687e5..d1a267d4f84 100644
--- a/src/test/ui/unsafe/unsafe-const-fn.stderr
+++ b/src/test/ui/unsafe/unsafe-const-fn.stderr
@@ -1,5 +1,5 @@
 error[E0133]: call to unsafe function is unsafe and requires unsafe function or block
-  --> $DIR/unsafe-const-fn.rs:19:18
+  --> $DIR/unsafe-const-fn.rs:17:18
    |
 LL | const VAL: u32 = dummy(0xFFFF);
    |                  ^^^^^^^^^^^^^ call to unsafe function