Skip to content

Commit a781a4a

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

File tree

2 files changed

+7
-15
lines changed

2 files changed

+7
-15
lines changed

core/src/ops/control_flow.rs

+6-14
Original file line numberDiff line numberDiff line change
@@ -171,14 +171,13 @@ impl<B, C> ControlFlow<B, C> {
171171
/// # Examples
172172
///
173173
/// ```
174-
/// #![feature(control_flow_enum)]
175174
/// use std::ops::ControlFlow;
176175
///
177176
/// assert_eq!(ControlFlow::<i32, String>::Break(3).break_value(), Some(3));
178177
/// assert_eq!(ControlFlow::<String, i32>::Continue(3).break_value(), None);
179178
/// ```
180179
#[inline]
181-
#[unstable(feature = "control_flow_enum", reason = "new API", issue = "75744")]
180+
#[stable(feature = "control_flow_enum", since = "CURRENT_RUSTC_VERSION")]
182181
pub fn break_value(self) -> Option<B> {
183182
match self {
184183
ControlFlow::Continue(..) => None,
@@ -189,11 +188,8 @@ impl<B, C> ControlFlow<B, C> {
189188
/// Maps `ControlFlow<B, C>` to `ControlFlow<T, C>` by applying a function
190189
/// to the break value in case it exists.
191190
#[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-
{
191+
#[stable(feature = "control_flow_enum", since = "CURRENT_RUSTC_VERSION")]
192+
pub fn map_break<T>(self, f: impl FnOnce(B) -> T) -> ControlFlow<T, C> {
197193
match self {
198194
ControlFlow::Continue(x) => ControlFlow::Continue(x),
199195
ControlFlow::Break(x) => ControlFlow::Break(f(x)),
@@ -206,14 +202,13 @@ impl<B, C> ControlFlow<B, C> {
206202
/// # Examples
207203
///
208204
/// ```
209-
/// #![feature(control_flow_enum)]
210205
/// use std::ops::ControlFlow;
211206
///
212207
/// assert_eq!(ControlFlow::<i32, String>::Break(3).continue_value(), None);
213208
/// assert_eq!(ControlFlow::<String, i32>::Continue(3).continue_value(), Some(3));
214209
/// ```
215210
#[inline]
216-
#[unstable(feature = "control_flow_enum", reason = "new API", issue = "75744")]
211+
#[stable(feature = "control_flow_enum", since = "CURRENT_RUSTC_VERSION")]
217212
pub fn continue_value(self) -> Option<C> {
218213
match self {
219214
ControlFlow::Continue(x) => Some(x),
@@ -224,11 +219,8 @@ impl<B, C> ControlFlow<B, C> {
224219
/// Maps `ControlFlow<B, C>` to `ControlFlow<B, T>` by applying a function
225220
/// to the continue value in case it exists.
226221
#[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-
{
222+
#[stable(feature = "control_flow_enum", since = "CURRENT_RUSTC_VERSION")]
223+
pub fn map_continue<T>(self, f: impl FnOnce(C) -> T) -> ControlFlow<B, T> {
232224
match self {
233225
ControlFlow::Continue(x) => ControlFlow::Continue(f(x)),
234226
ControlFlow::Break(x) => ControlFlow::Break(x),

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)