diff --git a/.travis.yml b/.travis.yml index 6703227ce9..3fd4d29bda 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,7 +39,7 @@ matrix: # This is the minimum Rust version supported by `async-await` feature. # When updating this, the reminder to update the minimum required version of `async-await` feature in README.md. - name: cargo +nightly build (minimum required version) - rust: nightly-2019-07-29 + rust: nightly-2019-08-21 script: - cargo run --manifest-path ci/remove-dev-dependencies/Cargo.toml */Cargo.toml - cargo build --all --all-features @@ -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..50496782ec 100644 --- a/README.md +++ b/README.md @@ -58,16 +58,14 @@ 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. +The current `async-await` feature requires Rust nightly 2019-08-21 or later. # License 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 3e25e62160..99f677cd48 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 e4166a2098..fa4795df76 100644 --- a/futures-util/src/future/mod.rs +++ b/futures-util/src/future/mod.rs @@ -126,7 +126,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -158,7 +157,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -184,7 +182,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -214,7 +211,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -243,7 +239,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// use futures::stream::StreamExt; @@ -277,7 +272,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -307,7 +301,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// use futures::stream::{self, StreamExt}; @@ -360,7 +353,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -395,7 +387,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt, Ready}; /// @@ -428,7 +419,6 @@ pub trait FutureExt: Future { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, FutureExt}; /// @@ -446,7 +436,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 7affcd2f16..98ea18ee53 100644 --- a/futures-util/src/io/mod.rs +++ b/futures-util/src/io/mod.rs @@ -105,7 +105,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -141,7 +140,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::{AsyncReadExt, AsyncWriteExt}; /// use std::io::Cursor; @@ -173,7 +171,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -218,7 +215,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -235,7 +231,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}; @@ -264,7 +259,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -294,7 +288,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -325,7 +318,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -360,7 +352,6 @@ pub trait AsyncReadExt: AsyncRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncReadExt; /// use std::io::Cursor; @@ -404,7 +395,6 @@ pub trait AsyncWriteExt: AsyncWrite { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::{AllowStdIo, AsyncWriteExt}; /// use std::io::{BufWriter, Cursor}; @@ -466,7 +456,6 @@ pub trait AsyncWriteExt: AsyncWrite { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncWriteExt; /// use std::io::Cursor; @@ -506,7 +495,6 @@ pub trait AsyncWriteExt: AsyncWrite { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncWriteExt; /// use futures::stream::{self, StreamExt}; @@ -562,7 +550,6 @@ pub trait AsyncBufReadExt: AsyncBufRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::{AsyncBufReadExt, AsyncWriteExt}; /// use std::io::Cursor; @@ -602,7 +589,6 @@ pub trait AsyncBufReadExt: AsyncBufRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncBufReadExt; /// use std::io::Cursor; @@ -665,7 +651,6 @@ pub trait AsyncBufReadExt: AsyncBufRead { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::io::AsyncBufReadExt; /// use std::io::Cursor; @@ -716,7 +701,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 b67594cc91..07734a8b46 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 a48f9a8fda..c35a48f180 100644 --- a/futures-util/src/sink/mod.rs +++ b/futures-util/src/sink/mod.rs @@ -90,7 +90,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 9bdc531524..1ce75ee121 100644 --- a/futures-util/src/stream/mod.rs +++ b/futures-util/src/stream/mod.rs @@ -181,7 +181,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -215,7 +214,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -248,7 +246,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -290,7 +287,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -326,7 +322,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -359,7 +354,6 @@ pub trait StreamExt: Stream { /// /// # Examples /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -394,7 +388,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -421,7 +414,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::StreamExt; @@ -458,7 +450,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::StreamExt; @@ -498,7 +489,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -521,7 +511,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::StreamExt; @@ -566,7 +555,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -596,7 +584,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -632,7 +619,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -683,7 +669,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::oneshot; /// use futures::stream::{self, StreamExt}; @@ -729,7 +714,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -752,7 +736,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -820,7 +803,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt}; @@ -866,7 +848,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -956,7 +937,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::oneshot; /// use futures::stream::{self, StreamExt}; @@ -997,7 +977,6 @@ pub trait StreamExt: Stream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, StreamExt}; /// @@ -1024,7 +1003,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}; /// @@ -1190,7 +1168,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 7ea1b28480..90d481aee0 100644 --- a/futures-util/src/try_future/mod.rs +++ b/futures-util/src/try_future/mod.rs @@ -136,7 +136,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -150,7 +149,6 @@ pub trait TryFutureExt: TryFuture { /// effect: /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -184,7 +182,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -198,7 +195,6 @@ pub trait TryFutureExt: TryFuture { /// no effect: /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -229,7 +225,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -259,7 +254,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -273,7 +267,6 @@ pub trait TryFutureExt: TryFuture { /// effect: /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -305,7 +298,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -319,7 +311,6 @@ pub trait TryFutureExt: TryFuture { /// no effect: /// /// ``` - /// #![feature(async_await)] /// use futures::future::{self, TryFutureExt}; /// /// # futures::executor::block_on(async { @@ -346,7 +337,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, TryFutureExt}; /// @@ -372,7 +362,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, TryFutureExt}; /// @@ -401,7 +390,6 @@ pub trait TryFutureExt: TryFuture { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future::{self, TryFutureExt}; /// use futures::stream::{self, TryStreamExt}; @@ -435,7 +423,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 e8a39cb6e4..819b498ebe 100644 --- a/futures-util/src/try_stream/mod.rs +++ b/futures-util/src/try_stream/mod.rs @@ -92,7 +92,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// @@ -118,7 +117,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// @@ -144,7 +142,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// @@ -298,7 +295,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::stream::{self, TryStreamExt}; /// @@ -330,7 +326,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, TryStreamExt}; @@ -365,7 +360,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, TryStreamExt}; @@ -400,7 +394,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::oneshot; /// use futures::stream::{self, StreamExt, TryStreamExt}; @@ -456,7 +449,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::TryStreamExt; @@ -498,7 +490,6 @@ pub trait TryStreamExt: TryStream { /// /// # Examples /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt, TryStreamExt}; @@ -537,7 +528,6 @@ pub trait TryStreamExt: TryStream { /// /// # Examples /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, StreamExt, TryStreamExt}; @@ -570,7 +560,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::{StreamExt, TryStreamExt}; @@ -623,7 +612,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::future; /// use futures::stream::{self, TryStreamExt}; @@ -660,7 +648,6 @@ pub trait TryStreamExt: TryStream { /// # Examples /// /// ``` - /// #![feature(async_await)] /// # futures::executor::block_on(async { /// use futures::channel::mpsc; /// use futures::stream::TryStreamExt; @@ -708,7 +695,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}; @@ -732,7 +718,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; @@ -776,7 +761,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(); /// @@ -815,7 +799,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 51bc75aea7..16da728262 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;