From ec74d3533a9b88505d56d0ae00a78acf2e702c92 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Fri, 5 Oct 2018 10:17:16 +0200 Subject: Stabilize `min_const_fn` --- src/libsyntax/attr/builtin.rs | 3 +-- src/libsyntax/feature_gate.rs | 9 +-------- 2 files changed, 2 insertions(+), 10 deletions(-) (limited to 'src/libsyntax') 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, - /// `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, 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, -- cgit 1.4.1-3-g733a5 From fb04e2644730f48ff257d467c2ef6e25274e17d1 Mon Sep 17 00:00:00 2001 From: Oliver Scherer Date: Fri, 5 Oct 2018 12:29:03 +0200 Subject: Stabilize min_const_fn feature gate --- src/libsyntax/feature_gate.rs | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index e854e3d6760..d72800bcd1e 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -40,16 +40,6 @@ use symbol::{keywords, Symbol}; use std::{env}; macro_rules! set { - // The const_fn feature also enables the min_const_fn feature, because `min_const_fn` allows - // the declaration `const fn`, but the `const_fn` feature gate enables things inside those - // functions that we do not want to expose to the user for now. - (const_fn) => {{ - fn f(features: &mut Features, _: Span) { - features.const_fn = true; - features.min_const_fn = true; - } - f as fn(&mut Features, Span) - }}; ($field: ident) => {{ fn f(features: &mut Features, _: Span) { features.$field = true; @@ -219,9 +209,6 @@ declare_features! ( // Allows the definition of `const fn` functions with some advanced features. (active, const_fn, "1.2.0", Some(24111), None), - // Allows the definition of `const fn` functions. - (active, min_const_fn, "1.30.0", Some(53555), None), - // Allows let bindings and destructuring in `const fn` functions and constants. (active, const_let, "1.22.1", Some(48821), None), @@ -685,6 +672,8 @@ declare_features! ( (accepted, extern_prelude, "1.30.0", Some(44660), None), // Parentheses in patterns (accepted, pattern_parentheses, "1.31.0", Some(51087), None), + // Allows the definition of `const fn` functions. + (accepted, min_const_fn, "1.31.0", Some(53555), None), ); // If you change this, please modify src/doc/unstable-book as well. You must -- cgit 1.4.1-3-g733a5