about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2018-09-26 14:26:46 -0700
committerJosh Stone <jistone@redhat.com>2018-09-27 20:52:53 -0700
commitce034951fb907c8aa6abd5e6e04769e5e628953c (patch)
tree94468d8a5108315f82993dd95328270aefd3e2ec /src
parent7d52cbce6db83e4fc2d8706b4e4b9c7da76cbcf8 (diff)
downloadrust-ce034951fb907c8aa6abd5e6e04769e5e628953c.tar.gz
rust-ce034951fb907c8aa6abd5e6e04769e5e628953c.zip
Bump to 1.31.0 and bootstrap from 1.30 beta
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/channel.rs2
-rw-r--r--src/liballoc/lib.rs5
-rw-r--r--src/liballoc/tests/lib.rs3
-rw-r--r--src/liballoc_jemalloc/lib.rs6
-rw-r--r--src/liballoc_system/lib.rs2
-rw-r--r--src/libarena/lib.rs2
-rw-r--r--src/libcore/lib.rs2
-rw-r--r--src/libcore/mem.rs28
-rw-r--r--src/libcore/nonzero.rs3
-rw-r--r--src/libcore/num/mod.rs406
-rw-r--r--src/libfmt_macros/lib.rs2
-rw-r--r--src/libgraphviz/lib.rs2
-rw-r--r--src/libpanic_abort/lib.rs4
-rw-r--r--src/libpanic_unwind/lib.rs2
-rw-r--r--src/libproc_macro/lib.rs2
-rw-r--r--src/libprofiler_builtins/lib.rs2
-rw-r--r--src/librustc/lib.rs10
-rw-r--r--src/librustc/middle/region.rs2
-rw-r--r--src/librustc/ty/context.rs4
-rw-r--r--src/librustc_allocator/lib.rs2
-rw-r--r--src/librustc_apfloat/lib.rs2
-rw-r--r--src/librustc_asan/lib.rs2
-rw-r--r--src/librustc_borrowck/lib.rs2
-rw-r--r--src/librustc_codegen_llvm/lib.rs2
-rw-r--r--src/librustc_codegen_utils/lib.rs2
-rw-r--r--src/librustc_cratesio_shim/src/lib.rs2
-rw-r--r--src/librustc_data_structures/lib.rs3
-rw-r--r--src/librustc_driver/lib.rs2
-rw-r--r--src/librustc_errors/lib.rs2
-rw-r--r--src/librustc_incremental/lib.rs2
-rw-r--r--src/librustc_lint/lib.rs3
-rw-r--r--src/librustc_llvm/lib.rs2
-rw-r--r--src/librustc_lsan/lib.rs2
-rw-r--r--src/librustc_metadata/lib.rs2
-rw-r--r--src/librustc_mir/lib.rs2
-rw-r--r--src/librustc_msan/lib.rs2
-rw-r--r--src/librustc_passes/lib.rs2
-rw-r--r--src/librustc_platform_intrinsics/lib.rs2
-rw-r--r--src/librustc_plugin/lib.rs2
-rw-r--r--src/librustc_privacy/lib.rs2
-rw-r--r--src/librustc_resolve/lib.rs2
-rw-r--r--src/librustc_save_analysis/lib.rs2
-rw-r--r--src/librustc_target/lib.rs5
-rw-r--r--src/librustc_traits/lib.rs4
-rw-r--r--src/librustc_tsan/lib.rs2
-rw-r--r--src/librustc_typeck/lib.rs2
-rw-r--r--src/librustdoc/lib.rs2
-rw-r--r--src/libserialize/lib.rs2
-rw-r--r--src/libstd/alloc.rs4
-rw-r--r--src/libstd/lib.rs11
-rw-r--r--src/libstd/panicking.rs5
-rw-r--r--src/libsyntax/lib.rs2
-rw-r--r--src/libsyntax_ext/lib.rs2
-rw-r--r--src/libsyntax_pos/lib.rs4
-rw-r--r--src/libterm/lib.rs2
-rw-r--r--src/libtest/lib.rs2
-rw-r--r--src/libunwind/lib.rs2
-rw-r--r--src/stage0.txt2
-rw-r--r--src/test/compile-fail-fulldeps/auxiliary/lint_for_crate.rs1
-rw-r--r--src/test/compile-fail-fulldeps/auxiliary/lint_group_plugin_test.rs1
-rw-r--r--src/test/compile-fail-fulldeps/auxiliary/lint_plugin_test.rs1
-rw-r--r--src/test/run-pass-fulldeps/auxiliary/lint_for_crate.rs1
-rw-r--r--src/test/run-pass-fulldeps/proc-macro/auxiliary/issue-40001-plugin.rs1
-rw-r--r--src/test/run-pass/macros/macro-first-set.rs1
-rw-r--r--src/test/run-pass/macros/macro-pub-matcher.rs1
-rw-r--r--src/test/ui-fulldeps/auxiliary/lint_group_plugin_test.rs1
-rw-r--r--src/test/ui-fulldeps/auxiliary/lint_plugin_test.rs1
-rw-r--r--src/test/ui-fulldeps/auxiliary/lint_tool_test.rs1
-rw-r--r--src/test/ui/issues/issue-42755.rs1
-rw-r--r--src/test/ui/lint/unreachable_pub-pub_crate.rs1
-rw-r--r--src/test/ui/lint/unreachable_pub.rs1
71 files changed, 63 insertions, 540 deletions
diff --git a/src/bootstrap/channel.rs b/src/bootstrap/channel.rs
index fa2b58fb2da..91bec69cfa4 100644
--- a/src/bootstrap/channel.rs
+++ b/src/bootstrap/channel.rs
@@ -24,7 +24,7 @@ use Build;
 use config::Config;
 
 // The version number
