about summary refs log tree commit diff
path: root/library
diff options
context:
space:
mode:
authorEthan Brierley <ethanboxx@gmail.com>2021-05-18 10:37:28 +0100
committerEthan Brierley <ethanboxx@gmail.com>2021-06-14 09:58:32 +0100
commitb59f7d9662b47e1d62f09ec448dbda321fa5a406 (patch)
tree451307dee2ad7bb8834f86b90e3ceb05bf2ff551 /library
parent14831568d506b5ee7be3e7d5a2f029ce9048b609 (diff)
downloadrust-b59f7d9662b47e1d62f09ec448dbda321fa5a406.tar.gz
rust-b59f7d9662b47e1d62f09ec448dbda321fa5a406.zip
stabilize `int_error_matching`
Diffstat (limited to 'library')
-rw-r--r--library/core/src/lib.rs1
-rw-r--r--library/core/src/num/error.rs23
-rw-r--r--library/core/src/num/mod.rs7
-rw-r--r--library/core/tests/lib.rs1
-rw-r--r--library/std/src/lib.rs1
-rw-r--r--library/std/src/num.rs7
6 files changed, 10 insertions, 30 deletions
diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs
index 949ef27f018..73959291481 100644
--- a/library/core/src/lib.rs
+++ b/library/core/src/lib.rs
@@ -165,7 +165,6 @@
 #![feature(slice_ptr_get)]
 #![feature(no_niche)] // rust-lang/rust#68303
 #![feature(no_coverage)] // rust-lang/rust#84605
-#![feature(int_error_matching)]
 #![cfg_attr(bootstrap, feature(target_feature_11))]
 #![deny(unsafe_op_in_unsafe_fn)]
 #![deny(or_patterns_back_compat)]
diff --git a/library/core/src/num/error.rs b/library/core/src/num/error.rs
index e2cc8faf854..07902eec2e8 100644
--- a/library/core/src/num/error.rs
+++ b/library/core/src/num/error.rs
@@ -74,26 +74,20 @@ pub struct ParseIntError {
 /// # Example
 ///
 /// ```
-/// #![feature(int_error_matching)]
-///
 /// # fn main() {
 /// if let Err(e) = i32::from_str_radix("a12", 10) {
 ///     println!("Failed conversion to i32: {:?}", e.kind());
 /// }
 /// # }
 /// ```
-#[unstable(
-    feature = "int_error_matching",
-    reason = "it can be useful to match errors when making error messages \
-              for integer parsing",
-    issue = "22639"
-)]
+#[stable(feature = "int_error_matching", since = "1.54.0")]
 #[derive(Debug, Clone, PartialEq, Eq)]
 #[non_exhaustive]
 pub enum IntErrorKind {
     /// Value being parsed is empty.
     ///
-    /// Among other causes, this variant will be constructed when parsing an empty string.
+    /// This variant will be constructed when parsing an empty string.
+    #[stable(feature = "int_error_matching", since = "1.54.0")]
     Empty,
     /// Contains an invalid digit in its context.
     ///
@@ -102,26 +96,25 @@ pub enum IntErrorKind {
     ///
     /// This variant is also constructed when a `+` or `-` is misplaced within a string
     /// either on its own or in the middle of a number.
+    #[stable(feature = "int_error_matching", since = "1.54.0")]
     InvalidDigit,
     /// Integer is too large to store in target integer type.
+    #[stable(feature = "int_error_matching", since = "1.54.0")]
     PosOverflow,
     /// Integer is too small to store in target integer type.
+    #[stable(feature = "int_error_matching", since = "1.54.0")]
     NegOverflow,
     /// Value was Zero
     ///
     /// This variant will be emitted when the parsing string has a value of zero, which
     /// would be illegal for non-zero types.
+    #[stable(feature = "int_error_matching", since = "1.54.0")]
     Zero,
 }
 
 impl ParseIntError {
     /// Outputs the detailed cause of parsing an integer failing.
-    #[unstable(
-        feature = "int_error_matching",
-        reason = "it can be useful to match errors when making error messages \
-              for integer parsing",
-        issue = "22639"
-    )]
+    #[stable(feature = "int_error_matching", since = "1.54.0")]
     pub fn kind(&self) -> &IntErrorKind {
         &self.kind
     }
diff --git a/library/core/src/num/mod.rs b/library/core/src/num/mod.rs
index 6032dc9a2d3..464f241982d 100644
--- a/library/core/src/num/mod.rs
+++ b/library/core/src/num/mod.rs
@@ -57,12 +57,7 @@ pub use nonzero::{NonZeroI128, NonZeroI16, NonZeroI32, NonZeroI64, NonZeroI8, No
 #[stable(feature = "try_from", since = "1.34.0")]
 pub use error::TryFromIntError;
 
-#[unstable(
-    feature = "int_error_matching",
-    reason = "it can be useful to match errors when making error messages \
-              for integer parsing",
-    issue = "22639"
-)]
+#[stable(feature = "int_error_matching", since = "1.54.0")]
 pub use error::IntErrorKind;
 
 macro_rules! usize_isize_to_xe_bytes_doc {
diff --git a/library/core/tests/lib.rs b/library/core/tests/lib.rs
index 16051b3bc36..2ff1e75ab87 100644
--- a/library/core/tests/lib.rs
+++ b/library/core/tests/lib.rs
@@ -46,7 +46,6 @@
 #![feature(try_trait_v2)]
 #![feature(slice_internals)]
 #![feature(slice_partition_dedup)]
-#![feature(int_error_matching)]
 #![feature(iter_advance_by)]
 #![feature(iter_partition_in_place)]
 #![feature(iter_intersperse)]
diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs
index c4f21587457..62722c9d521 100644
--- a/library/std/src/lib.rs
+++ b/library/std/src/lib.rs
@@ -275,7 +275,6 @@
 #![feature(global_asm)]
 #![feature(hashmap_internals)]
 #![feature(int_error_internals)]
-#![feature(int_error_matching)]
 #![feature(integer_atomics)]
 #![feature(into_future)]
 #![feature(intra_doc_pointers)]
diff --git a/library/std/src/num.rs b/library/std/src/num.rs
index 0f1c5962685..b08ec710305 100644
--- a/library/std/src/num.rs
+++ b/library/std/src/num.rs
@@ -22,12 +22,7 @@ pub use core::num::{NonZeroI128, NonZeroI16, NonZeroI32, NonZeroI64, NonZeroI8,
 #[stable(feature = "nonzero", since = "1.28.0")]
 pub use core::num::{NonZeroU128, NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8, NonZeroUsize};
 
-#[unstable(
-    feature = "int_error_matching",
-    reason = "it can be useful to match errors when making error messages \
-              for integer parsing",
-    issue = "22639"
-)]
+ #[stable(feature = "int_error_matching", since = "1.54.0")]
 pub use core::num::IntErrorKind;
 
 #[cfg(test)]