Skip to content

Commit ce0541e

Browse files
committed
Stabilize the map/value methods on ControlFlow
And fix the stability attribute on the `pub use` in `core::ops`.
1 parent f7b4c72 commit ce0541e

File tree

9 files changed

+7
-20
lines changed

9 files changed

+7
-20
lines changed

compiler/rustc_borrowck/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#![doc(rust_logo)]
66
#![feature(assert_matches)]
77
#![feature(box_patterns)]
8-
#![feature(control_flow_enum)]
98
#![feature(let_chains)]
109
#![feature(never_type)]
1110
#![feature(rustc_attrs)]

compiler/rustc_hir_analysis/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ This API is completely unstable and subject to change.
6363
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
6464
#![doc(rust_logo)]
6565
#![feature(assert_matches)]
66-
#![feature(control_flow_enum)]
6766
#![feature(if_let_guard)]
6867
#![feature(iter_intersperse)]
6968
#![feature(let_chains)]

compiler/rustc_hir_typeck/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#![allow(rustc::untranslatable_diagnostic)]
44
#![feature(array_windows)]
55
#![feature(box_patterns)]
6-
#![feature(control_flow_enum)]
76
#![feature(if_let_guard)]
87
#![feature(let_chains)]
98
#![feature(never_type)]

compiler/rustc_infer/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#![doc(rust_logo)]
2121
#![feature(assert_matches)]
2222
#![feature(box_patterns)]
23-
#![feature(control_flow_enum)]
2423
#![feature(extend_one)]
2524
#![feature(if_let_guard)]
2625
#![feature(iter_intersperse)]

compiler/rustc_lint/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
#![feature(array_windows)]
3333
#![feature(assert_matches)]
3434
#![feature(box_patterns)]
35-
#![feature(control_flow_enum)]
3635
#![feature(extract_if)]
3736
#![feature(if_let_guard)]
3837
#![feature(iter_order_by)]

compiler/rustc_metadata/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#![allow(rustc::potential_query_instability)]
44
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")]
55
#![doc(rust_logo)]
6-
#![feature(control_flow_enum)]
76
#![feature(coroutines)]
87
#![feature(decl_macro)]
98
#![feature(error_iter)]

compiler/rustc_trait_selection/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#![feature(associated_type_defaults)]
2121
#![feature(box_patterns)]
2222
#![feature(cfg_version)]
23-
#![feature(control_flow_enum)]
2423
#![feature(extract_if)]
2524
#![feature(if_let_guard)]
2625
#![feature(iter_intersperse)]

library/core/src/ops/control_flow.rs

+6-12
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ impl<B, C> ControlFlow<B, C> {
178178
/// assert_eq!(ControlFlow::<String, i32>::Continue(3).break_value(), None);
179179
/// ```
180180
#[inline]
181-
#[unstable(feature = "control_flow_enum", reason = "new API", issue = "75744")]
181+
#[stable(feature = "control_flow_enum", since = "CURRENT_RUSTC_VERSION")]
182182
pub fn break_value(self) -> Option<B> {
183183
match self {
184184
ControlFlow::Continue(..) => None,
@@ -189,11 +189,8 @@ impl<B, C> ControlFlow<B, C> {
189189
/// Maps `ControlFlow<B, C>` to `ControlFlow<T, C>` by applying a function
190190
/// to the break value in case it exists.
191191
#[inline]
192-
#[unstable(feature = "control_flow_enum", reason = "new API", issue = "75744")]
193-
pub fn map_break<T, F>(self, f: F) -> ControlFlow<T, C>
194-
where
195-
F: FnOnce(B) -> T,
196-
{
192+
#[stable(feature = "control_flow_enum", since = "CURRENT_RUSTC_VERSION")]
193+
pub fn map_break<T>(self, f: impl FnOnce(B) -> T) -> ControlFlow<T, C> {
197194
match self {
198195
ControlFlow::Continue(x) => ControlFlow::Continue(x),
199196
ControlFlow::Break(x) => ControlFlow::Break(f(x)),
@@ -213,7 +210,7 @@ impl<B, C> ControlFlow<B, C> {
213210
/// assert_eq!(ControlFlow::<String, i32>::Continue(3).continue_value(), Some(3));
214211
/// ```
215212
#[inline]
216-
#[unstable(feature = "control_flow_enum", reason = "new API", issue = "75744")]
213+
#[stable(feature = "control_flow_enum", since = "CURRENT_RUSTC_VERSION")]
217214
pub fn continue_value(self) -> Option<C> {
218215
match self {
219216
ControlFlow::Continue(x) => Some(x),
@@ -224,11 +221,8 @@ impl<B, C> ControlFlow<B, C> {
224221
/// Maps `ControlFlow<B, C>` to `ControlFlow<B, T>` by applying a function
225222
/// to the continue value in case it exists.
226223
#[inline]
227-
#[unstable(feature = "control_flow_enum", reason = "new API", issue = "75744")]
228-
pub fn map_continue<T, F>(self, f: F) -> ControlFlow<B, T>
229-
where
230-
F: FnOnce(C) -> T,
231-
{
224+
#[stable(feature = "control_flow_enum", since = "CURRENT_RUSTC_VERSION")]
225+
pub fn map_continue<T>(self, f: impl FnOnce(C) -> T) -> ControlFlow<B, T> {
232226
match self {
233227
ControlFlow::Continue(x) => ControlFlow::Continue(f(x)),
234228
ControlFlow::Break(x) => ControlFlow::Break(x),

library/core/src/ops/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ pub use self::async_function::{AsyncFn, AsyncFnMut, AsyncFnOnce};
162162
pub use self::bit::{BitAnd, BitOr, BitXor, Not, Shl, Shr};
163163
#[stable(feature = "op_assign_traits", since = "1.8.0")]
164164
pub use self::bit::{BitAndAssign, BitOrAssign, BitXorAssign, ShlAssign, ShrAssign};
165-
#[unstable(feature = "control_flow_enum", reason = "new API", issue = "75744")]
165+
#[stable(feature = "control_flow_enum_type", since = "1.55.0")]
166166
pub use self::control_flow::ControlFlow;
167167
#[unstable(feature = "coroutine_trait", issue = "43122")]
168168
pub use self::coroutine::{Coroutine, CoroutineState};

0 commit comments

Comments
 (0)