diff options
| author | Nathan Corbyn <me@nathancorbyn.com> | 2019-06-26 13:48:41 +0100 |
|---|---|---|
| committer | Nathan Corbyn <me@nathancorbyn.com> | 2019-06-26 15:49:10 +0100 |
| commit | 5cb841d72e70f92fc4318833db4824d07ab4c911 (patch) | |
| tree | 521b90e280f8e5e638c8adddfaf17f8043bd7850 /src/test/ui/async-await/issues | |
| parent | d3e2cec29225a46298ec4ebf082f34ebd7cfeecf (diff) | |
| download | rust-5cb841d72e70f92fc4318833db4824d07ab4c911.tar.gz rust-5cb841d72e70f92fc4318833db4824d07ab4c911.zip | |
Don't ICE on item in `.await` expression
Diffstat (limited to 'src/test/ui/async-await/issues')
| -rw-r--r-- | src/test/ui/async-await/issues/issue-51719.rs | 3 | ||||
| -rw-r--r-- | src/test/ui/async-await/issues/issue-51719.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/async-await/issues/issue-62009.rs | 19 | ||||
| -rw-r--r-- | src/test/ui/async-await/issues/issue-62009.stderr | 49 |
4 files changed, 72 insertions, 3 deletions
diff --git a/src/test/ui/async-await/issues/issue-51719.rs b/src/test/ui/async-await/issues/issue-51719.rs index 5966edd0bf0..361a49c2774 100644 --- a/src/test/ui/async-await/issues/issue-51719.rs +++ b/src/test/ui/async-await/issues/issue-51719.rs @@ -7,7 +7,8 @@ async fn foo() {} fn make_generator() { - let _gen = || foo.await; //~ ERROR `await` is only allowed inside `async` functions and blocks + let _gen = || foo().await; + //~^ ERROR `await` is only allowed inside `async` functions and blocks } fn main() {} diff --git a/src/test/ui/async-await/issues/issue-51719.stderr b/src/test/ui/async-await/issues/issue-51719.stderr index c06165b2446..2a9fb6cf0df 100644 --- a/src/test/ui/async-await/issues/issue-51719.stderr +++ b/src/test/ui/async-await/issues/issue-51719.stderr @@ -1,8 +1,8 @@ error[E0728]: `await` is only allowed inside `async` functions and blocks --> $DIR/issue-51719.rs:10:19 | -LL | let _gen = || foo.await; - | -- ^^^^^^^^^ only allowed inside `async` functions and blocks +LL | let _gen = || foo().await; + | -- ^^^^^^^^^^^ only allowed inside `async` functions and blocks | | | this is not `async` diff --git a/src/test/ui/async-await/issues/issue-62009.rs b/src/test/ui/async-await/issues/issue-62009.rs new file mode 100644 index 00000000000..e2d58cac24d --- /dev/null +++ b/src/test/ui/async-await/issues/issue-62009.rs @@ -0,0 +1,19 @@ +// edition:2018 + +#![feature(async_await)] + +async fn print_dur() {} + +fn main() { + async { let (); }.await; + //~^ ERROR `await` is only allowed inside `async` functions and blocks + async { + //~^ ERROR `await` is only allowed inside `async` functions and blocks + let task1 = print_dur().await; + }.await; + (async || 2333)().await; + //~^ ERROR `await` is only allowed inside `async` functions and blocks + (|_| 2333).await; + //~^ ERROR `await` is only allowed inside `async` functions and blocks + //~^^ ERROR +} diff --git a/src/test/ui/async-await/issues/issue-62009.stderr b/src/test/ui/async-await/issues/issue-62009.stderr new file mode 100644 index 00000000000..53d1f34fe4f --- /dev/null +++ b/src/test/ui/async-await/issues/issue-62009.stderr @@ -0,0 +1,49 @@ +error[E0728]: `await` is only allowed inside `async` functions and blocks + --> $DIR/issue-62009.rs:8:5 + | +LL | fn main() { + | ---- this is not `async` +LL | async { let (); }.await; + | ^^^^^^^^^^^^^^^^^^^^^^^ only allowed inside `async` functions and blocks + +error[E0728]: `await` is only allowed inside `async` functions and blocks + --> $DIR/issue-62009.rs:10:5 + | +LL | fn main() { + | ---- this is not `async` +... +LL | / async { +LL | | +LL | | let task1 = print_dur().await; +LL | | }.await; + | |___________^ only allowed inside `async` functions and blocks + +error[E0728]: `await` is only allowed inside `async` functions and blocks + --> $DIR/issue-62009.rs:14:5 + | +LL | fn main() { + | ---- this is not `async` +... +LL | (async || 2333)().await; + | ^^^^^^^^^^^^^^^^^^^^^^^ only allowed inside `async` functions and blocks + +error[E0728]: `await` is only allowed inside `async` functions and blocks + --> $DIR/issue-62009.rs:16:5 + | +LL | fn main() { + | ---- this is not `async` +... +LL | (|_| 2333).await; + | ^^^^^^^^^^^^^^^^ only allowed inside `async` functions and blocks + +error[E0277]: the trait bound `[closure@$DIR/issue-62009.rs:16:5: 16:15]: std::future::Future` is not satisfied + --> $DIR/issue-62009.rs:16:5 + | +LL | (|_| 2333).await; + | ^^^^^^^^^^^^^^^^ the trait `std::future::Future` is not implemented for `[closure@$DIR/issue-62009.rs:16:5: 16:15]` + | + = note: required by `std::future::poll_with_tls_context` + +error: aborting due to 5 previous errors + +For more information about this error, try `rustc --explain E0277`. |
