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`.