-pub const CFG_RELEASE_NUM: &str = "1.30.0";
+pub const CFG_RELEASE_NUM: &str = "1.31.0";
 
 pub struct GitInfo {
     inner: Option<Info>,
diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs
index 7960936dad6..61348424afa 100644
--- a/src/liballoc/lib.rs
+++ b/src/liballoc/lib.rs
@@ -76,7 +76,6 @@
 
 #![cfg_attr(not(test), feature(fn_traits))]
 #![cfg_attr(not(test), feature(generator_trait))]
-#![cfg_attr(not(stage0), feature(nll))]
 #![cfg_attr(test, feature(test))]
 
 #![feature(allocator_api)]
@@ -87,8 +86,7 @@
 #![feature(box_syntax)]
 #![feature(cfg_target_has_atomic)]
 #![feature(coerce_unsized)]
-#![cfg_attr(stage0, feature(const_fn))]
-#![cfg_attr(not(stage0), feature(min_const_fn))]
+#![feature(min_const_fn)]
 #![feature(core_intrinsics)]
 #![feature(custom_attribute)]
 #![feature(dropck_eyepatch)]
@@ -99,6 +97,7 @@
 #![feature(lang_items)]
 #![feature(libc)]
 #![feature(needs_allocator)]
+#![feature(nll)]
 #![feature(optin_builtin_traits)]
 #![feature(pattern)]
 #![feature(pin)]
diff --git a/src/liballoc/tests/lib.rs b/src/liballoc/tests/lib.rs
index 6ff39227555..b9ba319a943 100644
--- a/src/liballoc/tests/lib.rs
+++ b/src/liballoc/tests/lib.rs
@@ -11,8 +11,7 @@
 #![feature(allocator_api)]
 #![feature(alloc_system)]
 #![feature(box_syntax)]
-#![cfg_attr(stage0, feature(const_fn))]
-#![cfg_attr(not(stage0), feature(min_const_fn))]
+#![feature(min_const_fn)]
 #![feature(drain_filter)]
 #![feature(exact_size_is_empty)]
 #![feature(pattern)]
diff --git a/src/liballoc_jemalloc/lib.rs b/src/liballoc_jemalloc/lib.rs
index bdf0e37a2e6..0065e84a7ad 100644
--- a/src/liballoc_jemalloc/lib.rs
+++ b/src/liballoc_jemalloc/lib.rs
@@ -16,7 +16,7 @@
 #![feature(core_intrinsics)]
 #![feature(libc)]
 #![feature(linkage)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(staged_api)]
 #![feature(rustc_attrs)]
 #![cfg_attr(dummy_jemalloc, allow(dead_code, unused_extern_crates))]
@@ -90,7 +90,6 @@ mod contents {
     // ABI
 
     #[rustc_std_internal_symbol]
-    #[cfg_attr(stage0, no_mangle)]
     pub unsafe extern fn __rde_alloc(size: usize, align: usize) -> *mut u8 {
         let flags = align_to_flags(align, size);
         let ptr = mallocx(size as size_t, flags) as *mut u8;
@@ -98,7 +97,6 @@ mod contents {
     }
 
     #[rustc_std_internal_symbol]
-    #[cfg_attr(stage0, no_mangle)]
     pub unsafe extern fn __rde_dealloc(ptr: *mut u8,
                                        size: usize,
                                        align: usize) {
@@ -107,7 +105,6 @@ mod contents {
     }
 
     #[rustc_std_internal_symbol]
-    #[cfg_attr(stage0, no_mangle)]
     pub unsafe extern fn __rde_realloc(ptr: *mut u8,
                                        _old_size: usize,
                                        align: usize,
@@ -118,7 +115,6 @@ mod contents {
     }
 
     #[rustc_std_internal_symbol]
-    #[cfg_attr(stage0, no_mangle)]
     pub unsafe extern fn __rde_alloc_zeroed(size: usize, align: usize) -> *mut u8 {
         let ptr = if align <= MIN_ALIGN && align <= size {
             calloc(size as size_t, 1) as *mut u8
diff --git a/src/liballoc_system/lib.rs b/src/liballoc_system/lib.rs
index 65204ebf714..3ef03ec6d58 100644
--- a/src/liballoc_system/lib.rs
+++ b/src/liballoc_system/lib.rs
@@ -17,7 +17,7 @@
 
 #![feature(allocator_api)]
 #![feature(core_intrinsics)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(staged_api)]
 #![feature(rustc_attrs)]
 #![cfg_attr(any(unix, target_os = "cloudabi", target_os = "redox"), feature(libc))]
diff --git a/src/libarena/lib.rs b/src/libarena/lib.rs
index 6ad703180c2..b02ae75eff8 100644
--- a/src/libarena/lib.rs
+++ b/src/libarena/lib.rs
@@ -26,7 +26,7 @@
 #![feature(alloc)]
 #![feature(core_intrinsics)]
 #![feature(dropck_eyepatch)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(raw_vec_internals)]
 #![cfg_attr(test, feature(test))]
 
diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs
index 3b7646fa268..5bc4c34743f 100644
--- a/src/libcore/lib.rs
+++ b/src/libcore/lib.rs
@@ -91,7 +91,7 @@
 #![feature(lang_items)]
 #![feature(link_llvm_intrinsics)]
 #![feature(never_type)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(exhaustive_patterns)]
 #![feature(macro_at_most_once_rep)]
 #![feature(no_core)]
diff --git a/src/libcore/mem.rs b/src/libcore/mem.rs
index c99c9f96f12..9871f496678 100644
--- a/src/libcore/mem.rs
+++ b/src/libcore/mem.rs
@@ -285,19 +285,10 @@ pub fn forget<T>(t: T) {
 /// [alignment]: ./fn.align_of.html
 #[inline]
 #[stable(feature = "rust1", since = "1.0.0")]
-#[cfg(not(stage0))]
 pub const fn size_of<T>() -> usize {
     intrinsics::size_of::<T>()
 }
 
-#[inline]
-#[stable(feature = "rust1", since = "1.0.0")]
-#[cfg(stage0)]
-/// Ceci n'est pas la documentation
-pub const fn size_of<T>() -> usize {
-    unsafe { intrinsics::size_of::<T>() }
-}
-
 /// Returns the size of the pointed-to value in bytes.
 ///
 /// This is usually the same as `size_of::<T>()`. However, when `T` *has* no
@@ -343,20 +334,10 @@ pub fn size_of_val<T: ?Sized>(val: &T) -> usize {
 #[inline]
 #[stable(feature = "rust1", since = "1.0.0")]
 #[rustc_deprecated(reason = "use `align_of` instead", since = "1.2.0")]
-#[cfg(not(stage0))]
 pub fn min_align_of<T>() -> usize {
     intrinsics::min_align_of::<T>()
 }
 
-#[inline]
-#[stable(feature = "rust1", since = "1.0.0")]
-#[rustc_deprecated(reason = "use `align_of` instead", since = "1.2.0")]
-#[cfg(stage0)]
-/// Ceci n'est pas la documentation
-pub fn min_align_of<T>() -> usize {
-    unsafe { intrinsics::min_align_of::<T>() }
-}
-
 /// Returns the [ABI]-required minimum alignment of the type of the value that `val` points to.
 ///
 /// Every reference to a value of the type `T` must be a multiple of this number.
@@ -395,19 +376,10 @@ pub fn min_align_of_val<T: ?Sized>(val: &T) -> usize {
 /// ```
 #[inline]
 #[stable(feature = "rust1", since = "1.0.0")]
-#[cfg(not(stage0))]
 pub const fn align_of<T>() -> usize {
     intrinsics::min_align_of::<T>()
 }
 
-#[inline]
-#[stable(feature = "rust1", since = "1.0.0")]
-#[cfg(stage0)]
-/// Ceci n'est pas la documentation
-pub const fn align_of<T>() -> usize {
-    unsafe { intrinsics::min_align_of::<T>() }
-}
-
 /// Returns the [ABI]-required minimum alignment of the type of the value that `val` points to.
 ///
 /// Every reference to a value of the type `T` must be a multiple of this number.
diff --git a/src/libcore/nonzero.rs b/src/libcore/nonzero.rs
index 30067d7e163..118e75e1ee7 100644
--- a/src/libcore/nonzero.rs
+++ b/src/libcore/nonzero.rs
@@ -14,8 +14,7 @@ use ops::CoerceUnsized;
 
 /// A wrapper type for raw pointers and integers that will never be
 /// NULL or 0 that might allow certain optimizations.
-#[cfg_attr(stage0, lang = "non_zero")]
-#[cfg_attr(not(stage0), rustc_layout_scalar_valid_range_start(1))]
+#[rustc_layout_scalar_valid_range_start(1)]
 #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
 #[repr(transparent)]
 pub(crate) struct NonZero<T>(pub(crate) T);
diff --git a/src/libcore/num/mod.rs b/src/libcore/num/mod.rs
index 12da0455cc5..b8b0938b373 100644
--- a/src/libcore/num/mod.rs
+++ b/src/libcore/num/mod.rs
@@ -341,14 +341,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn rotate_left(self, n: u32) -> Self {
-            (self as $UnsignedT).rotate_left(n) as Self
-        }
-
         doc_comment! {
             concat!("Shifts the bits to the left by a specified amount, `n`,
 wrapping the truncated bits to the end of the resulting integer.
@@ -368,20 +360,11 @@ assert_eq!(n.rotate_left(", $rot, "), m);
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_rotate")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn rotate_left(self, n: u32) -> Self {
                 (self as $UnsignedT).rotate_left(n) as Self
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn rotate_right(self, n: u32) -> Self {
-            (self as $UnsignedT).rotate_right(n) as Self
-        }
-
         doc_comment! {
             concat!("Shifts the bits to the right by a specified amount, `n`,
 wrapping the truncated bits to the beginning of the resulting
@@ -402,7 +385,6 @@ assert_eq!(n.rotate_right(", $rot, "), m);
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_rotate")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn rotate_right(self, n: u32) -> Self {
                 (self as $UnsignedT).rotate_right(n) as Self
             }
@@ -430,14 +412,6 @@ assert_eq!(m, ", $swapped, ");
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "reverse_bits", issue = "48763")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn reverse_bits(self) -> Self {
-            (self as $UnsignedT).reverse_bits() as Self
-        }
-
         doc_comment! {
             concat!("Reverses the bit pattern of the integer.
 
@@ -456,7 +430,6 @@ assert_eq!(m, ", $reversed, ");
             #[unstable(feature = "reverse_bits", issue = "48763")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn reverse_bits(self) -> Self {
                 (self as $UnsignedT).reverse_bits() as Self
             }
@@ -1007,16 +980,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_add(self, rhs: Self) -> Self {
-            unsafe {
-                intrinsics::overflowing_add(self, rhs)
-            }
-        }
-
         doc_comment! {
             concat!("Wrapping (modular) addition. Computes `self + rhs`, wrapping around at the
 boundary of the type.
@@ -1034,7 +997,6 @@ $EndFeature, "
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_add(self, rhs: Self) -> Self {
                 unsafe {
                     intrinsics::overflowing_add(self, rhs)
@@ -1042,16 +1004,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_sub(self, rhs: Self) -> Self {
-            unsafe {
-                intrinsics::overflowing_sub(self, rhs)
-            }
-        }
-
         doc_comment! {
             concat!("Wrapping (modular) subtraction. Computes `self - rhs`, wrapping around at the
 boundary of the type.
@@ -1069,7 +1021,6 @@ $EndFeature, "
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_sub(self, rhs: Self) -> Self {
                 unsafe {
                     intrinsics::overflowing_sub(self, rhs)
@@ -1077,16 +1028,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_mul(self, rhs: Self) -> Self {
-            unsafe {
-                intrinsics::overflowing_mul(self, rhs)
-            }
-        }
-
         doc_comment! {
             concat!("Wrapping (modular) multiplication. Computes `self * rhs`, wrapping around at
 the boundary of the type.
@@ -1103,7 +1044,6 @@ $EndFeature, "
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_mul(self, rhs: Self) -> Self {
                 unsafe {
                     intrinsics::overflowing_mul(self, rhs)
@@ -1247,16 +1187,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "num_wrapping", since = "1.2.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_shl(self, rhs: u32) -> Self {
-            unsafe {
-                intrinsics::unchecked_shl(self, (rhs & ($BITS - 1)) as $SelfT)
-            }
-        }
-
         doc_comment! {
             concat!("Panic-free bitwise shift-left; yields `self << mask(rhs)`, where `mask` removes
 any high-order bits of `rhs` that would cause the shift to exceed the bitwidth of the type.
@@ -1278,7 +1208,6 @@ $EndFeature, "
             #[stable(feature = "num_wrapping", since = "1.2.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_shl(self, rhs: u32) -> Self {
                 unsafe {
                     intrinsics::unchecked_shl(self, (rhs & ($BITS - 1)) as $SelfT)
@@ -1286,16 +1215,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "num_wrapping", since = "1.2.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_shr(self, rhs: u32) -> Self {
-            unsafe {
-                intrinsics::unchecked_shr(self, (rhs & ($BITS - 1)) as $SelfT)
-            }
-        }
-
         doc_comment! {
             concat!("Panic-free bitwise shift-right; yields `self >> mask(rhs)`, where `mask`
 removes any high-order bits of `rhs` that would cause the shift to exceed the bitwidth of the type.
@@ -1317,7 +1236,6 @@ $EndFeature, "
             #[stable(feature = "num_wrapping", since = "1.2.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_shr(self, rhs: u32) -> Self {
                 unsafe {
                     intrinsics::unchecked_shr(self, (rhs & ($BITS - 1)) as $SelfT)
@@ -1396,18 +1314,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_add(self, rhs: Self) -> (Self, bool) {
-            let (a, b) = unsafe {
-                intrinsics::add_with_overflow(self as $ActualT,
-                                                rhs as $ActualT)
-            };
-            (a as Self, b)
-        }
-
         doc_comment! {
             concat!("Calculates `self` + `rhs`
 
@@ -1428,7 +1334,6 @@ assert_eq!(", stringify!($SelfT), "::MAX.overflowing_add(1), (", stringify!($Sel
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_add(self, rhs: Self) -> (Self, bool) {
                 let (a, b) = unsafe {
                     intrinsics::add_with_overflow(self as $ActualT,
@@ -1438,18 +1343,6 @@ assert_eq!(", stringify!($SelfT), "::MAX.overflowing_add(1), (", stringify!($Sel
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_sub(self, rhs: Self) -> (Self, bool) {
-            let (a, b) = unsafe {
-                intrinsics::sub_with_overflow(self as $ActualT,
-                                                rhs as $ActualT)
-            };
-            (a as Self, b)
-        }
-
         doc_comment! {
             concat!("Calculates `self` - `rhs`
 
@@ -1470,7 +1363,6 @@ assert_eq!(", stringify!($SelfT), "::MIN.overflowing_sub(1), (", stringify!($Sel
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_sub(self, rhs: Self) -> (Self, bool) {
                 let (a, b) = unsafe {
                     intrinsics::sub_with_overflow(self as $ActualT,
@@ -1480,18 +1372,6 @@ assert_eq!(", stringify!($SelfT), "::MIN.overflowing_sub(1), (", stringify!($Sel
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_mul(self, rhs: Self) -> (Self, bool) {
-            let (a, b) = unsafe {
-                intrinsics::mul_with_overflow(self as $ActualT,
-                                                rhs as $ActualT)
-            };
-            (a as Self, b)
-        }
-
         doc_comment! {
             concat!("Calculates the multiplication of `self` and `rhs`.
 
@@ -1510,7 +1390,6 @@ $EndFeature, "
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_mul(self, rhs: Self) -> (Self, bool) {
                 let (a, b) = unsafe {
                     intrinsics::mul_with_overflow(self as $ActualT,
@@ -1681,14 +1560,6 @@ assert_eq!(", stringify!($SelfT), "::MIN.overflowing_neg(), (", stringify!($Self
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_shl(self, rhs: u32) -> (Self, bool) {
-            (self.wrapping_shl(rhs), (rhs > ($BITS - 1)))
-        }
-
         doc_comment! {
             concat!("Shifts self left by `rhs` bits.
 
@@ -1708,20 +1579,11 @@ $EndFeature, "
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_shl(self, rhs: u32) -> (Self, bool) {
                 (self.wrapping_shl(rhs), (rhs > ($BITS - 1)))
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_shr(self, rhs: u32) -> (Self, bool) {
-            (self.wrapping_shr(rhs), (rhs > ($BITS - 1)))
-        }
-
         doc_comment! {
             concat!("Shifts self right by `rhs` bits.
 
@@ -1741,7 +1603,6 @@ $EndFeature, "
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_shr(self, rhs: u32) -> (Self, bool) {
                 (self.wrapping_shr(rhs), (rhs > ($BITS - 1)))
             }
@@ -2006,12 +1867,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn is_positive(self) -> bool { self > 0 }
-
         doc_comment! {
             concat!("Returns `true` if `self` is positive and `false` if the number is zero or
 negative.
@@ -2028,16 +1883,9 @@ $EndFeature, "
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_sign")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn is_positive(self) -> bool { self > 0 }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn is_negative(self) -> bool { self < 0 }
-
         doc_comment! {
             concat!("Returns `true` if `self` is negative and `false` if the number is zero or
 positive.
@@ -2054,18 +1902,9 @@ $EndFeature, "
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_sign")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn is_negative(self) -> bool { self < 0 }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn to_be_bytes(self) -> [u8; mem::size_of::<Self>()] {
-            self.to_be().to_ne_bytes()
-        }
-
         doc_comment! {
             concat!("Return the memory representation of this integer as a byte array in
 big-endian (network) byte order.
@@ -2081,20 +1920,11 @@ assert_eq!(bytes, ", $be_bytes, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn to_be_bytes(self) -> [u8; mem::size_of::<Self>()] {
                 self.to_be().to_ne_bytes()
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn to_le_bytes(self) -> [u8; mem::size_of::<Self>()] {
-            self.to_le().to_ne_bytes()
-        }
-
 doc_comment! {
             concat!("Return the memory representation of this integer as a byte array in
 little-endian byte order.
@@ -2110,20 +1940,11 @@ assert_eq!(bytes, ", $le_bytes, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn to_le_bytes(self) -> [u8; mem::size_of::<Self>()] {
                 self.to_le().to_ne_bytes()
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn to_ne_bytes(self) -> [u8; mem::size_of::<Self>()] {
-            unsafe { mem::transmute(self) }
-        }
-
         doc_comment! {
             concat!("
 Return the memory representation of this integer as a byte array in
@@ -2151,20 +1972,11 @@ assert_eq!(bytes, if cfg!(target_endian = \"big\") {
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn to_ne_bytes(self) -> [u8; mem::size_of::<Self>()] {
                 unsafe { mem::transmute(self) }
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn from_be_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
-            Self::from_be(Self::from_ne_bytes(bytes))
-        }
-
 doc_comment! {
             concat!("Create an integer value from its representation as a byte array in
 big endian.
@@ -2180,20 +1992,11 @@ assert_eq!(value, ", $swap_op, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn from_be_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
                 Self::from_be(Self::from_ne_bytes(bytes))
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn from_le_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
-            Self::from_le(Self::from_ne_bytes(bytes))
-        }
-
 doc_comment! {
             concat!("
 Create an integer value from its representation as a byte array in
@@ -2210,20 +2013,11 @@ assert_eq!(value, ", $swap_op, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn from_le_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
                 Self::from_le(Self::from_ne_bytes(bytes))
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn from_ne_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
-            unsafe { mem::transmute(bytes) }
-        }
-
         doc_comment! {
             concat!("Create an integer value from its memory representation as a byte
 array in native endianness.
@@ -2250,7 +2044,6 @@ assert_eq!(value, ", $swap_op, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn from_ne_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
                 unsafe { mem::transmute(bytes) }
             }
@@ -2479,16 +2272,6 @@ assert_eq!(n.trailing_zeros(), 3);", $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn rotate_left(self, n: u32) -> Self {
-            // Protect against undefined behaviour for over-long bit shifts
-            let n = n % $BITS;
-            (self << n) | (self >> (($BITS - n) % $BITS))
-        }
-
         doc_comment! {
             concat!("Shifts the bits to the left by a specified amount, `n`,
 wrapping the truncated bits to the end of the resulting integer.
@@ -2508,22 +2291,11 @@ assert_eq!(n.rotate_left(", $rot, "), m);
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_rotate")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn rotate_left(self, n: u32) -> Self {
                 (self << (n % $BITS)) | (self >> (($BITS - (n % $BITS)) % $BITS))
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn rotate_right(self, n: u32) -> Self {
-            // Protect against undefined behaviour for over-long bit shifts
-            let n = n % $BITS;
-            (self >> n) | (self << (($BITS - n) % $BITS))
-        }
-
         doc_comment! {
             concat!("Shifts the bits to the right by a specified amount, `n`,
 wrapping the truncated bits to the beginning of the resulting
@@ -2544,7 +2316,6 @@ assert_eq!(n.rotate_right(", $rot, "), m);
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_rotate")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn rotate_right(self, n: u32) -> Self {
                 (self >> (n % $BITS)) | (self << (($BITS - (n % $BITS)) % $BITS))
             }
@@ -2572,14 +2343,6 @@ assert_eq!(m, ", $swapped, ");
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "reverse_bits", issue = "48763")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn reverse_bits(self) -> Self {
-            unsafe { intrinsics::bitreverse(self as $ActualT) as Self }
-        }
-
         doc_comment! {
             concat!("Reverses the bit pattern of the integer.
 
@@ -2598,7 +2361,6 @@ assert_eq!(m, ", $reversed, ");
             #[unstable(feature = "reverse_bits", issue = "48763")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn reverse_bits(self) -> Self {
                 unsafe { intrinsics::bitreverse(self as $ActualT) as Self }
             }
@@ -3087,16 +2849,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_add(self, rhs: Self) -> Self {
-            unsafe {
-                intrinsics::overflowing_add(self, rhs)
-            }
-        }
-
         doc_comment! {
             concat!("Wrapping (modular) addition. Computes `self + rhs`,
 wrapping around at the boundary of the type.
@@ -3113,7 +2865,6 @@ $EndFeature, "
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_add(self, rhs: Self) -> Self {
                 unsafe {
                     intrinsics::overflowing_add(self, rhs)
@@ -3121,16 +2872,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_sub(self, rhs: Self) -> Self {
-            unsafe {
-                intrinsics::overflowing_sub(self, rhs)
-            }
-        }
-
         doc_comment! {
             concat!("Wrapping (modular) subtraction. Computes `self - rhs`,
 wrapping around at the boundary of the type.
@@ -3147,7 +2888,6 @@ $EndFeature, "
             #[stable(feature = "rust1", since = "1.0.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_sub(self, rhs: Self) -> Self {
                 unsafe {
                     intrinsics::overflowing_sub(self, rhs)
@@ -3155,16 +2895,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "rust1", since = "1.0.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_mul(self, rhs: Self) -> Self {
-            unsafe {
-                intrinsics::overflowing_mul(self, rhs)
-            }
-        }
-
         /// Wrapping (modular) multiplication. Computes `self *
         /// rhs`, wrapping around at the boundary of the type.
         ///
@@ -3182,7 +2912,6 @@ $EndFeature, "
         #[stable(feature = "rust1", since = "1.0.0")]
         #[rustc_const_unstable(feature = "const_int_wrapping")]
         #[inline]
-        #[cfg(not(stage0))]
         pub const fn wrapping_mul(self, rhs: Self) -> Self {
             unsafe {
                 intrinsics::overflowing_mul(self, rhs)
@@ -3304,16 +3033,6 @@ assert_eq!(100", stringify!($SelfT), ".wrapping_mod_euc(10), 0);
             self.overflowing_neg().0
         }
 
-        /// no docs here
-        #[stable(feature = "num_wrapping", since = "1.2.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_shl(self, rhs: u32) -> Self {
-            unsafe {
-                intrinsics::unchecked_shl(self, (rhs & ($BITS - 1)) as $SelfT)
-            }
-        }
-
         doc_comment! {
             concat!("Panic-free bitwise shift-left; yields `self << mask(rhs)`,
 where `mask` removes any high-order bits of `rhs` that
@@ -3337,7 +3056,6 @@ assert_eq!(1", stringify!($SelfT), ".wrapping_shl(128), 1);", $EndFeature, "
             #[stable(feature = "num_wrapping", since = "1.2.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_shl(self, rhs: u32) -> Self {
                 unsafe {
                     intrinsics::unchecked_shl(self, (rhs & ($BITS - 1)) as $SelfT)
@@ -3345,16 +3063,6 @@ assert_eq!(1", stringify!($SelfT), ".wrapping_shl(128), 1);", $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "num_wrapping", since = "1.2.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn wrapping_shr(self, rhs: u32) -> Self {
-            unsafe {
-                intrinsics::unchecked_shr(self, (rhs & ($BITS - 1)) as $SelfT)
-            }
-        }
-
         doc_comment! {
             concat!("Panic-free bitwise shift-right; yields `self >> mask(rhs)`,
 where `mask` removes any high-order bits of `rhs` that
@@ -3378,7 +3086,6 @@ assert_eq!(128", stringify!($SelfT), ".wrapping_shr(128), 128);", $EndFeature, "
             #[stable(feature = "num_wrapping", since = "1.2.0")]
             #[rustc_const_unstable(feature = "const_int_wrapping")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn wrapping_shr(self, rhs: u32) -> Self {
                 unsafe {
                     intrinsics::unchecked_shr(self, (rhs & ($BITS - 1)) as $SelfT)
@@ -3424,18 +3131,6 @@ assert_eq!(3u8.wrapping_pow(6), 217);", $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_add(self, rhs: Self) -> (Self, bool) {
-            let (a, b) = unsafe {
-                intrinsics::add_with_overflow(self as $ActualT,
-                                                rhs as $ActualT)
-            };
-            (a as Self, b)
-        }
-
         doc_comment! {
             concat!("Calculates `self` + `rhs`
 
@@ -3456,7 +3151,6 @@ assert_eq!(", stringify!($SelfT), "::MAX.overflowing_add(1), (0, true));", $EndF
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_add(self, rhs: Self) -> (Self, bool) {
                 let (a, b) = unsafe {
                     intrinsics::add_with_overflow(self as $ActualT,
@@ -3466,18 +3160,6 @@ assert_eq!(", stringify!($SelfT), "::MAX.overflowing_add(1), (0, true));", $EndF
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_sub(self, rhs: Self) -> (Self, bool) {
-            let (a, b) = unsafe {
-                intrinsics::sub_with_overflow(self as $ActualT,
-                                                rhs as $ActualT)
-            };
-            (a as Self, b)
-        }
-
         doc_comment! {
             concat!("Calculates `self` - `rhs`
 
@@ -3499,7 +3181,6 @@ $EndFeature, "
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_sub(self, rhs: Self) -> (Self, bool) {
                 let (a, b) = unsafe {
                     intrinsics::sub_with_overflow(self as $ActualT,
@@ -3509,18 +3190,6 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_mul(self, rhs: Self) -> (Self, bool) {
-            let (a, b) = unsafe {
-                intrinsics::mul_with_overflow(self as $ActualT,
-                                              rhs as $ActualT)
-            };
-            (a as Self, b)
-        }
-
         /// Calculates the multiplication of `self` and `rhs`.
         ///
         /// Returns a tuple of the multiplication along with a boolean
@@ -3541,7 +3210,6 @@ $EndFeature, "
         #[stable(feature = "wrapping", since = "1.7.0")]
         #[rustc_const_unstable(feature = "const_int_overflowing")]
         #[inline]
-        #[cfg(not(stage0))]
         pub const fn overflowing_mul(self, rhs: Self) -> (Self, bool) {
             let (a, b) = unsafe {
                 intrinsics::mul_with_overflow(self as $ActualT,
@@ -3680,14 +3348,6 @@ assert_eq!(2", stringify!($SelfT), ".overflowing_neg(), (-2i32 as ", stringify!(
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_shl(self, rhs: u32) -> (Self, bool) {
-            (self.wrapping_shl(rhs), (rhs > ($BITS - 1)))
-        }
-
         doc_comment! {
             concat!("Shifts self left by `rhs` bits.
 
@@ -3708,20 +3368,11 @@ assert_eq!(0x1", stringify!($SelfT), ".overflowing_shl(132), (0x10, true));", $E
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_shl(self, rhs: u32) -> (Self, bool) {
                 (self.wrapping_shl(rhs), (rhs > ($BITS - 1)))
             }
         }
 
-        /// no docs here
-        #[stable(feature = "wrapping", since = "1.7.0")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn overflowing_shr(self, rhs: u32) -> (Self, bool) {
-            (self.wrapping_shr(rhs), (rhs > ($BITS - 1)))
-        }
-
         doc_comment! {
             concat!("Shifts self right by `rhs` bits.
 
@@ -3742,7 +3393,6 @@ assert_eq!(0x10", stringify!($SelfT), ".overflowing_shr(132), (0x1, true));", $E
             #[stable(feature = "wrapping", since = "1.7.0")]
             #[rustc_const_unstable(feature = "const_int_overflowing")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn overflowing_shr(self, rhs: u32) -> (Self, bool) {
                 (self.wrapping_shr(rhs), (rhs > ($BITS - 1)))
             }
@@ -3985,15 +3635,7 @@ $EndFeature, "
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn to_be_bytes(self) -> [u8; mem::size_of::<Self>()] {
-            self.to_be().to_ne_bytes()
-        }
-
-                doc_comment! {
+        doc_comment! {
             concat!("Return the memory representation of this integer as a byte array in
 big-endian (network) byte order.
 
@@ -4008,20 +3650,11 @@ assert_eq!(bytes, ", $be_bytes, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn to_be_bytes(self) -> [u8; mem::size_of::<Self>()] {
                 self.to_be().to_ne_bytes()
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn to_le_bytes(self) -> [u8; mem::size_of::<Self>()] {
-            self.to_le().to_ne_bytes()
-        }
-
         doc_comment! {
             concat!("Return the memory representation of this integer as a byte array in
 little-endian byte order.
@@ -4037,20 +3670,11 @@ assert_eq!(bytes, ", $le_bytes, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn to_le_bytes(self) -> [u8; mem::size_of::<Self>()] {
                 self.to_le().to_ne_bytes()
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn to_ne_bytes(self) -> [u8; mem::size_of::<Self>()] {
-            unsafe { mem::transmute(self) }
-        }
-
         doc_comment! {
             concat!("
 Return the memory representation of this integer as a byte array in
@@ -4078,20 +3702,11 @@ assert_eq!(bytes, if cfg!(target_endian = \"big\") {
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn to_ne_bytes(self) -> [u8; mem::size_of::<Self>()] {
                 unsafe { mem::transmute(self) }
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn from_be_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
-            Self::from_be(Self::from_ne_bytes(bytes))
-        }
-
         doc_comment! {
             concat!("Create an integer value from its representation as a byte array in
 big endian.
@@ -4107,20 +3722,11 @@ assert_eq!(value, ", $swap_op, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn from_be_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
                 Self::from_be(Self::from_ne_bytes(bytes))
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn from_le_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
-            Self::from_le(Self::from_ne_bytes(bytes))
-        }
-
         doc_comment! {
             concat!("
 Create an integer value from its representation as a byte array in
@@ -4137,20 +3743,11 @@ assert_eq!(value, ", $swap_op, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn from_le_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
                 Self::from_le(Self::from_ne_bytes(bytes))
             }
         }
 
-        /// no docs here
-        #[unstable(feature = "int_to_from_bytes", issue = "52963")]
-        #[inline]
-        #[cfg(stage0)]
-        pub fn from_ne_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
-            unsafe { mem::transmute(bytes) }
-        }
-
         doc_comment! {
             concat!("Create an integer value from its memory representation as a byte
 array in native endianness.
@@ -4177,7 +3774,6 @@ assert_eq!(value, ", $swap_op, ");
             #[unstable(feature = "int_to_from_bytes", issue = "52963")]
             #[rustc_const_unstable(feature = "const_int_conversion")]
             #[inline]
-            #[cfg(not(stage0))]
             pub const fn from_ne_bytes(bytes: [u8; mem::size_of::<Self>()]) -> Self {
                 unsafe { mem::transmute(bytes) }
             }
diff --git a/src/libfmt_macros/lib.rs b/src/libfmt_macros/lib.rs
index 1bac6d22d37..2a38464d7c1 100644
--- a/src/libfmt_macros/lib.rs
+++ b/src/libfmt_macros/lib.rs
@@ -20,7 +20,7 @@
        html_playground_url = "https://play.rust-lang.org/",
        test(attr(deny(warnings))))]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 
 pub use self::Piece::*;
 pub use self::Position::*;
diff --git a/src/libgraphviz/lib.rs b/src/libgraphviz/lib.rs
index 9fa48adebdf..7acadc32048 100644
--- a/src/libgraphviz/lib.rs
+++ b/src/libgraphviz/lib.rs
@@ -288,7 +288,7 @@
        html_root_url = "https://doc.rust-lang.org/nightly/",
        test(attr(allow(unused_variables), deny(warnings))))]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(str_escape)]
 
 use self::LabelText::*;
diff --git a/src/libpanic_abort/lib.rs b/src/libpanic_abort/lib.rs
index 14221f3d79e..cf05e56e53c 100644
--- a/src/libpanic_abort/lib.rs
+++ b/src/libpanic_abort/lib.rs
@@ -24,14 +24,13 @@
 
 #![feature(core_intrinsics)]
 #![feature(libc)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(panic_runtime)]
 #![feature(staged_api)]
 #![feature(rustc_attrs)]
 
 // Rust's "try" function, but if we're aborting on panics we just call the
 // function as there's nothing else we need to do here.
-#[cfg_attr(stage0, no_mangle)]
 #[rustc_std_internal_symbol]
 pub unsafe extern fn __rust_maybe_catch_panic(f: fn(*mut u8),
                                               data: *mut u8,
@@ -51,7 +50,6 @@ pub unsafe extern fn __rust_maybe_catch_panic(f: fn(*mut u8),
 // which would break compat with XP. For now just use `intrinsics::abort` which
 // will kill us with an illegal instruction, which will do a good enough job for
 // now hopefully.
-#[cfg_attr(stage0, no_mangle)]
 #[rustc_std_internal_symbol]
 pub unsafe extern fn __rust_start_panic(_payload: usize) -> u32 {
     abort();
diff --git a/src/libpanic_unwind/lib.rs b/src/libpanic_unwind/lib.rs
index 9c3fc76c307..cfe671c626b 100644
--- a/src/libpanic_unwind/lib.rs
+++ b/src/libpanic_unwind/lib.rs
@@ -34,7 +34,7 @@
 #![feature(core_intrinsics)]
 #![feature(lang_items)]
 #![feature(libc)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(panic_unwind)]
 #![feature(raw)]
 #![feature(staged_api)]
diff --git a/src/libproc_macro/lib.rs b/src/libproc_macro/lib.rs
index d885f9b406f..34a44bd1421 100644
--- a/src/libproc_macro/lib.rs
+++ b/src/libproc_macro/lib.rs
@@ -27,7 +27,7 @@
        test(no_crate_inject, attr(deny(warnings))),
        test(attr(allow(dead_code, deprecated, unused_variables, unused_mut))))]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(rustc_private)]
 #![feature(staged_api)]
 #![feature(lang_items)]
diff --git a/src/libprofiler_builtins/lib.rs b/src/libprofiler_builtins/lib.rs
index a85593253b1..8678330a5a0 100644
--- a/src/libprofiler_builtins/lib.rs
+++ b/src/libprofiler_builtins/lib.rs
@@ -15,5 +15,5 @@
             reason = "internal implementation detail of rustc right now",
             issue = "0")]
 #![allow(unused_features)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(staged_api)]
diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs
index 2eaf1eebb39..b8731e5bb03 100644
--- a/src/librustc/lib.rs
+++ b/src/librustc/lib.rs
@@ -42,16 +42,14 @@
 
 #![feature(box_patterns)]
 #![feature(box_syntax)]
-#![cfg_attr(stage0, feature(const_fn))]
-#![cfg_attr(not(stage0), feature(min_const_fn))]
+#![feature(min_const_fn)]
 #![feature(core_intrinsics)]
 #![feature(drain_filter)]
 #![cfg_attr(windows, feature(libc))]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(never_type)]
 #![feature(exhaustive_patterns)]
 #![feature(extern_types)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(non_exhaustive)]
 #![feature(proc_macro_internals)]
 #![feature(quote)]
@@ -59,7 +57,6 @@
 #![feature(refcell_replace_swap)]
 #![feature(rustc_diagnostic_macros)]
 #![feature(rustc_attrs)]
-#![cfg_attr(stage0, feature(attr_literals))]
 #![feature(slice_patterns)]
 #![feature(slice_sort_by_cached_key)]
 #![feature(specialization)]
@@ -70,10 +67,9 @@
 #![feature(step_trait)]
 #![feature(integer_atomics)]
 #![feature(test)]
-#![cfg_attr(not(stage0), feature(impl_header_lifetime_elision))]
+#![feature(impl_header_lifetime_elision)]
 #![feature(in_band_lifetimes)]
 #![feature(macro_at_most_once_rep)]
-#![cfg_attr(stage0, feature(crate_in_paths))]
 #![feature(crate_visibility_modifier)]
 
 #![recursion_limit="512"]
diff --git a/src/librustc/middle/region.rs b/src/librustc/middle/region.rs
index 788fbcef171..191fa0bc7c5 100644
--- a/src/librustc/middle/region.rs
+++ b/src/librustc/middle/region.rs
@@ -168,8 +168,6 @@ impl_stable_hash_for!(struct ::middle::region::FirstStatementIndex { private });
 
 // compilation error if size of `ScopeData` is not the same as a `u32`
 #[allow(dead_code)]
-// only works on stage 1 when the rustc_layout_scalar_valid_range attribute actually exists
-#[cfg(not(stage0))]
 static ASSERT: () = [()][!(mem::size_of::<ScopeData>() == 4) as usize];
 
 impl Scope {
diff --git a/src/librustc/ty/context.rs b/src/librustc/ty/context.rs
index 37ef408c6bd..9195a426bee 100644
--- a/src/librustc/ty/context.rs
+++ b/src/librustc/ty/context.rs
@@ -829,10 +829,10 @@ impl<'a, 'gcx> HashStable<StableHashingContext<'a>> for TypeckTables<'gcx> {
 impl<'tcx> CommonTypes<'tcx> {
     fn new(interners: &CtxtInterners<'tcx>) -> CommonTypes<'tcx> {
         // Ensure our type representation does not grow
-        #[cfg(all(not(stage0), target_pointer_width = "64"))]
+        #[cfg(target_pointer_width = "64")]
         #[allow(dead_code)]
         static ASSERT_TY_KIND: () = [()][!(::std::mem::size_of::<ty::TyKind>() <= 24) as usize];
-        #[cfg(all(not(stage0), target_pointer_width = "64"))]
+        #[cfg(target_pointer_width = "64")]
         #[allow(dead_code)]
         static ASSERT_TYS: () = [()][!(::std::mem::size_of::<ty::TyS>() <= 32) as usize];
 
diff --git a/src/librustc_allocator/lib.rs b/src/librustc_allocator/lib.rs
index 2a3404ee830..a2017a4ed0f 100644
--- a/src/librustc_allocator/lib.rs
+++ b/src/librustc_allocator/lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(rustc_private)]
 
 #[macro_use] extern crate log;
diff --git a/src/librustc_apfloat/lib.rs b/src/librustc_apfloat/lib.rs
index d6e821d427d..6ea722ba769 100644
--- a/src/librustc_apfloat/lib.rs
+++ b/src/librustc_apfloat/lib.rs
@@ -45,7 +45,7 @@
       html_root_url = "https://doc.rust-lang.org/nightly/")]
 #![forbid(unsafe_code)]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(try_from)]
 // See librustc_cratesio_shim/Cargo.toml for a comment explaining this.
 #[allow(unused_extern_crates)]
diff --git a/src/librustc_asan/lib.rs b/src/librustc_asan/lib.rs
index b3ba86ad8a4..7b845e631ff 100644
--- a/src/librustc_asan/lib.rs
+++ b/src/librustc_asan/lib.rs
@@ -10,7 +10,7 @@
 
 #![sanitizer_runtime]
 #![feature(alloc_system)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(sanitizer_runtime)]
 #![feature(staged_api)]
 #![no_std]
diff --git a/src/librustc_borrowck/lib.rs b/src/librustc_borrowck/lib.rs
index 16da8c8a3b8..049c4b2bd92 100644
--- a/src/librustc_borrowck/lib.rs
+++ b/src/librustc_borrowck/lib.rs
@@ -14,7 +14,7 @@
 
 #![allow(non_camel_case_types)]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(quote)]
 
 #![recursion_limit="256"]
diff --git a/src/librustc_codegen_llvm/lib.rs b/src/librustc_codegen_llvm/lib.rs
index 9cb233122c3..71d739222b6 100644
--- a/src/librustc_codegen_llvm/lib.rs
+++ b/src/librustc_codegen_llvm/lib.rs
@@ -26,7 +26,7 @@
 #![feature(in_band_lifetimes)]
 #![allow(unused_attributes)]
 #![feature(libc)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(quote)]
 #![feature(range_contains)]
 #![feature(rustc_diagnostic_macros)]
diff --git a/src/librustc_codegen_utils/lib.rs b/src/librustc_codegen_utils/lib.rs
index 635819e94e8..03b3b20a4e7 100644
--- a/src/librustc_codegen_utils/lib.rs
+++ b/src/librustc_codegen_utils/lib.rs
@@ -19,7 +19,7 @@
 #![feature(box_patterns)]
 #![feature(box_syntax)]
 #![feature(custom_attribute)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![allow(unused_attributes)]
 #![feature(quote)]
 #![feature(rustc_diagnostic_macros)]
diff --git a/src/librustc_cratesio_shim/src/lib.rs b/src/librustc_cratesio_shim/src/lib.rs
index 55dec45a098..1fe70fa23b7 100644
--- a/src/librustc_cratesio_shim/src/lib.rs
+++ b/src/librustc_cratesio_shim/src/lib.rs
@@ -11,7 +11,7 @@
 // See Cargo.toml for a comment explaining this crate.
 #![allow(unused_extern_crates)]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 
 extern crate bitflags;
 extern crate log;
diff --git a/src/librustc_data_structures/lib.rs b/src/librustc_data_structures/lib.rs
index 43ab3869806..c592a5eb1e0 100644
--- a/src/librustc_data_structures/lib.rs
+++ b/src/librustc_data_structures/lib.rs
@@ -27,8 +27,7 @@
 #![feature(unsize)]
 #![feature(specialization)]
 #![feature(optin_builtin_traits)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(allow_internal_unstable)]
 #![feature(vec_resize_with)]
 
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs
index f8ca154d168..cc6895613f2 100644
--- a/src/librustc_driver/lib.rs
+++ b/src/librustc_driver/lib.rs
@@ -20,7 +20,7 @@
 
 #![feature(box_syntax)]
 #![cfg_attr(unix, feature(libc))]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(option_replace)]
 #![feature(quote)]
 #![feature(rustc_diagnostic_macros)]
diff --git a/src/librustc_errors/lib.rs b/src/librustc_errors/lib.rs
index 266aa326981..12f1a43ed05 100644
--- a/src/librustc_errors/lib.rs
+++ b/src/librustc_errors/lib.rs
@@ -16,7 +16,7 @@
 #![allow(unused_attributes)]
 #![feature(range_contains)]
 #![cfg_attr(unix, feature(libc))]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(optin_builtin_traits)]
 
 extern crate atty;
diff --git a/src/librustc_incremental/lib.rs b/src/librustc_incremental/lib.rs
index acdcf2b459e..d0897a96182 100644
--- a/src/librustc_incremental/lib.rs
+++ b/src/librustc_incremental/lib.rs
@@ -14,7 +14,7 @@
       html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
       html_root_url = "https://doc.rust-lang.org/nightly/")]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(specialization)]
 
 #![recursion_limit="256"]
diff --git a/src/librustc_lint/lib.rs b/src/librustc_lint/lib.rs
index 9e2e3435bd9..e8f09dbdfe1 100644
--- a/src/librustc_lint/lib.rs
+++ b/src/librustc_lint/lib.rs
@@ -26,8 +26,7 @@
 #![cfg_attr(test, feature(test))]
 #![feature(box_patterns)]
 #![feature(box_syntax)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(quote)]
 #![feature(rustc_diagnostic_macros)]
 #![feature(macro_at_most_once_rep)]
diff --git a/src/librustc_llvm/lib.rs b/src/librustc_llvm/lib.rs
index 387660473a8..1c48d844739 100644
--- a/src/librustc_llvm/lib.rs
+++ b/src/librustc_llvm/lib.rs
@@ -8,7 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(static_nobundle)]
 
 #![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
diff --git a/src/librustc_lsan/lib.rs b/src/librustc_lsan/lib.rs
index b3ba86ad8a4..7b845e631ff 100644
--- a/src/librustc_lsan/lib.rs
+++ b/src/librustc_lsan/lib.rs
@@ -10,7 +10,7 @@
 
 #![sanitizer_runtime]
 #![feature(alloc_system)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(sanitizer_runtime)]
 #![feature(staged_api)]
 #![no_std]
diff --git a/src/librustc_metadata/lib.rs b/src/librustc_metadata/lib.rs
index 09a8bea0941..7008166b903 100644
--- a/src/librustc_metadata/lib.rs
+++ b/src/librustc_metadata/lib.rs
@@ -15,7 +15,7 @@
 #![feature(box_patterns)]
 #![feature(libc)]
 #![feature(macro_at_most_once_rep)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(proc_macro_internals)]
 #![feature(proc_macro_quote)]
 #![feature(quote)]
diff --git a/src/librustc_mir/lib.rs b/src/librustc_mir/lib.rs
index a2d70bc05c1..b3ef9eab801 100644
--- a/src/librustc_mir/lib.rs
+++ b/src/librustc_mir/lib.rs
@@ -25,12 +25,10 @@ Rust MIR: a lowered representation of Rust. Also: an experiment!
 #![feature(core_intrinsics)]
 #![feature(const_fn)]
 #![feature(decl_macro)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(exhaustive_patterns)]
 #![feature(range_contains)]
 #![feature(rustc_diagnostic_macros)]
 #![feature(rustc_attrs)]
-#![cfg_attr(stage0, feature(attr_literals))]
 #![feature(never_type)]
 #![feature(specialization)]
 #![feature(try_trait)]
diff --git a/src/librustc_msan/lib.rs b/src/librustc_msan/lib.rs
index b3ba86ad8a4..7b845e631ff 100644
--- a/src/librustc_msan/lib.rs
+++ b/src/librustc_msan/lib.rs
@@ -10,7 +10,7 @@
 
 #![sanitizer_runtime]
 #![feature(alloc_system)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(sanitizer_runtime)]
 #![feature(staged_api)]
 #![no_std]
diff --git a/src/librustc_passes/lib.rs b/src/librustc_passes/lib.rs
index d62cb00923f..42ead92783d 100644
--- a/src/librustc_passes/lib.rs
+++ b/src/librustc_passes/lib.rs
@@ -18,7 +18,7 @@
        html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
        html_root_url = "https://doc.rust-lang.org/nightly/")]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(rustc_diagnostic_macros)]
 
 #[macro_use]
diff --git a/src/librustc_platform_intrinsics/lib.rs b/src/librustc_platform_intrinsics/lib.rs
index fa7008be73a..ca262807817 100644
--- a/src/librustc_platform_intrinsics/lib.rs
+++ b/src/librustc_platform_intrinsics/lib.rs
@@ -10,7 +10,7 @@
 
 #![allow(nonstandard_style)]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 
 pub struct Intrinsic {
     pub inputs: &'static [&'static Type],
diff --git a/src/librustc_plugin/lib.rs b/src/librustc_plugin/lib.rs
index 67f53a67313..2cc3f1efcb5 100644
--- a/src/librustc_plugin/lib.rs
+++ b/src/librustc_plugin/lib.rs
@@ -64,7 +64,7 @@
        html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
        html_root_url = "https://doc.rust-lang.org/nightly/")]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(rustc_diagnostic_macros)]
 
 #[macro_use] extern crate syntax;
diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs
index 47e8588857d..c647197f22b 100644
--- a/src/librustc_privacy/lib.rs
+++ b/src/librustc_privacy/lib.rs
@@ -12,7 +12,7 @@
        html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
        html_root_url = "https://doc.rust-lang.org/nightly/")]
 
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(rustc_diagnostic_macros)]
 
 #![recursion_limit="256"]
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs
index 91b0e9c1dca..a4f8f16cac2 100644
--- a/src/librustc_resolve/lib.rs
+++ b/src/librustc_resolve/lib.rs
@@ -13,7 +13,7 @@
        html_root_url = "https://doc.rust-lang.org/nightly/")]
 
 #![feature(crate_visibility_modifier)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(rustc_diagnostic_macros)]
 #![feature(slice_sort_by_cached_key)]
 
diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs
index c9bae297031..d98b0e8851b 100644
--- a/src/librustc_save_analysis/lib.rs
+++ b/src/librustc_save_analysis/lib.rs
@@ -12,7 +12,7 @@
        html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
        html_root_url = "https://doc.rust-lang.org/nightly/")]
 #![feature(custom_attribute)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![allow(unused_attributes)]
 
 #![recursion_limit="256"]
diff --git a/src/librustc_target/lib.rs b/src/librustc_target/lib.rs
index c198b19ce61..93d61b80847 100644
--- a/src/librustc_target/lib.rs
+++ b/src/librustc_target/lib.rs
@@ -22,9 +22,8 @@
       html_root_url = "https://doc.rust-lang.org/nightly/")]
 
 #![feature(box_syntax)]
-#![cfg_attr(stage0, feature(const_fn))]
-#![cfg_attr(not(stage0), feature(min_const_fn))]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(min_const_fn)]
+#![feature(nll)]
 #![feature(slice_patterns)]
 
 #[macro_use]
diff --git a/src/librustc_traits/lib.rs b/src/librustc_traits/lib.rs
index a6618efebb3..733804fb9b0 100644
--- a/src/librustc_traits/lib.rs
+++ b/src/librustc_traits/lib.rs
@@ -11,11 +11,9 @@
 //! New recursive solver modeled on Chalk's recursive solver. Most of
 //! the guts are broken up into modules; see the comments in those modules.
 
-#![cfg_attr(stage0, feature(crate_in_paths))]
 #![feature(crate_visibility_modifier)]
-#![cfg_attr(stage0, feature(extern_prelude))]
 #![feature(in_band_lifetimes)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 
 #![recursion_limit="256"]
 
diff --git a/src/librustc_tsan/lib.rs b/src/librustc_tsan/lib.rs
index b3ba86ad8a4..7b845e631ff 100644
--- a/src/librustc_tsan/lib.rs
+++ b/src/librustc_tsan/lib.rs
@@ -10,7 +10,7 @@
 
 #![sanitizer_runtime]
 #![feature(alloc_system)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(sanitizer_runtime)]
 #![feature(staged_api)]
 #![no_std]
diff --git a/src/librustc_typeck/lib.rs b/src/librustc_typeck/lib.rs
index c9aa0339dd4..dd556e7d18e 100644
--- a/src/librustc_typeck/lib.rs
+++ b/src/librustc_typeck/lib.rs
@@ -75,7 +75,7 @@ This API is completely unstable and subject to change.
 #![feature(box_syntax)]
 #![feature(crate_visibility_modifier)]
 #![feature(exhaustive_patterns)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(quote)]
 #![feature(refcell_replace_swap)]
 #![feature(rustc_diagnostic_macros)]
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
index 2456a5ad14a..406180c09e8 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -16,7 +16,7 @@
 #![feature(rustc_private)]
 #![feature(box_patterns)]
 #![feature(box_syntax)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(set_stdio)]
 #![feature(slice_sort_by_cached_key)]
 #![feature(test)]
diff --git a/src/libserialize/lib.rs b/src/libserialize/lib.rs
index 1f6ee3d867b..98b48ef2918 100644
--- a/src/libserialize/lib.rs
+++ b/src/libserialize/lib.rs
@@ -24,7 +24,7 @@ Core encoding and decoding interfaces.
 #![feature(core_intrinsics)]
 #![feature(specialization)]
 #![feature(never_type)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![cfg_attr(test, feature(test))]
 
 pub use self::serialize::{Decoder, Encoder, Decodable, Encodable};
diff --git a/src/libstd/alloc.rs b/src/libstd/alloc.rs
index 6753ed4a3df..31fc9ed3f77 100644
--- a/src/libstd/alloc.rs
+++ b/src/libstd/alloc.rs
@@ -151,14 +151,12 @@ pub mod __default_lib_allocator {
     // ABI
 
     #[rustc_std_internal_symbol]
-    #[cfg_attr(stage0, no_mangle)]
     pub unsafe extern fn __rdl_alloc(size: usize, align: usize) -> *mut u8 {
         let layout = Layout::from_size_align_unchecked(size, align);
         System.alloc(layout)
     }
 
     #[rustc_std_internal_symbol]
-    #[cfg_attr(stage0, no_mangle)]
     pub unsafe extern fn __rdl_dealloc(ptr: *mut u8,
                                        size: usize,
                                        align: usize) {
@@ -166,7 +164,6 @@ pub mod __default_lib_allocator {
     }
 
     #[rustc_std_internal_symbol]
-    #[cfg_attr(stage0, no_mangle)]
     pub unsafe extern fn __rdl_realloc(ptr: *mut u8,
                                        old_size: usize,
                                        align: usize,
@@ -176,7 +173,6 @@ pub mod __default_lib_allocator {
     }
 
     #[rustc_std_internal_symbol]
-    #[cfg_attr(stage0, no_mangle)]
     pub unsafe extern fn __rdl_alloc_zeroed(size: usize, align: usize) -> *mut u8 {
         let layout = Layout::from_size_align_unchecked(size, align);
         System.alloc_zeroed(layout)
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index 1eb76d6c45e..7ae4f2de4c3 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -250,8 +250,7 @@
 #![feature(cfg_target_vendor)]
 #![feature(char_error_internals)]
 #![feature(compiler_builtins_lib)]
-#![cfg_attr(stage0, feature(const_fn))]
-#![cfg_attr(not(stage0), feature(min_const_fn))]
+#![feature(min_const_fn)]
 #![feature(const_int_ops)]
 #![feature(const_ip)]
 #![feature(core_intrinsics)]
@@ -270,10 +269,9 @@
 #![feature(libc)]
 #![feature(link_args)]
 #![feature(linkage)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(needs_panic_runtime)]
 #![feature(never_type)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(exhaustive_patterns)]
 #![feature(on_unimplemented)]
 #![feature(optin_builtin_traits)]
@@ -286,7 +284,7 @@
 #![feature(rustc_attrs)]
 #![feature(rustc_const_unstable)]
 #![feature(std_internals)]
-#![feature(stdsimd)]
+#![cfg_attr(not(stage0), feature(stdsimd))]
 #![feature(shrink_to)]
 #![feature(slice_concat_ext)]
 #![feature(slice_internals)]
@@ -302,15 +300,12 @@
 #![feature(unboxed_closures)]
 #![feature(untagged_unions)]
 #![feature(unwind_attributes)]
-#![cfg_attr(stage0, feature(use_extern_macros))]
 #![feature(doc_cfg)]
 #![feature(doc_masked)]
 #![feature(doc_spotlight)]
-#![cfg_attr(all(windows, stage0), feature(used))]
 #![feature(doc_alias)]
 #![feature(doc_keyword)]
 #![feature(panic_info_message)]
-#![cfg_attr(stage0, feature(panic_implementation))]
 #![feature(non_exhaustive)]
 
 #![default_lib_allocator]
diff --git a/src/libstd/panicking.rs b/src/libstd/panicking.rs
index 6eb2db8e63b..6d548443bbf 100644
--- a/src/libstd/panicking.rs
+++ b/src/libstd/panicking.rs
@@ -319,8 +319,7 @@ pub fn panicking() -> bool {
 
 /// Entry point of panic from the libcore crate.
 #[cfg(not(test))]
-#[cfg_attr(stage0, panic_implementation)]
-#[cfg_attr(not(stage0), panic_handler)]
+#[panic_handler]
 #[unwind(allowed)]
 pub fn rust_begin_panic(info: &PanicInfo) -> ! {
     continue_panic_fmt(&info)
@@ -398,7 +397,7 @@ fn continue_panic_fmt(info: &PanicInfo) -> ! {
 #[unstable(feature = "libstd_sys_internals",
            reason = "used by the panic! macro",
            issue = "0")]
-#[cfg_attr(not(any(stage0, test)), lang = "begin_panic")]
+#[cfg_attr(not(test), lang = "begin_panic")]
 #[inline(never)] #[cold] // avoid code bloat at the call sites as much as possible
 pub fn begin_panic<M: Any + Send>(msg: M, file_line_col: &(&'static str, u32, u32)) -> ! {
     // Note that this should be the only allocation performed in this code path.
diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs
index a1b031a655f..9077eca1821 100644
--- a/src/libsyntax/lib.rs
+++ b/src/libsyntax/lib.rs
@@ -21,7 +21,7 @@
 
 #![feature(crate_visibility_modifier)]
 #![feature(macro_at_most_once_rep)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(rustc_attrs)]
 #![feature(rustc_diagnostic_macros)]
 #![feature(slice_sort_by_cached_key)]
diff --git a/src/libsyntax_ext/lib.rs b/src/libsyntax_ext/lib.rs
index 31089c9ff82..7c023fc5c9c 100644
--- a/src/libsyntax_ext/lib.rs
+++ b/src/libsyntax_ext/lib.rs
@@ -16,7 +16,7 @@
 
 #![feature(proc_macro_internals)]
 #![feature(decl_macro)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(str_escape)]
 #![feature(quote)]
 #![feature(rustc_diagnostic_macros)]
diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs
index bd70344b018..e754fe26a76 100644
--- a/src/libsyntax_pos/lib.rs
+++ b/src/libsyntax_pos/lib.rs
@@ -21,11 +21,11 @@
 #![feature(const_fn)]
 #![feature(crate_visibility_modifier)]
 #![feature(custom_attribute)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(non_exhaustive)]
 #![feature(optin_builtin_traits)]
 #![feature(specialization)]
-#![feature(stdsimd)]
+#![cfg_attr(not(stage0), feature(stdsimd))]
 
 use std::borrow::Cow;
 use std::cell::Cell;
diff --git a/src/libterm/lib.rs b/src/libterm/lib.rs
index a49fd67639d..5ac46c2c5eb 100644
--- a/src/libterm/lib.rs
+++ b/src/libterm/lib.rs
@@ -50,7 +50,7 @@
 #![cfg_attr(windows, feature(libc))]
 // Handle rustfmt skips
 #![feature(custom_attribute)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![allow(unused_attributes)]
 
 use std::io::prelude::*;
diff --git a/src/libtest/lib.rs b/src/libtest/lib.rs
index f6383c19cb5..0e862bcf5ca 100644
--- a/src/libtest/lib.rs
+++ b/src/libtest/lib.rs
@@ -35,7 +35,7 @@
 #![feature(asm)]
 #![feature(fnbox)]
 #![cfg_attr(any(unix, target_os = "cloudabi"), feature(libc))]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(set_stdio)]
 #![feature(panic_unwind)]
 #![feature(staged_api)]
diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs
index 424a7e3d009..954eb9d6d03 100644
--- a/src/libunwind/lib.rs
+++ b/src/libunwind/lib.rs
@@ -13,7 +13,7 @@
 
 #![feature(cfg_target_vendor)]
 #![feature(link_cfg)]
-#![cfg_attr(not(stage0), feature(nll))]
+#![feature(nll)]
 #![feature(staged_api)]
 #![feature(unwind_attributes)]
 #![feature(static_nobundle)]
diff --git a/src/stage0.txt b/src/stage0.txt
index 69e8140cdf1..f0967d1ba8a 100644
--- a/src/stage0.txt
+++ b/src/stage0.txt
@@ -12,7 +12,7 @@
 # source tarball for a stable release you'll likely see `1.x.0` for rustc and
 # `0.x.0` for Cargo where they were released on `date`.
 
-date: 2018-09-11
+date: 2018-09-23
 rustc: beta
 cargo: beta
 
diff --git a/src/test/compile-fail-fulldeps/auxiliary/lint_for_crate.rs b/src/test/compile-fail-fulldeps/auxiliary/lint_for_crate.rs
index c965a3ed86c..460e28fc794 100644
--- a/src/test/compile-fail-fulldeps/auxiliary/lint_for_crate.rs
+++ b/src/test/compile-fail-fulldeps/auxiliary/lint_for_crate.rs
@@ -12,7 +12,6 @@
 
 #![feature(plugin_registrar, rustc_private)]
 #![feature(box_syntax)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(macro_at_most_once_rep)]
 
 #[macro_use] extern crate rustc;
diff --git a/src/test/compile-fail-fulldeps/auxiliary/lint_group_plugin_test.rs b/src/test/compile-fail-fulldeps/auxiliary/lint_group_plugin_test.rs
index 082f15a39dd..1057649d969 100644
--- a/src/test/compile-fail-fulldeps/auxiliary/lint_group_plugin_test.rs
+++ b/src/test/compile-fail-fulldeps/auxiliary/lint_group_plugin_test.rs
@@ -12,7 +12,6 @@
 
 #![feature(plugin_registrar)]
 #![feature(box_syntax, rustc_private)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(macro_at_most_once_rep)]
 
 // Load rustc as a plugin to get macros
diff --git a/src/test/compile-fail-fulldeps/auxiliary/lint_plugin_test.rs b/src/test/compile-fail-fulldeps/auxiliary/lint_plugin_test.rs
index 315dad7eea5..b0183a3c56b 100644
--- a/src/test/compile-fail-fulldeps/auxiliary/lint_plugin_test.rs
+++ b/src/test/compile-fail-fulldeps/auxiliary/lint_plugin_test.rs
@@ -12,7 +12,6 @@
 
 #![feature(plugin_registrar)]
 #![feature(box_syntax, rustc_private)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(macro_at_most_once_rep)]
 
 extern crate syntax;
diff --git a/src/test/run-pass-fulldeps/auxiliary/lint_for_crate.rs b/src/test/run-pass-fulldeps/auxiliary/lint_for_crate.rs
index 601003827c6..00c419a8d09 100644
--- a/src/test/run-pass-fulldeps/auxiliary/lint_for_crate.rs
+++ b/src/test/run-pass-fulldeps/auxiliary/lint_for_crate.rs
@@ -12,7 +12,6 @@
 
 #![feature(plugin_registrar, rustc_private)]
 #![feature(box_syntax)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(macro_at_most_once_rep)]
 
 #[macro_use] extern crate rustc;
diff --git a/src/test/run-pass-fulldeps/proc-macro/auxiliary/issue-40001-plugin.rs b/src/test/run-pass-fulldeps/proc-macro/auxiliary/issue-40001-plugin.rs
index f525e0f082a..e0acf340a79 100644
--- a/src/test/run-pass-fulldeps/proc-macro/auxiliary/issue-40001-plugin.rs
+++ b/src/test/run-pass-fulldeps/proc-macro/auxiliary/issue-40001-plugin.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 #![feature(box_syntax, plugin, plugin_registrar, rustc_private)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(macro_at_most_once_rep)]
 #![crate_type = "dylib"]
 
diff --git a/src/test/run-pass/macros/macro-first-set.rs b/src/test/run-pass/macros/macro-first-set.rs
index 984a31d4d52..c5f82ce5f0c 100644
--- a/src/test/run-pass/macros/macro-first-set.rs
+++ b/src/test/run-pass/macros/macro-first-set.rs
@@ -9,7 +9,6 @@
 // except according to those terms.
 
 // run-pass
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 
 //{{{ issue 40569 ==============================================================
 
diff --git a/src/test/run-pass/macros/macro-pub-matcher.rs b/src/test/run-pass/macros/macro-pub-matcher.rs
index 7d8bb430232..8e68a3c0045 100644
--- a/src/test/run-pass/macros/macro-pub-matcher.rs
+++ b/src/test/run-pass/macros/macro-pub-matcher.rs
@@ -10,7 +10,6 @@
 
 // run-pass
 #![allow(dead_code, unused_imports)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(crate_visibility_modifier)]
 
 /**
diff --git a/src/test/ui-fulldeps/auxiliary/lint_group_plugin_test.rs b/src/test/ui-fulldeps/auxiliary/lint_group_plugin_test.rs
index 082f15a39dd..1057649d969 100644
--- a/src/test/ui-fulldeps/auxiliary/lint_group_plugin_test.rs
+++ b/src/test/ui-fulldeps/auxiliary/lint_group_plugin_test.rs
@@ -12,7 +12,6 @@
 
 #![feature(plugin_registrar)]
 #![feature(box_syntax, rustc_private)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(macro_at_most_once_rep)]
 
 // Load rustc as a plugin to get macros
diff --git a/src/test/ui-fulldeps/auxiliary/lint_plugin_test.rs b/src/test/ui-fulldeps/auxiliary/lint_plugin_test.rs
index 315dad7eea5..b0183a3c56b 100644
--- a/src/test/ui-fulldeps/auxiliary/lint_plugin_test.rs
+++ b/src/test/ui-fulldeps/auxiliary/lint_plugin_test.rs
@@ -12,7 +12,6 @@
 
 #![feature(plugin_registrar)]
 #![feature(box_syntax, rustc_private)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(macro_at_most_once_rep)]
 
 extern crate syntax;
diff --git a/src/test/ui-fulldeps/auxiliary/lint_tool_test.rs b/src/test/ui-fulldeps/auxiliary/lint_tool_test.rs
index e184c0919d0..7d2acd7aa4c 100644
--- a/src/test/ui-fulldeps/auxiliary/lint_tool_test.rs
+++ b/src/test/ui-fulldeps/auxiliary/lint_tool_test.rs
@@ -10,7 +10,6 @@
 
 #![feature(plugin_registrar)]
 #![feature(box_syntax, rustc_private)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 #![feature(macro_at_most_once_rep)]
 
 extern crate syntax;
diff --git a/src/test/ui/issues/issue-42755.rs b/src/test/ui/issues/issue-42755.rs
index 46c8cb740de..a8458ccacc3 100644
--- a/src/test/ui/issues/issue-42755.rs
+++ b/src/test/ui/issues/issue-42755.rs
@@ -8,7 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 
 macro_rules! foo {
     ($($p:vis)*) => {} //~ ERROR repetition matches empty token tree
diff --git a/src/test/ui/lint/unreachable_pub-pub_crate.rs b/src/test/ui/lint/unreachable_pub-pub_crate.rs
index 0089617b11c..b58bbe74c97 100644
--- a/src/test/ui/lint/unreachable_pub-pub_crate.rs
+++ b/src/test/ui/lint/unreachable_pub-pub_crate.rs
@@ -16,7 +16,6 @@
 
 // compile-pass
 
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 
 #![allow(unused)]
 #![warn(unreachable_pub)]
diff --git a/src/test/ui/lint/unreachable_pub.rs b/src/test/ui/lint/unreachable_pub.rs
index 7fd4a901090..217e26e4404 100644
--- a/src/test/ui/lint/unreachable_pub.rs
+++ b/src/test/ui/lint/unreachable_pub.rs
@@ -11,7 +11,6 @@
 // compile-pass
 
 #![feature(crate_visibility_modifier)]
-#![cfg_attr(stage0, feature(macro_vis_matcher))]
 
 #![allow(unused)]
 #![warn(unreachable_pub)]