Rollup merge of #89086 - WaffleLapkin:stabilize_iter_map_while, r=kennytm
Stabilize `Iterator::map_while` Per the FCP: https://github.com/rust-lang/rust/issues/68537#issuecomment-922385035 This PR stabilizes `Iterator::map_while` and `iter::MapWhile` in Rust 1.57.
This commit is contained in:
commit
d7de8d2b53
7 changed files with 6 additions and 12 deletions
|
@ -18,7 +18,6 @@
|
|||
#![feature(extend_one)]
|
||||
#![feature(hash_raw_entry)]
|
||||
#![feature(in_band_lifetimes)]
|
||||
#![feature(iter_map_while)]
|
||||
#![feature(maybe_uninit_uninit_array)]
|
||||
#![feature(min_specialization)]
|
||||
#![feature(never_type)]
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#![feature(binary_heap_retain)]
|
||||
#![feature(binary_heap_as_slice)]
|
||||
#![feature(inplace_iteration)]
|
||||
#![feature(iter_map_while)]
|
||||
#![feature(slice_group_by)]
|
||||
#![feature(slice_partition_dedup)]
|
||||
#![feature(vec_spare_capacity)]
|
||||
|
|
|
@ -10,7 +10,7 @@ use crate::ops::{ControlFlow, Try};
|
|||
/// [`map_while`]: Iterator::map_while
|
||||
/// [`Iterator`]: trait.Iterator.html
|
||||
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||
#[unstable(feature = "iter_map_while", reason = "recently added", issue = "68537")]
|
||||
#[stable(feature = "iter_map_while", since = "1.57.0")]
|
||||
#[derive(Clone)]
|
||||
pub struct MapWhile<I, P> {
|
||||
iter: I,
|
||||
|
@ -23,14 +23,14 @@ impl<I, P> MapWhile<I, P> {
|
|||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "iter_map_while", reason = "recently added", issue = "68537")]
|
||||
#[stable(feature = "iter_map_while", since = "1.57.0")]
|
||||
impl<I: fmt::Debug, P> fmt::Debug for MapWhile<I, P> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
f.debug_struct("MapWhile").field("iter", &self.iter).finish()
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "iter_map_while", reason = "recently added", issue = "68537")]
|
||||
#[stable(feature = "iter_map_while", since = "1.57.0")]
|
||||
impl<B, I: Iterator, P> Iterator for MapWhile<I, P>
|
||||
where
|
||||
P: FnMut(I::Item) -> Option<B>,
|
||||
|
|
|
@ -45,7 +45,7 @@ pub use self::copied::Copied;
|
|||
#[stable(feature = "iter_intersperse", since = "1.56.0")]
|
||||
pub use self::intersperse::{Intersperse, IntersperseWith};
|
||||
|
||||
#[unstable(feature = "iter_map_while", reason = "recently added", issue = "68537")]
|
||||
#[stable(feature = "iter_map_while", since = "1.57.0")]
|
||||
pub use self::map_while::MapWhile;
|
||||
|
||||
#[unstable(feature = "trusted_random_access", issue = "none")]
|
||||
|
|
|
@ -399,7 +399,7 @@ pub use self::adapters::Cloned;
|
|||
pub use self::adapters::Copied;
|
||||
#[stable(feature = "iterator_flatten", since = "1.29.0")]
|
||||
pub use self::adapters::Flatten;
|
||||
#[unstable(feature = "iter_map_while", reason = "recently added", issue = "68537")]
|
||||
#[stable(feature = "iter_map_while", since = "1.57.0")]
|
||||
pub use self::adapters::MapWhile;
|
||||
#[unstable(feature = "inplace_iteration", issue = "none")]
|
||||
pub use self::adapters::SourceIter;
|
||||
|
|
|
@ -1116,7 +1116,6 @@ pub trait Iterator {
|
|||
/// Basic usage:
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(iter_map_while)]
|
||||
/// let a = [-1i32, 4, 0, 1];
|
||||
///
|
||||
/// let mut iter = a.iter().map_while(|x| 16i32.checked_div(*x));
|
||||
|
@ -1147,7 +1146,6 @@ pub trait Iterator {
|
|||
/// Stopping after an initial [`None`]:
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(iter_map_while)]
|
||||
/// use std::convert::TryFrom;
|
||||
///
|
||||
/// let a = [0, 1, 2, -3, 4, 5, -6];
|
||||
|
@ -1165,7 +1163,6 @@ pub trait Iterator {
|
|||
/// removed:
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(iter_map_while)]
|
||||
/// use std::convert::TryFrom;
|
||||
///
|
||||
/// let a = [1, 2, -3, 4];
|
||||
|
@ -1191,7 +1188,7 @@ pub trait Iterator {
|
|||
///
|
||||
/// [`fuse`]: Iterator::fuse
|
||||
#[inline]
|
||||
#[unstable(feature = "iter_map_while", reason = "recently added", issue = "68537")]
|
||||
#[stable(feature = "iter_map_while", since = "1.57.0")]
|
||||
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
|
||||
where
|
||||
Self: Sized,
|
||||
|
|
|
@ -50,7 +50,6 @@
|
|||
#![feature(iter_partition_in_place)]
|
||||
#![feature(iter_is_partitioned)]
|
||||
#![feature(iter_order_by)]
|
||||
#![feature(iter_map_while)]
|
||||
#![feature(const_mut_refs)]
|
||||
#![feature(const_pin)]
|
||||
#![feature(const_slice_from_raw_parts)]
|
||||
|
|
Loading…
Add table
Reference in a new issue