about summary refs log tree commit diff
diff options
context:
space:
mode:
authorest31 <MTest31@outlook.com>2017-01-06 02:49:28 +0100
committerest31 <MTest31@outlook.com>2017-01-06 03:53:55 +0100
commit1779ffa98f89ba98a9c404f31d559fa7d6214caa (patch)
tree5bbd602550a1523b63b6cfe7f6558002fbeaf58c
parent28f6d4a63786a7e63bc5d3b66b1754a02b1b564d (diff)
downloadrust-1779ffa98f89ba98a9c404f31d559fa7d6214caa.tar.gz
rust-1779ffa98f89ba98a9c404f31d559fa7d6214caa.zip
Make members of {std,core}::{i128,u128} unstable
Adding it in a stable form was an accident.
It thankfully only leaked to nightly.

Fixes #38860
-rw-r--r--src/libcore/num/i128.rs2
-rw-r--r--src/libcore/num/int_macros.rs23
-rw-r--r--src/libcore/num/u128.rs2
-rw-r--r--src/libcore/num/uint_macros.rs23
-rw-r--r--src/librustc_const_math/lib.rs1
-rw-r--r--src/test/compile-fail/i128-feature-libs.rs17
6 files changed, 44 insertions, 24 deletions
diff --git a/src/libcore/num/i128.rs b/src/libcore/num/i128.rs
index 6268271a1dc..04354e2e33f 100644
--- a/src/libcore/num/i128.rs
+++ b/src/libcore/num/i128.rs
@@ -14,4 +14,4 @@
 
 #![unstable(feature = "i128", issue="35118")]
 
-int_module! { i128 }
+int_module! { i128, #[unstable(feature = "i128", issue="35118")] }
diff --git a/src/libcore/num/int_macros.rs b/src/libcore/num/int_macros.rs
index 630fac9d92f..04311d687ea 100644
--- a/src/libcore/num/int_macros.rs
+++ b/src/libcore/num/int_macros.rs
@@ -1,4 +1,4 @@
-// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
+// Copyright 2012-2017 The Rust Project Developers. See the COPYRIGHT
 // file at the top-level directory of this distribution and at
 // http://rust-lang.org/COPYRIGHT.
 //
@@ -10,13 +10,14 @@
 
 #![doc(hidden)]
 
-macro_rules! int_module { ($T:ident) => (
-
-/// The smallest value that can be represented by this integer type.
-#[stable(feature = "rust1", since = "1.0.0")]
-pub const MIN: $T = $T::min_value();
-/// The largest value that can be represented by this integer type.
-#[stable(feature = "rust1", since = "1.0.0")]
-pub const MAX: $T = $T::max_value();
-
-) }
+macro_rules! int_module {
+    ($T:ident) => (int_module!($T, #[stable(feature = "rust1", since = "1.0.0")]););
+    ($T:ident, $($attr: tt)*) => (
+        /// The smallest value that can be represented by this integer type.
+        $($attr)*
+        pub const MIN: $T = $T::min_value();
+        /// The largest value that can be represented by this integer type.
+        $($attr)*
+        pub const MAX: $T = $T::max_value();
+    )
+}
diff --git a/src/libcore/num/u128.rs b/src/libcore/num/u128.rs
index 77291f68725..987ac3e0007 100644
--- a/src/libcore/num/u128.rs
+++ b/src/libcore/num/u128.rs
@@ -13,4 +13,4 @@
 //! *[See also the `u128` primitive type](../../std/primitive.u128.html).*
 
 #![unstable(feature = "i128", issue="35118")]
-uint_module! { u128 }
+uint_module! { u128, #[unstable(feature = "i128", issue="35118")] }
diff --git a/src/libcore/num/uint_macros.rs b/src/libcore/num/uint_macros.rs
index a3a2dc73e9c..2e59b39278a 100644
--- a/src/libcore/num/uint_macros.rs
+++ b/src/libcore/num/uint_macros.rs
@@ -1,4 +1,4 @@
-// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
+// Copyright 2012-2017 The Rust Project Developers. See the COPYRIGHT
 // file at the top-level directory of this distribution and at
 // http://rust-lang.org/COPYRIGHT.
 //
@@ -10,13 +10,14 @@
 
 #![doc(hidden)]
 
-macro_rules! uint_module { ($T:ident) => (
-
-/// The smallest value that can be represented by this integer type.
-#[stable(feature = "rust1", since = "1.0.0")]
-pub const MIN: $T = $T::min_value();
-/// The largest value that can be represented by this integer type.
-#[stable(feature = "rust1", since = "1.0.0")]
-pub const MAX: $T = $T::max_value();
-
-) }
+macro_rules! uint_module {
+    ($T:ident) => (uint_module!($T, #[stable(feature = "rust1", since = "1.0.0")]););
+    ($T:ident, $($attr: tt)*) => (
+        /// The smallest value that can be represented by this integer type.
+        $($attr)*
+        pub const MIN: $T = $T::min_value();
+        /// The largest value that can be represented by this integer type.
+        $($attr)*
+        pub const MAX: $T = $T::max_value();
+    )
+}
diff --git a/src/librustc_const_math/lib.rs b/src/librustc_const_math/lib.rs
index 597344a2c82..cd933c00599 100644
--- a/src/librustc_const_math/lib.rs
+++ b/src/librustc_const_math/lib.rs
@@ -26,6 +26,7 @@
 #![feature(rustc_private)]
 #![feature(staged_api)]
 #![feature(const_fn)]
+#![cfg_attr(not(stage0), feature(i128))]
 
 #[macro_use] extern crate log;
 #[macro_use] extern crate syntax;
diff --git a/src/test/compile-fail/i128-feature-libs.rs b/src/test/compile-fail/i128-feature-libs.rs
new file mode 100644
index 00000000000..b29ac50fd37
--- /dev/null
+++ b/src/test/compile-fail/i128-feature-libs.rs
@@ -0,0 +1,17 @@
+// Copyright 2017 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 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn testl() {
+    ::std::u128::MAX; //~ ERROR use of unstable library feature 'i128'
+}
+
+fn testl2() {
+    ::std::i128::MAX; //~ ERROR use of unstable library feature 'i128'
+}