Change:
This is a tracking issue for Iterator::copied. Added in . Feature gate: . Related feature: in .
do you feel your comment in is still an objection to the state of this feature, given the response in
So ultimately, was closed meaning that we are comfortable with the specialization. If that specialization is always in place then is a redundant type (and the impls that come with it are also redundant). However, keeping the cost and the type also has less of a risk attached to it so there's a trade-off here. I don't know what the right choice is, but those are the facts as I see them.
Fixed :).
For reference, pattern is quite common according to (%5Cs%5C%7C%5Cs(%3F%3A%26%5Cs%5Cw%2B%5Cs%5C%7C%5Cs%5C%7B%3F%5Cs%5Cw%2B%7C%5Cw%2B%5Cs%5C%7C%5Cs%5C%7B%3F%5Cs%5C%5Cs%5Cw%2B)%5Cs%5C%7D%3F%5Cs*%5C)&insensitive=off&space=off&precise=off&sources=on This includes both Iterators and Options, because a regex match cannot separate those.
Is there anything blocking stabilization here? We'd like to suggest this in Clippy, see (The crux is that is clearer than , but gives off the wrong impression)
That's not my call... =D Picking random libs member... is there anything blocking stabilization here?
Doesn't seem like it. fcp merge
Team member has proposed to merge this. The next step is review by the rest of the tagged team members: [x] [ ] [x] [x] [x] [x] [ ] No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See for info about what commands tagged team members can give me.
:bell: This is now entering its final comment period, as per the . :bell:
The final comment period, with a disposition to merge, as per the , is now complete. As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed. The RFC will be merged soon.

Discussion:
/// /// [`copied`]: trait.Iterator.html#method.copied /// [`Iterator`]: trait.Iterator.html <del> #[unstable(feature = "iter_copied", issue = "57127")] </del> <ins> #[stable(feature = "iter_copied", since = "1.36.0")] </ins> #[must_use = "iterators are lazy and do nothing unless consumed"] #[derive(Clone, Debug)] pub struct Copied<I> { it: I, } impl<I> Copied<I> { pub(super) fn new(it: I) -> Copied<I> { Copied { it } } } <del> #[unstable(feature = "iter_copied", issue = "57127")] </del> <ins> #[stable(feature = "iter_copied", since = "1.36.0")] </ins> impl<'a, I, T: 'a> Iterator for Copied<I> where I: Iterator<Item=&'a T>, T: Copy {

} } <del> #[unstable(feature = "iter_copied", issue = "57127")] </del> <ins> #[stable(feature = "iter_copied", since = "1.36.0")] </ins> impl<'a, I, T: 'a> DoubleEndedIterator for Copied<I> where I: DoubleEndedIterator<Item=&'a T>, T: Copy {

} } <del> #[unstable(feature = "iter_copied", issue = "57127")] </del> <ins> #[stable(feature = "iter_copied", since = "1.36.0")] </ins> impl<'a, I, T: 'a> ExactSizeIterator for Copied<I> where I: ExactSizeIterator<Item=&'a T>, T: Copy {

} } <del> #[unstable(feature = "iter_copied", issue = "57127")] </del> <ins> #[stable(feature = "iter_copied", since = "1.36.0")] </ins> impl<'a, I, T: 'a> FusedIterator for Copied<I> where I: FusedIterator<Item=&'a T>, T: Copy {}

} } <del> #[unstable(feature = "iter_copied", issue = "57127")] </del> <ins> #[stable(feature = "iter_copied", since = "1.36.0")] </ins> unsafe impl<'a, I, T: 'a> TrustedLen for Copied<I> where I: TrustedLen<Item=&'a T>, T: Copy

pub use self::adapters::StepBy; #[stable(feature = "iterator_flatten", since = "1.29.0")] pub use self::adapters::Flatten; <del> #[unstable(feature = "iter_copied", issue = "57127")] </del> <ins> #[stable(feature = "iter_copied", since = "1.36.0")] </ins> pub use self::adapters::Copied; pub(crate) use self::adapters::TrustedRandomAccess;

/// Basic usage: /// /// ``` <del> /// #![feature(iter_copied)] /// </del> /// let a = [1, 2, 3]; /// /// let v_cloned: Vec<_> = a.iter().copied().collect();

/// assert_eq!(v_cloned, vec![1, 2, 3]); /// assert_eq!(v_map, vec![1, 2, 3]); /// ``` <del> #[unstable(feature = "iter_copied", issue = "57127")] </del> <ins> #[stable(feature = "iter_copied", since = "1.36.0")] </ins> fn copied<'a, T: 'a>(self) -> Copied<Self> where Self: Sized + Iterator<Item=&'a T>, T: Copy {

#![feature(fmt_internals)] #![feature(hashmap_internals)] #![feature(is_sorted)] <del> #![feature(iter_copied)] </del> #![feature(iter_nth_back)] #![feature(iter_once_with)] #![feature(pattern)]