diff --git a/src/librustc/middle/resolve_lifetime.rs b/src/librustc/middle/resolve_lifetime.rs index 158b406deb8a4..9bad98dda83f8 100644 --- a/src/librustc/middle/resolve_lifetime.rs +++ b/src/librustc/middle/resolve_lifetime.rs @@ -238,8 +238,6 @@ enum Elide { FreshLateAnon(Cell), /// Always use this one lifetime. Exact(Region), - /// Like `Exact(Static)` but requires `#![feature(static_in_const)]`. - Static, /// Less or more than one lifetime were found, error on unspecified. Error(Vec) } @@ -324,7 +322,7 @@ impl<'a, 'tcx> Visitor<'tcx> for LifetimeContext<'a, 'tcx> { hir::ItemConst(..) => { // No lifetime parameters, but implied 'static. let scope = Scope::Elision { - elide: Elide::Static, + elide: Elide::Exact(Region::Static), s: ROOT_SCOPE }; self.with(scope, |_, this| intravisit::walk_item(this, item)); @@ -1307,16 +1305,6 @@ impl<'a, 'tcx> LifetimeContext<'a, 'tcx> { return; } Elide::Exact(l) => l.shifted(late_depth), - Elide::Static => { - if !self.sess.features.borrow().static_in_const { - self.sess - .struct_span_err(span, - "this needs a `'static` lifetime or the \ - `static_in_const` feature, see #35897") - .emit(); - } - Region::Static - } Elide::Error(ref e) => break Some(e) }; for lifetime_ref in lifetime_refs { diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index cc0a67b3d2e94..a7c86bf8e06ba 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -281,9 +281,6 @@ declare_features! ( // Allows untagged unions `union U { ... }` (active, untagged_unions, "1.13.0", Some(32836)), - // elide `'static` lifetimes in `static`s and `const`s - (active, static_in_const, "1.13.0", Some(35897)), - // Used to identify the `compiler_builtins` crate // rustc internal (active, compiler_builtins, "1.13.0", None), @@ -386,6 +383,8 @@ declare_features! ( (accepted, item_like_imports, "1.14.0", Some(35120)), // Allows using `Self` and associated types in struct expressions and patterns. (accepted, more_struct_aliases, "1.16.0", Some(37544)), + // elide `'static` lifetimes in `static`s and `const`s + (accepted, static_in_const, "1.17.0", Some(35897)), ); // (changing above list without updating src/doc/reference.md makes @cmr sad) diff --git a/src/test/compile-fail/feature-gate-static-in-const.rs b/src/test/compile-fail/feature-gate-static-in-const.rs deleted file mode 100644 index c1fc7cdd06cd0..0000000000000 --- a/src/test/compile-fail/feature-gate-static-in-const.rs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2015 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -static FOO: &str = "this will work once static_in_const is stable"; -//~^ ERROR: this needs a `'static` lifetime or the `static_in_const` feature - -fn main() {} diff --git a/src/test/compile-fail/rfc1623.rs b/src/test/compile-fail/rfc1623.rs index 93635e7fddea7..e8295e5e2da08 100644 --- a/src/test/compile-fail/rfc1623.rs +++ b/src/test/compile-fail/rfc1623.rs @@ -7,7 +7,6 @@ // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(static_in_const)] #![allow(dead_code)] fn non_elidable<'a, 'b>(a: &'a u8, b: &'b u8) -> &'a u8 { diff --git a/src/test/incremental/change_add_field/struct_point.rs b/src/test/incremental/change_add_field/struct_point.rs index e18b30a8c7242..ac5c0d3b9e72d 100644 --- a/src/test/incremental/change_add_field/struct_point.rs +++ b/src/test/incremental/change_add_field/struct_point.rs @@ -18,7 +18,6 @@ #![feature(rustc_attrs)] #![feature(stmt_expr_attributes)] -#![feature(static_in_const)] #![allow(dead_code)] // These are expected to require translation. diff --git a/src/test/incremental/change_pub_inherent_method_sig/struct_point.rs b/src/test/incremental/change_pub_inherent_method_sig/struct_point.rs index f8db6c69a76f9..4d12b7b390cc9 100644 --- a/src/test/incremental/change_pub_inherent_method_sig/struct_point.rs +++ b/src/test/incremental/change_pub_inherent_method_sig/struct_point.rs @@ -15,7 +15,6 @@ #![feature(rustc_attrs)] #![feature(stmt_expr_attributes)] -#![feature(static_in_const)] #![allow(dead_code)] // These are expected to require translation. diff --git a/src/test/run-pass/rfc1623.rs b/src/test/run-pass/rfc1623.rs index fc9143dc450b7..17453933c8abc 100644 --- a/src/test/run-pass/rfc1623.rs +++ b/src/test/run-pass/rfc1623.rs @@ -8,7 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(static_in_const)] #![allow(dead_code)] // very simple test for a 'static static with default lifetime