Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stabilize min_const_fn #54835

Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/liballoc/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)]
Expand Down
2 changes: 1 addition & 1 deletion src/liballoc/tests/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)]
Expand Down
2 changes: 1 addition & 1 deletion src/librustc/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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))]
Expand Down
2 changes: 1 addition & 1 deletion src/librustc/ty/constness.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/librustc_target/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)]

Expand Down
2 changes: 1 addition & 1 deletion src/libstd/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)]
Expand Down
3 changes: 1 addition & 2 deletions src/libsyntax/attr/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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>,
Expand Down
9 changes: 1 addition & 8 deletions src/libsyntax/feature_gate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"]

Expand Down
1 change: 0 additions & 1 deletion src/test/codegen/link-dead-code.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion src/test/compile-fail/issue-43733-2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions src/test/mir-opt/lower_128bit_debug_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
2 changes: 0 additions & 2 deletions src/test/mir-opt/lower_128bit_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
1 change: 0 additions & 1 deletion src/test/run-fail/issue-29798.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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]
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/run-pass-fulldeps/newtype_index.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/consts/auxiliary/const_fn_lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
1 change: 0 additions & 1 deletion src/test/run-pass/consts/const-fn-const-eval.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

// run-pass
#![allow(dead_code)]
#![feature(min_const_fn)]

const fn add(x: usize, y: usize) -> usize {
x + y
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/consts/const-fn-method.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
// except according to those terms.

// run-pass
#![feature(min_const_fn)]

struct Foo { value: u32 }

Expand Down
2 changes: 0 additions & 2 deletions src/test/run-pass/consts/const-fn-nested.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
2 changes: 0 additions & 2 deletions src/test/run-pass/consts/const-meth-pattern.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@

// run-pass

#![feature(min_const_fn)]

struct A;

impl A {
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/consts/const-pattern-variant.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

// run-pass
#![allow(unreachable_patterns)]
#![feature(min_const_fn)]

#[derive(PartialEq, Eq)]
enum Cake {
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/consts/const-size_of-align_of.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

// run-pass
#![allow(dead_code)]
#![feature(min_const_fn)]

use std::mem;

Expand Down
2 changes: 0 additions & 2 deletions src/test/run-pass/consts/const-unsafe-fn.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/consts/consts-in-patterns.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
// except according to those terms.

// run-pass
#![feature(min_const_fn)]

const FOO: isize = 10;
const BAR: isize = 3;
Expand Down
2 changes: 0 additions & 2 deletions src/test/run-pass/ctfe/ice-48279.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@

// https://github.com/rust-lang/rust/issues/48279

#![feature(min_const_fn)]

#[derive(PartialEq, Eq)]
pub struct NonZeroU32 {
value: u32
Expand Down
2 changes: 0 additions & 2 deletions src/test/run-pass/ctfe/match-const-fn-structs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@

// https://github.com/rust-lang/rust/issues/46114

#![feature(min_const_fn)]

#[derive(Eq, PartialEq)]
struct A { value: u32 }

Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/ctfe/return-in-const-fn.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

// https://github.com/rust-lang/rust/issues/43754

#![feature(min_const_fn)]
const fn foo(x: usize) -> usize {
return x;
}
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/issues/auxiliary/issue-36954.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/issues/issue-29927.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

// run-pass
#![allow(dead_code)]
#![feature(min_const_fn)]
struct A {
field: usize,
}
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/issues/issue-33537.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/issues/issue-37991.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
// except according to those terms.

// run-pass
#![feature(min_const_fn)]

const fn foo() -> i64 {
3
Expand Down
1 change: 0 additions & 1 deletion src/test/run-pass/issues/issue29927-1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

// run-pass
#![allow(dead_code)]
#![feature(min_const_fn)]
const fn f() -> usize {
5
}
Expand Down
2 changes: 0 additions & 2 deletions src/test/rustdoc/auxiliary/issue-27362.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@

// compile-flags: -Cmetadata=aux

#![feature(min_const_fn)]

pub const fn foo() {}
pub const unsafe fn bar() {}

Expand Down
1 change: 0 additions & 1 deletion src/test/rustdoc/const-fn.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions src/test/rustdoc/const.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@

#![crate_type="lib"]

#![feature(min_const_fn)]

pub struct Foo;

impl Foo {
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/consts/auxiliary/const_fn_lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 0 additions & 2 deletions src/test/ui/consts/const-eval/issue-43197.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@

#![warn(const_err)]

#![feature(min_const_fn)]

const fn foo(x: u32) -> u32 {
x
}
Expand Down
Loading