Skip to content

Commit f436b6d

Browse files
authored
Rollup merge of #88548 - inquisitivecrystal:intersperse, r=m-ou-se
Stabilize `Iterator::intersperse()` This PR stabilizes the methods `Iterator::intersperse()` and `Iterator::intersperse_with()`. The FCP has [already completed](#79524 (comment)). Closes #79524.
2 parents 59588a9 + 06dd4c0 commit f436b6d

File tree

6 files changed

+12
-20
lines changed

6 files changed

+12
-20
lines changed

library/core/src/iter/adapters/intersperse.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use super::Peekable;
44
///
55
/// This `struct` is created by [`Iterator::intersperse`]. See its documentation
66
/// for more information.
7-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
7+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
88
#[derive(Debug, Clone)]
99
pub struct Intersperse<I: Iterator>
1010
where
@@ -24,7 +24,7 @@ where
2424
}
2525
}
2626

27-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
27+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
2828
impl<I> Iterator for Intersperse<I>
2929
where
3030
I: Iterator,
@@ -61,7 +61,7 @@ where
6161
///
6262
/// This `struct` is created by [`Iterator::intersperse_with`]. See its
6363
/// documentation for more information.
64-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
64+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
6565
pub struct IntersperseWith<I, G>
6666
where
6767
I: Iterator,
@@ -71,7 +71,7 @@ where
7171
needs_sep: bool,
7272
}
7373

74-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
74+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
7575
impl<I, G> crate::fmt::Debug for IntersperseWith<I, G>
7676
where
7777
I: Iterator + crate::fmt::Debug,
@@ -87,7 +87,7 @@ where
8787
}
8888
}
8989

90-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
90+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
9191
impl<I, G> crate::clone::Clone for IntersperseWith<I, G>
9292
where
9393
I: Iterator + crate::clone::Clone,
@@ -113,7 +113,7 @@ where
113113
}
114114
}
115115

116-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
116+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
117117
impl<I, G> Iterator for IntersperseWith<I, G>
118118
where
119119
I: Iterator,

library/core/src/iter/adapters/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pub use self::flatten::Flatten;
4242
#[stable(feature = "iter_copied", since = "1.36.0")]
4343
pub use self::copied::Copied;
4444

45-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
45+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
4646
pub use self::intersperse::{Intersperse, IntersperseWith};
4747

4848
#[unstable(feature = "iter_map_while", reason = "recently added", issue = "68537")]

library/core/src/iter/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ pub use self::adapters::{
414414
Chain, Cycle, Enumerate, Filter, FilterMap, FlatMap, Fuse, Inspect, Map, Peekable, Rev, Scan,
415415
Skip, SkipWhile, Take, TakeWhile, Zip,
416416
};
417-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
417+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
418418
pub use self::adapters::{Intersperse, IntersperseWith};
419419

420420
pub(crate) use self::adapters::process_results;

library/core/src/iter/traits/iterator.rs

+4-10
Original file line numberDiff line numberDiff line change
@@ -535,8 +535,6 @@ pub trait Iterator {
535535
/// Basic usage:
536536
///
537537
/// ```
538-
/// #![feature(iter_intersperse)]
539-
///
540538
/// let mut a = [0, 1, 2].iter().intersperse(&100);
541539
/// assert_eq!(a.next(), Some(&0)); // The first element from `a`.
542540
/// assert_eq!(a.next(), Some(&100)); // The separator.
@@ -547,17 +545,16 @@ pub trait Iterator {
547545
/// ```
548546
///
549547
/// `intersperse` can be very useful to join an iterator's items using a common element:
550-
/// ```
551-
/// #![feature(iter_intersperse)]
552548
///
549+
/// ```
553550
/// let hello = ["Hello", "World", "!"].iter().copied().intersperse(" ").collect::<String>();
554551
/// assert_eq!(hello, "Hello World !");
555552
/// ```
556553
///
557554
/// [`Clone`]: crate::clone::Clone
558555
/// [`intersperse_with`]: Iterator::intersperse_with
559556
#[inline]
560-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
557+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
561558
fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
562559
where
563560
Self: Sized,
@@ -582,8 +579,6 @@ pub trait Iterator {
582579
/// Basic usage:
583580
///
584581
/// ```
585-
/// #![feature(iter_intersperse)]
586-
///
587582
/// #[derive(PartialEq, Debug)]
588583
/// struct NotClone(usize);
589584
///
@@ -600,9 +595,8 @@ pub trait Iterator {
600595
///
601596
/// `intersperse_with` can be used in situations where the separator needs
602597
/// to be computed:
603-
/// ```
604-
/// #![feature(iter_intersperse)]
605598
///
599+
/// ```
606600
/// let src = ["Hello", "to", "all", "people", "!!"].iter().copied();
607601
///
608602
/// // The closure mutably borrows its context to generate an item.
@@ -615,7 +609,7 @@ pub trait Iterator {
615609
/// [`Clone`]: crate::clone::Clone
616610
/// [`intersperse`]: Iterator::intersperse
617611
#[inline]
618-
#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")]
612+
#[stable(feature = "iter_intersperse", since = "1.56.0")]
619613
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
620614
where
621615
Self: Sized,

library/core/tests/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
#![feature(int_log)]
4949
#![feature(iter_advance_by)]
5050
#![feature(iter_partition_in_place)]
51-
#![feature(iter_intersperse)]
5251
#![feature(iter_is_partitioned)]
5352
#![feature(iter_order_by)]
5453
#![feature(iter_map_while)]

src/librustdoc/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#![feature(never_type)]
1414
#![feature(once_cell)]
1515
#![feature(type_ascription)]
16-
#![feature(iter_intersperse)]
1716
#![recursion_limit = "256"]
1817
#![warn(rustc::internal)]
1918

0 commit comments

Comments
 (0)