From d031a441273051eed7cdbc4aad19ed2ce3d56dd9 Mon Sep 17 00:00:00 2001 From: Jacob Pratt Date: Sat, 9 Jul 2022 15:23:53 -0400 Subject: [PATCH] Stabilize `Iterator::intersperse` --- compiler/rustc_codegen_llvm/src/lib.rs | 1 - compiler/rustc_lint/src/lib.rs | 1 - compiler/rustc_passes/src/lib.rs | 1 - compiler/rustc_typeck/src/lib.rs | 1 - library/core/src/iter/adapters/intersperse.rs | 12 ++++++------ library/core/src/iter/adapters/mod.rs | 2 +- library/core/src/iter/mod.rs | 2 +- library/core/src/iter/traits/iterator.rs | 12 ++---------- library/core/tests/lib.rs | 1 - src/librustdoc/lib.rs | 1 - src/tools/clippy/clippy_lints/src/lib.rs | 1 - 11 files changed, 10 insertions(+), 25 deletions(-) diff --git a/compiler/rustc_codegen_llvm/src/lib.rs b/compiler/rustc_codegen_llvm/src/lib.rs index a7dd8e16d28eb..4adf6ff5777e2 100644 --- a/compiler/rustc_codegen_llvm/src/lib.rs +++ b/compiler/rustc_codegen_llvm/src/lib.rs @@ -10,7 +10,6 @@ #![feature(let_else)] #![feature(extern_types)] #![feature(once_cell)] -#![feature(iter_intersperse)] #![recursion_limit = "256"] #![allow(rustc::potential_query_instability)] diff --git a/compiler/rustc_lint/src/lib.rs b/compiler/rustc_lint/src/lib.rs index aaee0caa070e7..c68483614f038 100644 --- a/compiler/rustc_lint/src/lib.rs +++ b/compiler/rustc_lint/src/lib.rs @@ -31,7 +31,6 @@ #![feature(box_patterns)] #![feature(control_flow_enum)] #![feature(if_let_guard)] -#![feature(iter_intersperse)] #![feature(iter_order_by)] #![feature(let_chains)] #![feature(let_else)] diff --git a/compiler/rustc_passes/src/lib.rs b/compiler/rustc_passes/src/lib.rs index 497c0931c2182..545b7a16d1360 100644 --- a/compiler/rustc_passes/src/lib.rs +++ b/compiler/rustc_passes/src/lib.rs @@ -6,7 +6,6 @@ #![allow(rustc::potential_query_instability)] #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] -#![feature(iter_intersperse)] #![feature(let_else)] #![feature(let_chains)] #![feature(map_try_insert)] diff --git a/compiler/rustc_typeck/src/lib.rs b/compiler/rustc_typeck/src/lib.rs index 08c194ec0b605..6fd92d92cf420 100644 --- a/compiler/rustc_typeck/src/lib.rs +++ b/compiler/rustc_typeck/src/lib.rs @@ -63,7 +63,6 @@ This API is completely unstable and subject to change. #![feature(hash_drain_filter)] #![feature(if_let_guard)] #![feature(is_sorted)] -#![feature(iter_intersperse)] #![feature(label_break_value)] #![feature(let_chains)] #![feature(let_else)] diff --git a/library/core/src/iter/adapters/intersperse.rs b/library/core/src/iter/adapters/intersperse.rs index d8bbd424cf258..c35ce373d1ee5 100644 --- a/library/core/src/iter/adapters/intersperse.rs +++ b/library/core/src/iter/adapters/intersperse.rs @@ -4,7 +4,7 @@ use super::Peekable; /// /// This `struct` is created by [`Iterator::intersperse`]. See its documentation /// for more information. -#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] +#[stable(feature = "iter_intersperse", since = "1.64.0")] #[derive(Debug, Clone)] pub struct Intersperse where @@ -24,7 +24,7 @@ where } } -#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] +#[stable(feature = "iter_intersperse", since = "1.64.0")] impl Iterator for Intersperse where I: Iterator, @@ -61,7 +61,7 @@ where /// /// This `struct` is created by [`Iterator::intersperse_with`]. See its /// documentation for more information. -#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] +#[stable(feature = "iter_intersperse", since = "1.64.0")] pub struct IntersperseWith where I: Iterator, @@ -71,7 +71,7 @@ where needs_sep: bool, } -#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] +#[stable(feature = "iter_intersperse", since = "1.64.0")] impl crate::fmt::Debug for IntersperseWith where I: Iterator + crate::fmt::Debug, @@ -87,7 +87,7 @@ where } } -#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] +#[stable(feature = "iter_intersperse", since = "1.64.0")] impl crate::clone::Clone for IntersperseWith where I: Iterator + crate::clone::Clone, @@ -113,7 +113,7 @@ where } } -#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] +#[stable(feature = "iter_intersperse", since = "1.64.0")] impl Iterator for IntersperseWith where I: Iterator, diff --git a/library/core/src/iter/adapters/mod.rs b/library/core/src/iter/adapters/mod.rs index 916a26e242466..3e15b3d6dde53 100644 --- a/library/core/src/iter/adapters/mod.rs +++ b/library/core/src/iter/adapters/mod.rs @@ -47,7 +47,7 @@ pub use self::flatten::Flatten; #[stable(feature = "iter_copied", since = "1.36.0")] pub use self::copied::Copied; -#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] +#[stable(feature = "iter_intersperse", since = "1.64.0")] pub use self::intersperse::{Intersperse, IntersperseWith}; #[stable(feature = "iter_map_while", since = "1.57.0")] diff --git a/library/core/src/iter/mod.rs b/library/core/src/iter/mod.rs index d5c6aed5b6c8a..d0fb22744b254 100644 --- a/library/core/src/iter/mod.rs +++ b/library/core/src/iter/mod.rs @@ -421,7 +421,7 @@ pub use self::adapters::{ Chain, Cycle, Enumerate, Filter, FilterMap, FlatMap, Fuse, Inspect, Map, Peekable, Rev, Scan, Skip, SkipWhile, Take, TakeWhile, Zip, }; -#[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] +#[stable(feature = "iter_intersperse", since = "1.64.0")] pub use self::adapters::{Intersperse, IntersperseWith}; pub(crate) use self::adapters::try_process; diff --git a/library/core/src/iter/traits/iterator.rs b/library/core/src/iter/traits/iterator.rs index 275412b57b55f..6b6c122973c0f 100644 --- a/library/core/src/iter/traits/iterator.rs +++ b/library/core/src/iter/traits/iterator.rs @@ -633,8 +633,6 @@ pub trait Iterator { /// Basic usage: /// /// ``` - /// #![feature(iter_intersperse)] - /// /// let mut a = [0, 1, 2].iter().intersperse(&100); /// assert_eq!(a.next(), Some(&0)); // The first element from `a`. /// assert_eq!(a.next(), Some(&100)); // The separator. @@ -646,8 +644,6 @@ pub trait Iterator { /// /// `intersperse` can be very useful to join an iterator's items using a common element: /// ``` - /// #![feature(iter_intersperse)] - /// /// let hello = ["Hello", "World", "!"].iter().copied().intersperse(" ").collect::(); /// assert_eq!(hello, "Hello World !"); /// ``` @@ -655,7 +651,7 @@ pub trait Iterator { /// [`Clone`]: crate::clone::Clone /// [`intersperse_with`]: Iterator::intersperse_with #[inline] - #[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] + #[stable(feature = "iter_intersperse", since = "1.64.0")] fn intersperse(self, separator: Self::Item) -> Intersperse where Self: Sized, @@ -680,8 +676,6 @@ pub trait Iterator { /// Basic usage: /// /// ``` - /// #![feature(iter_intersperse)] - /// /// #[derive(PartialEq, Debug)] /// struct NotClone(usize); /// @@ -699,8 +693,6 @@ pub trait Iterator { /// `intersperse_with` can be used in situations where the separator needs /// to be computed: /// ``` - /// #![feature(iter_intersperse)] - /// /// let src = ["Hello", "to", "all", "people", "!!"].iter().copied(); /// /// // The closure mutably borrows its context to generate an item. @@ -713,7 +705,7 @@ pub trait Iterator { /// [`Clone`]: crate::clone::Clone /// [`intersperse`]: Iterator::intersperse #[inline] - #[unstable(feature = "iter_intersperse", reason = "recently added", issue = "79524")] + #[stable(feature = "iter_intersperse", since = "1.64.0")] fn intersperse_with(self, separator: G) -> IntersperseWith where Self: Sized, diff --git a/library/core/tests/lib.rs b/library/core/tests/lib.rs index fe89dd8c88d97..4a3305ff7d6d8 100644 --- a/library/core/tests/lib.rs +++ b/library/core/tests/lib.rs @@ -65,7 +65,6 @@ #![feature(iter_advance_by)] #![feature(iter_collect_into)] #![feature(iter_partition_in_place)] -#![feature(iter_intersperse)] #![feature(iter_is_partitioned)] #![feature(iter_next_chunk)] #![feature(iter_order_by)] diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 0d3ec7ecb6448..ba21ede901123 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -15,7 +15,6 @@ #![feature(never_type)] #![feature(once_cell)] #![feature(type_ascription)] -#![feature(iter_intersperse)] #![feature(type_alias_impl_trait)] #![feature(generic_associated_types)] #![recursion_limit = "256"] diff --git a/src/tools/clippy/clippy_lints/src/lib.rs b/src/tools/clippy/clippy_lints/src/lib.rs index 172fdf8c85269..92e0c4cfb1434 100644 --- a/src/tools/clippy/clippy_lints/src/lib.rs +++ b/src/tools/clippy/clippy_lints/src/lib.rs @@ -3,7 +3,6 @@ #![feature(box_patterns)] #![feature(control_flow_enum)] #![feature(drain_filter)] -#![feature(iter_intersperse)] #![feature(let_chains)] #![feature(let_else)] #![feature(lint_reasons)]