diff options
| author | csmoe <csmoe@msn.com> | 2020-08-20 18:42:08 +0800 |
|---|---|---|
| committer | csmoe <csmoe@msn.com> | 2020-08-26 17:40:08 +0800 |
| commit | 8ee206a80dab320ee76a2aa9324c587368df3921 (patch) | |
| tree | 732a8cd716ef9ce5b62cd01053f7c2d6d08d8b36 /src/test | |
| parent | 2271b081ebdb10af25aca0206e53931eaed92d3a (diff) | |
| download | rust-8ee206a80dab320ee76a2aa9324c587368df3921.tar.gz rust-8ee206a80dab320ee76a2aa9324c587368df3921.zip | |
suggest await on unexpected types
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/async-await/issue-61076.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/async-await/issue-61076.stderr | 46 |
2 files changed, 40 insertions, 11 deletions
diff --git a/src/test/ui/async-await/issue-61076.rs b/src/test/ui/async-await/issue-61076.rs index 743f1959828..e383a9126f7 100644 --- a/src/test/ui/async-await/issue-61076.rs +++ b/src/test/ui/async-await/issue-61076.rs @@ -64,5 +64,10 @@ async fn baz() -> Result<(), ()> { Ok(()) } +async fn match_() { + match tuple() { + Tuple(_) => {} //~ ERROR mismatched types + } +} fn main() {} diff --git a/src/test/ui/async-await/issue-61076.stderr b/src/test/ui/async-await/issue-61076.stderr index 692117a06b0..69b6e8c3cf5 100644 --- a/src/test/ui/async-await/issue-61076.stderr +++ b/src/test/ui/async-await/issue-61076.stderr @@ -26,28 +26,52 @@ error[E0609]: no field `0` on type `impl std::future::Future` --> $DIR/issue-61076.rs:58:26 | LL | let _: i32 = tuple().0; - | --------^ - | | - | help: consider await before field access: `tuple().await.0` + | ^ + | +help: consider awaiting before field access + | +LL | let _: i32 = tuple().await.0; + | ^^^^^^ error[E0609]: no field `a` on type `impl std::future::Future` --> $DIR/issue-61076.rs:60:28 | LL | let _: i32 = struct_().a; - | ----------^ - | | - | help: consider await before field access: `struct_().await.a` + | ^ + | +help: consider awaiting before field access + | +LL | let _: i32 = struct_().await.a; + | ^^^^^^ error[E0599]: no method named `method` found for opaque type `impl std::future::Future` in the current scope --> $DIR/issue-61076.rs:62:15 | LL | struct_().method(); + | ^^^^^^ method not found in `impl std::future::Future` + | +help: consider awaiting before this method call + | +LL | struct_().await.method(); | ^^^^^^ - | | - | method not found in `impl std::future::Future` - | help: consider await before this method call: `await.method` -error: aborting due to 5 previous errors +error[E0308]: mismatched types + --> $DIR/issue-61076.rs:69:9 + | +LL | async fn tuple() -> Tuple { + | ----- the `Output` of this `async fn`'s expected opaque type +... +LL | Tuple(_) => {} + | ^^^^^^^^ expected opaque type, found struct `Tuple` + | + = note: expected opaque type `impl std::future::Future` + found struct `Tuple` +help: consider awaiting on the future + | +LL | match tuple().await { + | ^^^^^^ + +error: aborting due to 6 previous errors -Some errors have detailed explanations: E0277, E0599, E0609. +Some errors have detailed explanations: E0277, E0308, E0599, E0609. For more information about an error, try `rustc --explain E0277`. |
