diff --git a/library/core/src/range/iter.rs b/library/core/src/range/iter.rs
index 0cddfff4022df..c29b498bd25f8 100644
--- a/library/core/src/range/iter.rs
+++ b/library/core/src/range/iter.rs
@@ -11,12 +11,15 @@ use crate::{intrinsics, mem};
pub struct RangeIter(legacy::Range);
impl RangeIter {
- #[unstable(feature = "new_range_api", issue = "125687")]
+ #[unstable(feature = "new_range_remainder", issue = "154458")]
/// Returns the remainder of the range being iterated over.
///
/// # Examples
+ ///
/// ```
/// #![feature(new_range_api)]
+ /// #![feature(new_range_remainder)]
+ ///
/// let range = core::range::Range::from(3..11);
/// let mut iter = range.into_iter();
/// assert_eq!(iter.clone().remainder(), range);
@@ -175,7 +178,10 @@ impl RangeInclusiveIter {
/// If the iterator is exhausted or empty, returns `None`.
///
/// # Examples
+ ///
/// ```
+ /// #![feature(new_range_remainder)]
+ ///
/// let range = core::range::RangeInclusive::from(3..=11);
/// let mut iter = range.into_iter();
/// assert_eq!(iter.clone().remainder().unwrap(), range);
@@ -184,7 +190,7 @@ impl RangeInclusiveIter {
/// iter.by_ref().for_each(drop);
/// assert!(iter.remainder().is_none());
/// ```
- #[stable(feature = "new_range_inclusive_api", since = "1.95.0")]
+ #[unstable(feature = "new_range_remainder", issue = "154458")]
pub fn remainder(self) -> Option> {
if self.0.is_empty() {
return None;
@@ -330,8 +336,10 @@ impl RangeFromIter {
/// Returns the remainder of the range being iterated over.
///
/// # Examples
+ ///
/// ```
- /// #![feature(new_range_api)]
+ /// #![feature(new_range_remainder)]
+ ///
/// let range = core::range::RangeFrom::from(3..);
/// let mut iter = range.into_iter();
/// assert_eq!(iter.clone().remainder(), range);
@@ -340,7 +348,7 @@ impl RangeFromIter {
/// ```
#[inline]
#[rustc_inherit_overflow_checks]
- #[unstable(feature = "new_range_api", issue = "125687")]
+ #[unstable(feature = "new_range_remainder", issue = "154458")]
pub fn remainder(self) -> RangeFrom {
// Need to handle this case even if overflow-checks are disabled,
// because a `RangeFromIter` could be exhausted in a crate with
diff --git a/tests/codegen-llvm/fromrangeiter-overflow-checks.rs b/tests/codegen-llvm/fromrangeiter-overflow-checks.rs
index 0d640178f459a..8662a6456c8bf 100644
--- a/tests/codegen-llvm/fromrangeiter-overflow-checks.rs
+++ b/tests/codegen-llvm/fromrangeiter-overflow-checks.rs
@@ -11,6 +11,7 @@
#![crate_type = "lib"]
#![feature(new_range_api)]
+#![feature(new_range_remainder)]
use std::range::RangeFrom;
diff --git a/tests/ui/iterators/rangefrom-overflow-debug.rs b/tests/ui/iterators/rangefrom-overflow-debug.rs
index 9a1bc6910a044..7eafbadc62fb1 100644
--- a/tests/ui/iterators/rangefrom-overflow-debug.rs
+++ b/tests/ui/iterators/rangefrom-overflow-debug.rs
@@ -2,7 +2,7 @@
//@ needs-unwind
//@ compile-flags: -O -C debug_assertions=yes
-#![feature(new_range_api)]
+#![feature(new_range_remainder)]
use std::panic;
diff --git a/tests/ui/iterators/rangefrom-overflow-ndebug.rs b/tests/ui/iterators/rangefrom-overflow-ndebug.rs
index 4ce9b0636383c..f1a6301c50d99 100644
--- a/tests/ui/iterators/rangefrom-overflow-ndebug.rs
+++ b/tests/ui/iterators/rangefrom-overflow-ndebug.rs
@@ -1,7 +1,7 @@
//@ run-pass
//@ compile-flags: -O -C debug_assertions=no
-#![feature(new_range_api)]
+#![feature(new_range_remainder)]
fn main() {
let mut it = core::range::RangeFrom::from(u8::MAX..).into_iter();
diff --git a/tests/ui/iterators/rangefrom-overflow-overflow-checks.rs b/tests/ui/iterators/rangefrom-overflow-overflow-checks.rs
index 7e3b0fc308405..af432afacabb6 100644
--- a/tests/ui/iterators/rangefrom-overflow-overflow-checks.rs
+++ b/tests/ui/iterators/rangefrom-overflow-overflow-checks.rs
@@ -2,7 +2,7 @@
//@ needs-unwind
//@ compile-flags: -O -C overflow-checks=yes
-#![feature(new_range_api)]
+#![feature(new_range_remainder)]
use std::panic;
diff --git a/tests/ui/range/new_range_stability.rs b/tests/ui/range/new_range_stability.rs
index 0b2965ecba237..71a0f02e58968 100644
--- a/tests/ui/range/new_range_stability.rs
+++ b/tests/ui/range/new_range_stability.rs
@@ -19,7 +19,7 @@ fn range_inclusive(mut r: RangeInclusive) {
let mut i = r.into_iter();
i.next();
- i.remainder();
+ i.remainder(); //~ ERROR unstable
}
fn range_to_inclusive(mut r: RangeToInclusive) {
diff --git a/tests/ui/range/new_range_stability.stderr b/tests/ui/range/new_range_stability.stderr
index 747c39d001eb4..64ef6a4166873 100644
--- a/tests/ui/range/new_range_stability.stderr
+++ b/tests/ui/range/new_range_stability.stderr
@@ -28,16 +28,26 @@ LL | use std::range::RangeIter;
= help: add `#![feature(new_range_api)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-error[E0658]: use of unstable library feature `new_range_api`
+error[E0658]: use of unstable library feature `new_range_remainder`
+ --> $DIR/new_range_stability.rs:22:7
+ |
+LL | i.remainder();
+ | ^^^^^^^^^
+ |
+ = note: see issue #154458 for more information
+ = help: add `#![feature(new_range_remainder)]` to the crate attributes to enable
+ = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
+
+error[E0658]: use of unstable library feature `new_range_remainder`
--> $DIR/new_range_stability.rs:43:7
|
LL | i.remainder();
| ^^^^^^^^^
|
- = note: see issue #125687 for more information
- = help: add `#![feature(new_range_api)]` to the crate attributes to enable
+ = note: see issue #154458 for more information
+ = help: add `#![feature(new_range_remainder)]` to the crate attributes to enable
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-error: aborting due to 4 previous errors
+error: aborting due to 5 previous errors
For more information about this error, try `rustc --explain E0658`.