From b71f8d4e1beb2f10a546ee55c41d15aa66ef4240 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Sat, 27 Apr 2019 16:45:30 +0200 Subject: [PATCH] Stabilize Iterator::copied in 1.36.0. --- src/libcore/iter/adapters/mod.rs | 13 +++++++------ src/libcore/iter/mod.rs | 2 +- src/libcore/iter/traits/iterator.rs | 4 +--- src/libcore/tests/lib.rs | 1 - 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/libcore/iter/adapters/mod.rs b/src/libcore/iter/adapters/mod.rs index 3ab404a48d3d8..518442efe7417 100644 --- a/src/libcore/iter/adapters/mod.rs +++ b/src/libcore/iter/adapters/mod.rs @@ -130,19 +130,20 @@ unsafe impl TrustedLen for Rev /// /// [`copied`]: trait.Iterator.html#method.copied /// [`Iterator`]: trait.Iterator.html -#[unstable(feature = "iter_copied", issue = "57127")] +#[stable(feature = "iter_copied", since = "1.36.0")] #[must_use = "iterators are lazy and do nothing unless consumed"] #[derive(Clone, Debug)] pub struct Copied { it: I, } + impl Copied { pub(super) fn new(it: I) -> Copied { Copied { it } } } -#[unstable(feature = "iter_copied", issue = "57127")] +#[stable(feature = "iter_copied", since = "1.36.0")] impl<'a, I, T: 'a> Iterator for Copied where I: Iterator, T: Copy { @@ -169,7 +170,7 @@ impl<'a, I, T: 'a> Iterator for Copied } } -#[unstable(feature = "iter_copied", issue = "57127")] +#[stable(feature = "iter_copied", since = "1.36.0")] impl<'a, I, T: 'a> DoubleEndedIterator for Copied where I: DoubleEndedIterator, T: Copy { @@ -190,7 +191,7 @@ impl<'a, I, T: 'a> DoubleEndedIterator for Copied } } -#[unstable(feature = "iter_copied", issue = "57127")] +#[stable(feature = "iter_copied", since = "1.36.0")] impl<'a, I, T: 'a> ExactSizeIterator for Copied where I: ExactSizeIterator, T: Copy { @@ -203,7 +204,7 @@ impl<'a, I, T: 'a> ExactSizeIterator for Copied } } -#[unstable(feature = "iter_copied", issue = "57127")] +#[stable(feature = "iter_copied", since = "1.36.0")] impl<'a, I, T: 'a> FusedIterator for Copied where I: FusedIterator, T: Copy {} @@ -222,7 +223,7 @@ unsafe impl<'a, I, T: 'a> TrustedRandomAccess for Copied } } -#[unstable(feature = "iter_copied", issue = "57127")] +#[stable(feature = "iter_copied", since = "1.36.0")] unsafe impl<'a, I, T: 'a> TrustedLen for Copied where I: TrustedLen, T: Copy diff --git a/src/libcore/iter/mod.rs b/src/libcore/iter/mod.rs index fd7498119bf49..1601357d3b054 100644 --- a/src/libcore/iter/mod.rs +++ b/src/libcore/iter/mod.rs @@ -352,7 +352,7 @@ pub use self::adapters::Cloned; pub use self::adapters::StepBy; #[stable(feature = "iterator_flatten", since = "1.29.0")] pub use self::adapters::Flatten; -#[unstable(feature = "iter_copied", issue = "57127")] +#[stable(feature = "iter_copied", since = "1.36.0")] pub use self::adapters::Copied; pub(crate) use self::adapters::TrustedRandomAccess; diff --git a/src/libcore/iter/traits/iterator.rs b/src/libcore/iter/traits/iterator.rs index 9da593c86bdfb..403f335810532 100644 --- a/src/libcore/iter/traits/iterator.rs +++ b/src/libcore/iter/traits/iterator.rs @@ -2206,8 +2206,6 @@ pub trait Iterator { /// Basic usage: /// /// ``` - /// #![feature(iter_copied)] - /// /// let a = [1, 2, 3]; /// /// let v_cloned: Vec<_> = a.iter().copied().collect(); @@ -2218,7 +2216,7 @@ pub trait Iterator { /// assert_eq!(v_cloned, vec![1, 2, 3]); /// assert_eq!(v_map, vec![1, 2, 3]); /// ``` - #[unstable(feature = "iter_copied", issue = "57127")] + #[stable(feature = "iter_copied", since = "1.36.0")] fn copied<'a, T: 'a>(self) -> Copied where Self: Sized + Iterator, T: Copy { diff --git a/src/libcore/tests/lib.rs b/src/libcore/tests/lib.rs index ae12eb116b5c3..025f7fb5cc6c3 100644 --- a/src/libcore/tests/lib.rs +++ b/src/libcore/tests/lib.rs @@ -10,7 +10,6 @@ #![feature(fmt_internals)] #![feature(hashmap_internals)] #![feature(is_sorted)] -#![feature(iter_copied)] #![feature(iter_nth_back)] #![feature(iter_once_with)] #![feature(pattern)]