From 6b3d0f600b989023e7dd64cb9488999f629808fc Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Wed, 21 Aug 2019 05:05:01 +0900 Subject: [PATCH] Stabilize async-await feature --- .travis.yml | 6 +++--- README.md | 6 ++---- futures-channel/tests/channel.rs | 2 -- futures-channel/tests/mpsc.rs | 2 -- futures-executor/src/thread_pool.rs | 1 - futures-test/src/assert.rs | 3 --- futures-test/src/future/mod.rs | 3 --- futures-test/src/io/read/mod.rs | 3 --- futures-test/src/io/write/mod.rs | 2 -- futures-test/src/stream/mod.rs | 1 - futures-test/src/task/context.rs | 1 - futures-test/src/task/noop_spawner.rs | 2 -- futures-test/src/task/panic_spawner.rs | 2 -- futures-test/src/task/panic_waker.rs | 1 - futures-test/src/task/record_spawner.rs | 1 - futures-util/Cargo.toml | 2 +- futures-util/src/async_await/join_mod.rs | 3 --- futures-util/src/async_await/select_mod.rs | 3 --- futures-util/src/compat/compat01as03.rs | 6 +----- futures-util/src/compat/executor.rs | 1 - futures-util/src/future/abortable.rs | 2 -- futures-util/src/future/fuse.rs | 1 - futures-util/src/future/join.rs | 4 ---- futures-util/src/future/join_all.rs | 1 - futures-util/src/future/lazy.rs | 1 - futures-util/src/future/maybe_done.rs | 1 - futures-util/src/future/mod.rs | 11 ---------- futures-util/src/future/option.rs | 1 - futures-util/src/future/pending.rs | 1 - futures-util/src/future/poll_fn.rs | 1 - futures-util/src/future/ready.rs | 3 --- futures-util/src/io/mod.rs | 15 -------------- futures-util/src/io/take.rs | 5 ----- futures-util/src/lib.rs | 4 ---- futures-util/src/sink/drain.rs | 1 - futures-util/src/sink/mod.rs | 1 - futures-util/src/stream/iter.rs | 1 - futures-util/src/stream/mod.rs | 23 --------------------- futures-util/src/stream/once.rs | 1 - futures-util/src/stream/repeat.rs | 1 - futures-util/src/stream/unfold.rs | 1 - futures-util/src/task/spawn.rs | 4 ---- futures-util/src/try_future/mod.rs | 13 ------------ futures-util/src/try_future/try_join.rs | 5 ----- futures-util/src/try_future/try_join_all.rs | 1 - futures-util/src/try_stream/mod.rs | 17 --------------- futures/src/lib.rs | 3 --- futures/tests/async_await_macros.rs | 1 - futures/tests/compat.rs | 1 - futures/tests/future_obj.rs | 2 -- futures/tests/join_all.rs | 2 -- futures/tests/macro_comma_support.rs | 2 -- futures/tests/mutex.rs | 2 -- futures/tests/stream.rs | 2 -- futures/tests/stream_select_next_some.rs | 2 -- futures/tests/try_join_all.rs | 2 -- 56 files changed, 7 insertions(+), 183 deletions(-) diff --git a/.travis.yml b/.travis.yml index 93debacc12..41d3ad7894 100644 --- a/.travis.yml +++ b/.travis.yml @@ -139,9 +139,9 @@ matrix: - cargo check --manifest-path futures-util/Cargo.toml --features sink - cargo check --manifest-path futures-util/Cargo.toml --features io - cargo check --manifest-path futures-util/Cargo.toml --features channel - - cargo check --manifest-path futures-util/Cargo.toml --features nightly,async-await - - cargo check --manifest-path futures-util/Cargo.toml --features nightly,join-macro - - cargo check --manifest-path futures-util/Cargo.toml --features nightly,select-macro + - cargo check --manifest-path futures-util/Cargo.toml --features async-await + - cargo check --manifest-path futures-util/Cargo.toml --features join-macro + - cargo check --manifest-path futures-util/Cargo.toml --features select-macro - cargo check --manifest-path futures-util/Cargo.toml --features compat - cargo check --manifest-path futures-util/Cargo.toml --features io-compat - cargo check --manifest-path futures-util/Cargo.toml --features sink,compat diff --git a/README.md b/README.md index 3562866ac9..21ffbfe6de 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,11 @@ futures-preview = { version = "=0.3.0-alpha.18", default-features = false } ### Feature `async-await` -The `async-await` feature provides several convenient features using unstable -async/await. Note that this is an unstable feature, and upstream changes might -prevent it from compiling. To use futures-rs with async/await, use: +The `async-await` feature provides several convenient features using async/await. To use futures-rs with async/await, use: ```toml [dependencies] -futures-preview = { version = "=0.3.0-alpha.18", features = ["async-await", "nightly"] } +futures-preview = { version = "=0.3.0-alpha.18", features = ["async-await"] } ``` The current `async-await` feature requires Rust nightly 2019-07-29 or later. diff --git a/futures-channel/tests/channel.rs b/futures-channel/tests/channel.rs index e6dad1dcf5..cea7c127c4 100644 --- a/futures-channel/tests/channel.rs +++ b/futures-channel/tests/channel.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - use futures::channel::mpsc; use futures::executor::block_on; use futures::future::poll_fn; diff --git a/futures-channel/tests/mpsc.rs b/futures-channel/tests/mpsc.rs index df8d3b9f39..ce4c311015 100644 --- a/futures-channel/tests/mpsc.rs +++ b/futures-channel/tests/mpsc.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - use futures::channel::{mpsc, oneshot}; use futures::executor::{block_on, block_on_stream}; use futures::future::{FutureExt, poll_fn}; diff --git a/futures-executor/src/thread_pool.rs b/futures-executor/src/thread_pool.rs index 070f6dc0a5..c9a76ebdb6 100644 --- a/futures-executor/src/thread_pool.rs +++ b/futures-executor/src/thread_pool.rs @@ -116,7 +116,6 @@ impl ThreadPool { /// completion. /// /// ``` - /// #![feature(async_await)] /// use futures::executor::ThreadPool; /// /// let pool = ThreadPool::new().unwrap(); diff --git a/futures-test/src/assert.rs b/futures-test/src/assert.rs index 3e1288cd19..24b4ec8e75 100644 --- a/futures-test/src/assert.rs +++ b/futures-test/src/assert.rs @@ -9,7 +9,6 @@ pub fn assert_is_unpin_stream(_: &mut S) {} /// # Examples /// /// ``` -/// #![feature(async_await)] /// use futures::stream; /// use futures_test::future::FutureTestExt; /// use futures_test::{ @@ -46,7 +45,6 @@ macro_rules! assert_stream_pending { /// # Examples /// /// ``` -/// #![feature(async_await)] /// use futures::stream; /// use futures_test::future::FutureTestExt; /// use futures_test::{ @@ -89,7 +87,6 @@ macro_rules! assert_stream_next { /// # Examples /// /// ``` -/// #![feature(async_await)] /// use futures::stream; /// use futures_test::future::FutureTestExt; /// use futures_test::{ diff --git a/futures-test/src/future/mod.rs b/futures-test/src/future/mod.rs index 6eb999ca39..0317d349ee 100644 --- a/futures-test/src/future/mod.rs +++ b/futures-test/src/future/mod.rs @@ -35,7 +35,6 @@ pub trait FutureTestExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::task::Poll; /// use futures::future::FutureExt; /// use futures_test::task::noop_context; @@ -62,7 +61,6 @@ pub trait FutureTestExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::oneshot; /// use futures_test::future::FutureTestExt; @@ -88,7 +86,6 @@ pub trait FutureTestExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::task::Poll; /// use futures::future::{self, Future}; /// use futures_test::task::noop_context; diff --git a/futures-test/src/io/read/mod.rs b/futures-test/src/io/read/mod.rs index 178c357423..b24a20e520 100644 --- a/futures-test/src/io/read/mod.rs +++ b/futures-test/src/io/read/mod.rs @@ -13,7 +13,6 @@ pub trait AsyncReadTestExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::task::Poll; /// use futures::io::AsyncRead; /// use futures_test::task::noop_context; @@ -44,7 +43,6 @@ pub trait AsyncReadTestExt: AsyncRead { /// The returned reader will also implement `AsyncBufRead` if the underlying reader does. /// /// ``` - /// #![feature(async_await)] /// use futures::task::Poll; /// use futures::io::AsyncBufRead; /// use futures_test::task::noop_context; @@ -79,7 +77,6 @@ pub trait AsyncReadTestExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::task::Poll; /// use futures::io::AsyncRead; /// use futures_test::task::noop_context; diff --git a/futures-test/src/io/write/mod.rs b/futures-test/src/io/write/mod.rs index 55d512d622..cd167c29e2 100644 --- a/futures-test/src/io/write/mod.rs +++ b/futures-test/src/io/write/mod.rs @@ -13,7 +13,6 @@ pub trait AsyncWriteTestExt: AsyncWrite { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::task::Poll; /// use futures::io::AsyncWrite; /// use futures_test::task::noop_context; @@ -54,7 +53,6 @@ pub trait AsyncWriteTestExt: AsyncWrite { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::task::Poll; /// use futures::io::AsyncWrite; /// use futures_test::task::noop_context; diff --git a/futures-test/src/stream/mod.rs b/futures-test/src/stream/mod.rs index a737a82a34..5c194e71ad 100644 --- a/futures-test/src/stream/mod.rs +++ b/futures-test/src/stream/mod.rs @@ -12,7 +12,6 @@ pub trait StreamTestExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::task::Poll; /// use futures::stream::{self, Stream}; /// use futures_test::task::noop_context; diff --git a/futures-test/src/task/context.rs b/futures-test/src/task/context.rs index c4e356f5bf..602127c657 100644 --- a/futures-test/src/task/context.rs +++ b/futures-test/src/task/context.rs @@ -22,7 +22,6 @@ pub fn panic_context() -> Context<'static> { /// # Examples /// /// ``` -/// #![feature(async_await)] /// use futures::future::Future; /// use futures::task::Poll; /// use futures_test::task::noop_context; diff --git a/futures-test/src/task/noop_spawner.rs b/futures-test/src/task/noop_spawner.rs index 05d48018bb..947fd119e6 100644 --- a/futures-test/src/task/noop_spawner.rs +++ b/futures-test/src/task/noop_spawner.rs @@ -7,7 +7,6 @@ use futures_core::task::{Spawn, SpawnError}; /// # Examples /// /// ``` -/// #![feature(async_await)] /// use futures::task::SpawnExt; /// use futures_test::task::NoopSpawner; /// @@ -46,7 +45,6 @@ impl Default for NoopSpawner { /// # Examples /// /// ``` -/// #![feature(async_await)] /// use futures::task::SpawnExt; /// use futures_test::task::noop_spawner_mut; /// diff --git a/futures-test/src/task/panic_spawner.rs b/futures-test/src/task/panic_spawner.rs index 5d52524821..4206d44d9e 100644 --- a/futures-test/src/task/panic_spawner.rs +++ b/futures-test/src/task/panic_spawner.rs @@ -7,7 +7,6 @@ use futures_core::task::{Spawn, SpawnError}; /// # Examples /// /// ```should_panic -/// #![feature(async_await)] /// use futures::task::SpawnExt; /// use futures_test::task::PanicSpawner; /// @@ -47,7 +46,6 @@ impl Default for PanicSpawner { /// # Examples /// /// ```should_panic -/// #![feature(async_await)] /// use futures::task::SpawnExt; /// use futures_test::task::panic_spawner_mut; /// diff --git a/futures-test/src/task/panic_waker.rs b/futures-test/src/task/panic_waker.rs index b7826ec60e..74476d823f 100644 --- a/futures-test/src/task/panic_waker.rs +++ b/futures-test/src/task/panic_waker.rs @@ -46,7 +46,6 @@ pub fn panic_waker() -> Waker { /// # Examples /// /// ```should_panic -/// #![feature(async_await)] /// use futures_test::task::panic_waker_ref; /// /// let waker = panic_waker_ref(); diff --git a/futures-test/src/task/record_spawner.rs b/futures-test/src/task/record_spawner.rs index ec54518e0d..3b13d00222 100644 --- a/futures-test/src/task/record_spawner.rs +++ b/futures-test/src/task/record_spawner.rs @@ -7,7 +7,6 @@ use futures_core::task::{Spawn, SpawnError}; /// # Examples /// /// ``` -/// #![feature(async_await)] /// use futures::task::SpawnExt; /// use futures_test::task::RecordSpawner; /// diff --git a/futures-util/Cargo.toml b/futures-util/Cargo.toml index 617fcff471..024ec22fd2 100644 --- a/futures-util/Cargo.toml +++ b/futures-util/Cargo.toml @@ -47,7 +47,7 @@ tokio-io = { version = "0.1.9", optional = true } pin-utils = "0.1.0-alpha.4" [dev-dependencies] -futures-preview = { path = "../futures", version = "=0.3.0-alpha.18", features = ["async-await", "nightly"] } +futures-preview = { path = "../futures", version = "=0.3.0-alpha.18", features = ["async-await"] } futures-test-preview = { path = "../futures-test", version = "=0.3.0-alpha.18" } tokio = "0.1.11" diff --git a/futures-util/src/async_await/join_mod.rs b/futures-util/src/async_await/join_mod.rs index 61cb058590..c10e990039 100644 --- a/futures-util/src/async_await/join_mod.rs +++ b/futures-util/src/async_await/join_mod.rs @@ -19,7 +19,6 @@ macro_rules! document_join_macro { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::{join, future}; /// @@ -47,7 +46,6 @@ macro_rules! document_join_macro { /// `Ok` of a tuple of the values: /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::{try_join, future}; /// @@ -62,7 +60,6 @@ macro_rules! document_join_macro { /// that error: /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::{try_join, future}; /// diff --git a/futures-util/src/async_await/select_mod.rs b/futures-util/src/async_await/select_mod.rs index 67efdca6a2..e6cdf1a982 100644 --- a/futures-util/src/async_await/select_mod.rs +++ b/futures-util/src/async_await/select_mod.rs @@ -27,7 +27,6 @@ macro_rules! document_select_macro { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::select; @@ -43,7 +42,6 @@ macro_rules! document_select_macro { /// ``` /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -65,7 +63,6 @@ macro_rules! document_select_macro { /// the case where all futures have completed. /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::select; diff --git a/futures-util/src/compat/compat01as03.rs b/futures-util/src/compat/compat01as03.rs index 9790ef5827..f9471031cc 100644 --- a/futures-util/src/compat/compat01as03.rs +++ b/futures-util/src/compat/compat01as03.rs @@ -68,7 +68,6 @@ pub trait Future01CompatExt: Future01 { /// [`Future>`](futures_core::future::Future). /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// # // TODO: These should be all using `futures::compat`, but that runs up against Cargo /// # // feature issues @@ -95,7 +94,6 @@ pub trait Stream01CompatExt: Stream01 { /// [`Stream>`](futures_core::stream::Stream). /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::StreamExt; /// use futures_util::compat::Stream01CompatExt; @@ -124,7 +122,6 @@ pub trait Sink01CompatExt: Sink01 { /// [`Sink`](futures_sink::Sink). /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::{sink::SinkExt, stream::StreamExt}; /// use futures_util::compat::{Stream01CompatExt, Sink01CompatExt}; @@ -383,7 +380,7 @@ mod io { /// [`AsyncRead`](futures_io::AsyncRead). /// /// ``` - /// #![feature(async_await, impl_trait_in_bindings)] + /// #![feature(impl_trait_in_bindings)] /// # #![allow(incomplete_features)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; @@ -413,7 +410,6 @@ mod io { /// [`AsyncWrite`](futures_io::AsyncWrite). /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncWriteExt; /// use futures_util::compat::AsyncWrite01CompatExt; diff --git a/futures-util/src/compat/executor.rs b/futures-util/src/compat/executor.rs index 6a0fa8e197..8ba7fb9383 100644 --- a/futures-util/src/compat/executor.rs +++ b/futures-util/src/compat/executor.rs @@ -22,7 +22,6 @@ pub trait Executor01CompatExt: Executor01 + /// futures 0.3 [`Spawn`](futures_core::task::Spawn). /// /// ``` - /// #![feature(async_await)] /// use futures::task::SpawnExt; /// use futures::future::{FutureExt, TryFutureExt}; /// use futures_util::compat::Executor01CompatExt; diff --git a/futures-util/src/future/abortable.rs b/futures-util/src/future/abortable.rs index 804e9dc171..7085041c9b 100644 --- a/futures-util/src/future/abortable.rs +++ b/futures-util/src/future/abortable.rs @@ -29,7 +29,6 @@ impl Abortable where Fut: Future { /// Example: /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{ready, Abortable, AbortHandle, Aborted}; /// @@ -70,7 +69,6 @@ impl AbortHandle { /// Example: /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{ready, Abortable, AbortHandle, Aborted}; /// diff --git a/futures-util/src/future/fuse.rs b/futures-util/src/future/fuse.rs index 0c7fdc84db..324546881d 100644 --- a/futures-util/src/future/fuse.rs +++ b/futures-util/src/future/fuse.rs @@ -27,7 +27,6 @@ impl Fuse { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::future::{Fuse, FusedFuture, FutureExt}; diff --git a/futures-util/src/future/join.rs b/futures-util/src/future/join.rs index 8283286736..77dcd0b66a 100644 --- a/futures-util/src/future/join.rs +++ b/futures-util/src/future/join.rs @@ -90,7 +90,6 @@ generate! { /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -115,7 +114,6 @@ where /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -145,7 +143,6 @@ where /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -178,7 +175,6 @@ where /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// diff --git a/futures-util/src/future/join_all.rs b/futures-util/src/future/join_all.rs index 9a6d82dc4f..62bf467c26 100644 --- a/futures-util/src/future/join_all.rs +++ b/futures-util/src/future/join_all.rs @@ -102,7 +102,6 @@ where /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{join_all}; /// diff --git a/futures-util/src/future/lazy.rs b/futures-util/src/future/lazy.rs index 4fc0504a21..5e72218d1f 100644 --- a/futures-util/src/future/lazy.rs +++ b/futures-util/src/future/lazy.rs @@ -19,7 +19,6 @@ impl Unpin for Lazy {} /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// diff --git a/futures-util/src/future/maybe_done.rs b/futures-util/src/future/maybe_done.rs index d359191bac..09ce81ea33 100644 --- a/futures-util/src/future/maybe_done.rs +++ b/futures-util/src/future/maybe_done.rs @@ -27,7 +27,6 @@ impl Unpin for MaybeDone {} /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::pin_mut; diff --git a/futures-util/src/future/mod.rs b/futures-util/src/future/mod.rs index f591a6473d..ac919b79f8 100644 --- a/futures-util/src/future/mod.rs +++ b/futures-util/src/future/mod.rs @@ -129,7 +129,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -161,7 +160,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -187,7 +185,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -217,7 +214,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -246,7 +242,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// use futures::stream::StreamExt; @@ -280,7 +275,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -310,7 +304,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// use futures::stream::{self, StreamExt}; @@ -363,7 +356,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -398,7 +390,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt, Ready}; /// @@ -431,7 +422,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -449,7 +439,6 @@ pub trait FutureExt: Future { /// // synchronous function to better illustrate the cross-thread aspect of /// // the `shared` combinator. /// - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// use futures::executor::block_on; diff --git a/futures-util/src/future/option.rs b/futures-util/src/future/option.rs index 53e9a1e92b..788ae469fa 100644 --- a/futures-util/src/future/option.rs +++ b/futures-util/src/future/option.rs @@ -12,7 +12,6 @@ use pin_utils::unsafe_pinned; /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, OptionFuture}; /// diff --git a/futures-util/src/future/pending.rs b/futures-util/src/future/pending.rs index 9c623f7b51..299add723f 100644 --- a/futures-util/src/future/pending.rs +++ b/futures-util/src/future/pending.rs @@ -24,7 +24,6 @@ impl FusedFuture for Pending { /// # Examples /// /// ```ignore -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// diff --git a/futures-util/src/future/poll_fn.rs b/futures-util/src/future/poll_fn.rs index d926cf9fa4..b7b10be85d 100644 --- a/futures-util/src/future/poll_fn.rs +++ b/futures-util/src/future/poll_fn.rs @@ -20,7 +20,6 @@ impl Unpin for PollFn {} /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::poll_fn; /// use futures::task::{Context, Poll}; diff --git a/futures-util/src/future/ready.rs b/futures-util/src/future/ready.rs index 33828ca09a..94e6d35563 100644 --- a/futures-util/src/future/ready.rs +++ b/futures-util/src/future/ready.rs @@ -29,7 +29,6 @@ impl Future for Ready { /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -46,7 +45,6 @@ pub fn ready(t: T) -> Ready { /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -63,7 +61,6 @@ pub fn ok(t: T) -> Ready> { /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// diff --git a/futures-util/src/io/mod.rs b/futures-util/src/io/mod.rs index 5ae67dfb60..5072cb8ef4 100644 --- a/futures-util/src/io/mod.rs +++ b/futures-util/src/io/mod.rs @@ -104,7 +104,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::{AsyncReadExt, AsyncWriteExt}; /// use std::io::Cursor; @@ -136,7 +135,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -181,7 +179,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -198,7 +195,6 @@ pub trait AsyncReadExt: AsyncRead { /// ## EOF is hit before `buf` is filled /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::{self, Cursor}; @@ -227,7 +223,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -257,7 +252,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -288,7 +282,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -323,7 +316,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -367,7 +359,6 @@ pub trait AsyncWriteExt: AsyncWrite { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::{AllowStdIo, AsyncWriteExt}; /// use std::io::{BufWriter, Cursor}; @@ -429,7 +420,6 @@ pub trait AsyncWriteExt: AsyncWrite { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncWriteExt; /// use std::io::Cursor; @@ -469,7 +459,6 @@ pub trait AsyncWriteExt: AsyncWrite { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncWriteExt; /// use futures::stream::{self, StreamExt}; @@ -525,7 +514,6 @@ pub trait AsyncBufReadExt: AsyncBufRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::{AsyncBufReadExt, AsyncWriteExt}; /// use std::io::Cursor; @@ -565,7 +553,6 @@ pub trait AsyncBufReadExt: AsyncBufRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncBufReadExt; /// use std::io::Cursor; @@ -628,7 +615,6 @@ pub trait AsyncBufReadExt: AsyncBufRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncBufReadExt; /// use std::io::Cursor; @@ -679,7 +665,6 @@ pub trait AsyncBufReadExt: AsyncBufRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncBufReadExt; /// use futures::stream::StreamExt; diff --git a/futures-util/src/io/take.rs b/futures-util/src/io/take.rs index 0bf963ac74..c5f0617733 100644 --- a/futures-util/src/io/take.rs +++ b/futures-util/src/io/take.rs @@ -29,7 +29,6 @@ impl Take { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -55,7 +54,6 @@ impl Take { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -84,7 +82,6 @@ impl Take { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -109,7 +106,6 @@ impl Take { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -138,7 +134,6 @@ impl Take { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; diff --git a/futures-util/src/lib.rs b/futures-util/src/lib.rs index 4c52fe7c3f..d9dfe4fcfa 100644 --- a/futures-util/src/lib.rs +++ b/futures-util/src/lib.rs @@ -1,7 +1,6 @@ //! Combinators and utilities for working with `Future`s, `Stream`s, `Sink`s, //! and the `AsyncRead` and `AsyncWrite` traits. -#![cfg_attr(feature = "async-await", feature(async_await))] #![cfg_attr(feature = "cfg-target-has-atomic", feature(cfg_target_has_atomic))] #![cfg_attr(not(feature = "std"), no_std)] @@ -17,9 +16,6 @@ #[cfg(all(feature = "cfg-target-has-atomic", not(feature = "nightly")))] compile_error!("The `cfg-target-has-atomic` feature requires the `nightly` feature as an explicit opt-in to unstable features"); -#[cfg(all(feature = "async-await", not(feature = "nightly")))] -compile_error!("The `async-await` feature requires the `nightly` feature as an explicit opt-in to unstable features"); - #[cfg(feature = "alloc")] extern crate alloc; diff --git a/futures-util/src/sink/drain.rs b/futures-util/src/sink/drain.rs index 8cd0fa5621..f6eed3cf80 100644 --- a/futures-util/src/sink/drain.rs +++ b/futures-util/src/sink/drain.rs @@ -18,7 +18,6 @@ pub struct Drain { /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::sink::{self, SinkExt}; /// diff --git a/futures-util/src/sink/mod.rs b/futures-util/src/sink/mod.rs index ea4ab6f429..4eb3450368 100644 --- a/futures-util/src/sink/mod.rs +++ b/futures-util/src/sink/mod.rs @@ -89,7 +89,6 @@ pub trait SinkExt: Sink { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::sink::SinkExt; diff --git a/futures-util/src/stream/iter.rs b/futures-util/src/stream/iter.rs index d72afd0f70..9701d750f8 100644 --- a/futures-util/src/stream/iter.rs +++ b/futures-util/src/stream/iter.rs @@ -18,7 +18,6 @@ impl Unpin for Iter {} /// simply always calls `iter.next()` and returns that. /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// diff --git a/futures-util/src/stream/mod.rs b/futures-util/src/stream/mod.rs index 44bbe25e4a..fe3ca8fa0b 100644 --- a/futures-util/src/stream/mod.rs +++ b/futures-util/src/stream/mod.rs @@ -180,7 +180,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -214,7 +213,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -247,7 +245,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -289,7 +286,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -325,7 +321,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -358,7 +353,6 @@ pub trait StreamExt: Stream { /// /// # Examples /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -393,7 +387,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -420,7 +413,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::StreamExt; @@ -457,7 +449,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::StreamExt; @@ -497,7 +488,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -520,7 +510,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::StreamExt; @@ -565,7 +554,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -595,7 +583,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -631,7 +618,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -682,7 +668,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::oneshot; /// use futures::stream::{self, StreamExt}; @@ -728,7 +713,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -751,7 +735,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -819,7 +802,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -865,7 +847,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -955,7 +936,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::oneshot; /// use futures::stream::{self, StreamExt}; @@ -996,7 +976,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -1023,7 +1002,6 @@ pub trait StreamExt: Stream { /// first stream reaches the end, emits the elements from the second stream. /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -1189,7 +1167,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::{future, select}; /// use futures::stream::{StreamExt, FuturesUnordered}; diff --git a/futures-util/src/stream/once.rs b/futures-util/src/stream/once.rs index a530bb1624..36f72cf1ec 100644 --- a/futures-util/src/stream/once.rs +++ b/futures-util/src/stream/once.rs @@ -7,7 +7,6 @@ use pin_utils::unsafe_pinned; /// Creates a stream of a single element. /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; diff --git a/futures-util/src/stream/repeat.rs b/futures-util/src/stream/repeat.rs index a63c0bfa91..41b6bc5ad3 100644 --- a/futures-util/src/stream/repeat.rs +++ b/futures-util/src/stream/repeat.rs @@ -16,7 +16,6 @@ pub struct Repeat { /// available memory as it tries to just fill up all RAM. /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// diff --git a/futures-util/src/stream/unfold.rs b/futures-util/src/stream/unfold.rs index 9183512841..4774a70f4f 100644 --- a/futures-util/src/stream/unfold.rs +++ b/futures-util/src/stream/unfold.rs @@ -31,7 +31,6 @@ use pin_utils::{unsafe_pinned, unsafe_unpinned}; /// # Example /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; diff --git a/futures-util/src/task/spawn.rs b/futures-util/src/task/spawn.rs index 23617969a2..0c2731100c 100644 --- a/futures-util/src/task/spawn.rs +++ b/futures-util/src/task/spawn.rs @@ -33,7 +33,6 @@ pub trait SpawnExt: Spawn { /// today. Feel free to use this method in the meantime. /// /// ``` - /// #![feature(async_await)] /// use futures::executor::ThreadPool; /// use futures::task::SpawnExt; /// @@ -58,7 +57,6 @@ pub trait SpawnExt: Spawn { /// resolves to the output of the spawned future. /// /// ``` - /// #![feature(async_await)] /// use futures::executor::ThreadPool; /// use futures::future; /// use futures::task::SpawnExt; @@ -112,7 +110,6 @@ pub trait LocalSpawnExt: LocalSpawn { /// today. Feel free to use this method in the meantime. /// /// ``` - /// #![feature(async_await)] /// use futures::executor::LocalPool; /// use futures::task::LocalSpawnExt; /// @@ -138,7 +135,6 @@ pub trait LocalSpawnExt: LocalSpawn { /// resolves to the output of the spawned future. /// /// ``` - /// #![feature(async_await)] /// use futures::executor::LocalPool; /// use futures::future; /// use futures::task::LocalSpawnExt; diff --git a/futures-util/src/try_future/mod.rs b/futures-util/src/try_future/mod.rs index 2136ad6ac4..b09ef3008b 100644 --- a/futures-util/src/try_future/mod.rs +++ b/futures-util/src/try_future/mod.rs @@ -135,7 +135,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -149,7 +148,6 @@ pub trait TryFutureExt: TryFuture { /// effect: /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -183,7 +181,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -197,7 +194,6 @@ pub trait TryFutureExt: TryFuture { /// no effect: /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -228,7 +224,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -258,7 +253,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -272,7 +266,6 @@ pub trait TryFutureExt: TryFuture { /// effect: /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -304,7 +297,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -318,7 +310,6 @@ pub trait TryFutureExt: TryFuture { /// no effect: /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -345,7 +336,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, TryFutureExt}; /// @@ -371,7 +361,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, TryFutureExt}; /// @@ -400,7 +389,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, TryFutureExt}; /// use futures::stream::{self, TryStreamExt}; @@ -434,7 +422,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { diff --git a/futures-util/src/try_future/try_join.rs b/futures-util/src/try_future/try_join.rs index 24b9065f8c..d3c17261c8 100644 --- a/futures-util/src/try_future/try_join.rs +++ b/futures-util/src/try_future/try_join.rs @@ -133,7 +133,6 @@ generate! { /// [`Ok`] of a tuple of the values: /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -149,7 +148,6 @@ generate! { /// that error: /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -173,7 +171,6 @@ where /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -203,7 +200,6 @@ where /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// @@ -236,7 +232,6 @@ where /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// diff --git a/futures-util/src/try_future/try_join_all.rs b/futures-util/src/try_future/try_join_all.rs index ccff4b7858..30300e4e3e 100644 --- a/futures-util/src/try_future/try_join_all.rs +++ b/futures-util/src/try_future/try_join_all.rs @@ -100,7 +100,6 @@ where /// # Examples /// /// ``` -/// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, try_join_all}; /// diff --git a/futures-util/src/try_stream/mod.rs b/futures-util/src/try_stream/mod.rs index e791613ea5..524dcde330 100644 --- a/futures-util/src/try_stream/mod.rs +++ b/futures-util/src/try_stream/mod.rs @@ -91,7 +91,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// @@ -117,7 +116,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// @@ -143,7 +141,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// @@ -297,7 +294,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// @@ -329,7 +325,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, TryStreamExt}; @@ -364,7 +359,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, TryStreamExt}; @@ -399,7 +393,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::oneshot; /// use futures::stream::{self, StreamExt, TryStreamExt}; @@ -455,7 +448,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::TryStreamExt; @@ -497,7 +489,6 @@ pub trait TryStreamExt: TryStream { /// /// # Examples /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt, TryStreamExt}; @@ -536,7 +527,6 @@ pub trait TryStreamExt: TryStream { /// /// # Examples /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt, TryStreamExt}; @@ -569,7 +559,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::{StreamExt, TryStreamExt}; @@ -622,7 +611,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, TryStreamExt}; @@ -659,7 +647,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::TryStreamExt; @@ -707,7 +694,6 @@ pub trait TryStreamExt: TryStream { /// /// Results are returned in the order of completion: /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::oneshot; /// use futures::stream::{self, StreamExt, TryStreamExt}; @@ -731,7 +717,6 @@ pub trait TryStreamExt: TryStream { /// /// Errors from the underlying stream itself are propagated: /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::future; @@ -775,7 +760,6 @@ pub trait TryStreamExt: TryStream { /// Wraps a [`TryStream`] into a stream compatible with libraries using /// futures 0.1 `Stream`. Requires the `compat` feature to be enabled. /// ``` - /// #![feature(async_await)] /// use futures::future::{FutureExt, TryFutureExt}; /// # let (tx, rx) = futures::channel::oneshot::channel(); /// @@ -814,7 +798,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// use futures::io::AsyncReadExt; diff --git a/futures/src/lib.rs b/futures/src/lib.rs index 9a9815912c..2021e8fff1 100644 --- a/futures/src/lib.rs +++ b/futures/src/lib.rs @@ -34,9 +34,6 @@ #![doc(html_root_url = "https://rust-lang-nursery.github.io/futures-api-docs/0.3.0-alpha.18/futures")] -#[cfg(all(feature = "async-await", not(feature = "nightly")))] -compile_error!("The `async-await` feature requires the `nightly` feature as an explicit opt-in to unstable features"); - #[cfg(all(feature = "cfg-target-has-atomic", not(feature = "nightly")))] compile_error!("The `cfg-target-has-atomic` feature requires the `nightly` feature as an explicit opt-in to unstable features"); diff --git a/futures/tests/async_await_macros.rs b/futures/tests/async_await_macros.rs index e21a382c8a..1ab0dc5756 100644 --- a/futures/tests/async_await_macros.rs +++ b/futures/tests/async_await_macros.rs @@ -1,5 +1,4 @@ #![recursion_limit="128"] -#![feature(async_await)] use futures::{Poll, pending, pin_mut, poll, join, try_join, select}; use futures::channel::{mpsc, oneshot}; diff --git a/futures/tests/compat.rs b/futures/tests/compat.rs index 89b548b585..39adc7cba4 100644 --- a/futures/tests/compat.rs +++ b/futures/tests/compat.rs @@ -1,4 +1,3 @@ -#![feature(async_await)] #![cfg(feature = "compat")] use tokio::timer::Delay; diff --git a/futures/tests/future_obj.rs b/futures/tests/future_obj.rs index bc1eab887d..c6b18fc85c 100644 --- a/futures/tests/future_obj.rs +++ b/futures/tests/future_obj.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - use futures::future::{Future, FutureObj, FutureExt}; use std::pin::Pin; use futures::task::{Context, Poll}; diff --git a/futures/tests/join_all.rs b/futures/tests/join_all.rs index 39f2608f30..63967bf987 100644 --- a/futures/tests/join_all.rs +++ b/futures/tests/join_all.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - use futures_util::future::*; use std::future::Future; use futures::executor::block_on; diff --git a/futures/tests/macro_comma_support.rs b/futures/tests/macro_comma_support.rs index 3c5d9b2e58..1c6eea07fe 100644 --- a/futures/tests/macro_comma_support.rs +++ b/futures/tests/macro_comma_support.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - #[macro_use] extern crate futures; diff --git a/futures/tests/mutex.rs b/futures/tests/mutex.rs index 7b1a7fbfb7..3c6f02a9a7 100644 --- a/futures/tests/mutex.rs +++ b/futures/tests/mutex.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - use futures::channel::mpsc; use futures::future::{ready, FutureExt}; use futures::lock::Mutex; diff --git a/futures/tests/stream.rs b/futures/tests/stream.rs index ae9cdfa56e..3dd375c82d 100644 --- a/futures/tests/stream.rs +++ b/futures/tests/stream.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - use futures::executor::block_on; use futures::stream; use futures_util::StreamExt; diff --git a/futures/tests/stream_select_next_some.rs b/futures/tests/stream_select_next_some.rs index b47ab92174..09d7e895c1 100644 --- a/futures/tests/stream_select_next_some.rs +++ b/futures/tests/stream_select_next_some.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - use futures::{future, select}; use futures::future::{FusedFuture, FutureExt}; use futures::stream::{FuturesUnordered, StreamExt}; diff --git a/futures/tests/try_join_all.rs b/futures/tests/try_join_all.rs index bdca3e959c..ed45f20949 100644 --- a/futures/tests/try_join_all.rs +++ b/futures/tests/try_join_all.rs @@ -1,5 +1,3 @@ -#![feature(async_await)] - use futures_util::future::*; use futures_util::try_future::{try_join_all, TryJoinAll}; use std::future::Future;