Skip to content

Commit

Permalink
Rollup merge of #98718 - yoshuawuyts:stabilize-into-future, r=yaahc
Browse files Browse the repository at this point in the history
Stabilize `into_future`

#67644 has been labeled with [S-tracking-ready-to-stabilize](https://github.com/rust-lang/rust/labels/S-tracking-ready-to-stabilize) - which mentions someone needs to file a stabilization PR. So hence this PR! ✨ Thanks!

Closes #67644

r? ``@joshtriplett``
  • Loading branch information
matthiaskrgr authored Jul 8, 2022
2 parents b36e58a + 992cfc1 commit 9c6bcb6
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 16 deletions.
18 changes: 5 additions & 13 deletions library/core/src/future/into_future.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ use crate::future::Future;
/// on all futures.
///
/// ```no_run
/// #![feature(into_future)]
///
/// use std::future::IntoFuture;
///
/// # async fn foo() {
Expand All @@ -33,8 +31,6 @@ use crate::future::Future;
/// multiple times before being `.await`ed.
///
/// ```rust
/// #![feature(into_future)]
///
/// use std::future::{ready, Ready, IntoFuture};
///
/// /// Eventually multiply two numbers
Expand Down Expand Up @@ -91,8 +87,6 @@ use crate::future::Future;
/// `IntoFuture::into_future` to obtain an instance of `Future`:
///
/// ```rust
/// #![feature(into_future)]
///
/// use std::future::IntoFuture;
///
/// /// Convert the output of a future to a string.
Expand All @@ -104,14 +98,14 @@ use crate::future::Future;
/// format!("{:?}", fut.await)
/// }
/// ```
#[unstable(feature = "into_future", issue = "67644")]
#[stable(feature = "into_future", since = "1.64.0")]
pub trait IntoFuture {
/// The output that the future will produce on completion.
#[unstable(feature = "into_future", issue = "67644")]
#[stable(feature = "into_future", since = "1.64.0")]
type Output;

/// Which kind of future are we turning this into?
#[unstable(feature = "into_future", issue = "67644")]
#[stable(feature = "into_future", since = "1.64.0")]
type IntoFuture: Future<Output = Self::Output>;

/// Creates a future from a value.
Expand All @@ -121,8 +115,6 @@ pub trait IntoFuture {
/// Basic usage:
///
/// ```no_run
/// #![feature(into_future)]
///
/// use std::future::IntoFuture;
///
/// # async fn foo() {
Expand All @@ -131,12 +123,12 @@ pub trait IntoFuture {
/// assert_eq!("meow", fut.await);
/// # }
/// ```
#[unstable(feature = "into_future", issue = "67644")]
#[stable(feature = "into_future", since = "1.64.0")]
#[lang = "into_future"]
fn into_future(self) -> Self::IntoFuture;
}

#[unstable(feature = "into_future", issue = "67644")]
#[stable(feature = "into_future", since = "1.64.0")]
impl<F: Future> IntoFuture for F {
type Output = F::Output;
type IntoFuture = F;
Expand Down
2 changes: 1 addition & 1 deletion library/core/src/future/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ pub use self::future::Future;
#[unstable(feature = "future_join", issue = "91642")]
pub use self::join::join;

#[unstable(feature = "into_future", issue = "67644")]
#[stable(feature = "into_future", since = "1.64.0")]
pub use into_future::IntoFuture;

#[stable(feature = "future_readiness_fns", since = "1.48.0")]
Expand Down
2 changes: 0 additions & 2 deletions src/test/ui/async-await/await-into-future.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
// run-pass
// aux-build: issue-72470-lib.rs
// edition:2021
#![feature(into_future)]

extern crate issue_72470_lib;
use std::{future::{Future, IntoFuture}, pin::Pin};

Expand Down

0 comments on commit 9c6bcb6

Please sign in to comment.