Skip to content

Commit 2bccea4

Browse files
authored
Rollup merge of rust-lang#51511 - Centril:feature/stabilize_iterator_flatten, r=SimonSapin
Stabilize Iterator::flatten in 1.29, fixes rust-lang#48213. This PR stabilizes [`Iterator::flatten`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.flatten) in *version 1.29* (1.28 goes to beta in 10 days, I don't think there's enough time to land it in that time, but let's see...). Tracking issue is: rust-lang#48213. cc @bluss re. itertools. r? @SimonSapin ping @pietroalbini -- let's do a crater run when this passes CI :)
2 parents 96b4733 + 85796dd commit 2bccea4

File tree

4 files changed

+7
-15
lines changed

4 files changed

+7
-15
lines changed

src/libcore/iter/iterator.rs

+1-7
Original file line numberDiff line numberDiff line change
@@ -1036,8 +1036,6 @@ pub trait Iterator {
10361036
/// Basic usage:
10371037
///
10381038
/// ```
1039-
/// #![feature(iterator_flatten)]
1040-
///
10411039
/// let data = vec![vec![1, 2, 3, 4], vec![5, 6]];
10421040
/// let flattened = data.into_iter().flatten().collect::<Vec<u8>>();
10431041
/// assert_eq!(flattened, &[1, 2, 3, 4, 5, 6]);
@@ -1046,8 +1044,6 @@ pub trait Iterator {
10461044
/// Mapping and then flattening:
10471045
///
10481046
/// ```
1049-
/// #![feature(iterator_flatten)]
1050-
///
10511047
/// let words = ["alpha", "beta", "gamma"];
10521048
///
10531049
/// // chars() returns an iterator
@@ -1074,8 +1070,6 @@ pub trait Iterator {
10741070
/// Flattening once only removes one level of nesting:
10751071
///
10761072
/// ```
1077-
/// #![feature(iterator_flatten)]
1078-
///
10791073
/// let d3 = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]];
10801074
///
10811075
/// let d2 = d3.iter().flatten().collect::<Vec<_>>();
@@ -1093,7 +1087,7 @@ pub trait Iterator {
10931087
///
10941088
/// [`flat_map()`]: #method.flat_map
10951089
#[inline]
1096-
#[unstable(feature = "iterator_flatten", issue = "48213")]
1090+
#[stable(feature = "iterator_flatten", since = "1.29")]
10971091
fn flatten(self) -> Flatten<Self>
10981092
where Self: Sized, Self::Item: IntoIterator {
10991093
Flatten { inner: flatten_compat(self) }

src/libcore/iter/mod.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -2575,13 +2575,13 @@ impl<I, U, F> FusedIterator for FlatMap<I, U, F>
25752575
/// [`flatten`]: trait.Iterator.html#method.flatten
25762576
/// [`Iterator`]: trait.Iterator.html
25772577
#[must_use = "iterator adaptors are lazy and do nothing unless consumed"]
2578-
#[unstable(feature = "iterator_flatten", issue = "48213")]
2578+
#[stable(feature = "iterator_flatten", since = "1.29")]
25792579
pub struct Flatten<I: Iterator>
25802580
where I::Item: IntoIterator {
25812581
inner: FlattenCompat<I, <I::Item as IntoIterator>::IntoIter>,
25822582
}
25832583

2584-
#[unstable(feature = "iterator_flatten", issue = "48213")]
2584+
#[stable(feature = "iterator_flatten", since = "1.29")]
25852585
impl<I, U> fmt::Debug for Flatten<I>
25862586
where I: Iterator + fmt::Debug, U: Iterator + fmt::Debug,
25872587
I::Item: IntoIterator<IntoIter = U, Item = U::Item>,
@@ -2591,15 +2591,15 @@ impl<I, U> fmt::Debug for Flatten<I>
25912591
}
25922592
}
25932593

2594-
#[unstable(feature = "iterator_flatten", issue = "48213")]
2594+
#[stable(feature = "iterator_flatten", since = "1.29")]
25952595
impl<I, U> Clone for Flatten<I>
25962596
where I: Iterator + Clone, U: Iterator + Clone,
25972597
I::Item: IntoIterator<IntoIter = U, Item = U::Item>,
25982598
{
25992599
fn clone(&self) -> Self { Flatten { inner: self.inner.clone() } }
26002600
}
26012601

2602-
#[unstable(feature = "iterator_flatten", issue = "48213")]
2602+
#[stable(feature = "iterator_flatten", since = "1.29")]
26032603
impl<I, U> Iterator for Flatten<I>
26042604
where I: Iterator, U: Iterator,
26052605
I::Item: IntoIterator<IntoIter = U, Item = U::Item>
@@ -2627,7 +2627,7 @@ impl<I, U> Iterator for Flatten<I>
26272627
}
26282628
}
26292629

2630-
#[unstable(feature = "iterator_flatten", issue = "48213")]
2630+
#[stable(feature = "iterator_flatten", since = "1.29")]
26312631
impl<I, U> DoubleEndedIterator for Flatten<I>
26322632
where I: DoubleEndedIterator, U: DoubleEndedIterator,
26332633
I::Item: IntoIterator<IntoIter = U, Item = U::Item>
@@ -2650,7 +2650,7 @@ impl<I, U> DoubleEndedIterator for Flatten<I>
26502650
}
26512651
}
26522652

2653-
#[unstable(feature = "iterator_flatten", issue = "48213")]
2653+
#[stable(feature = "iterator_flatten", since = "1.29")]
26542654
impl<I, U> FusedIterator for Flatten<I>
26552655
where I: FusedIterator, U: Iterator,
26562656
I::Item: IntoIterator<IntoIter = U, Item = U::Item> {}

src/libcore/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@
8989
#![feature(extern_types)]
9090
#![feature(fundamental)]
9191
#![feature(intrinsics)]
92-
#![feature(iterator_flatten)]
9392
#![feature(lang_items)]
9493
#![feature(link_llvm_intrinsics)]
9594
#![feature(never_type)]

src/libcore/tests/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
#![feature(flt2dec)]
2424
#![feature(fmt_internals)]
2525
#![feature(hashmap_internals)]
26-
#![feature(iterator_flatten)]
2726
#![feature(pattern)]
2827
#![feature(range_is_empty)]
2928
#![feature(raw)]

0 commit comments

Comments
 (0)