error[E0308]: mismatched types
  --> $DIR/suggest-missing-await.rs:12:14
   |
LL |     take_u32(x)
   |     -------- ^ expected `u32`, found future
   |     |
   |     arguments to this function are incorrect
   |
note: calling an async function returns a future
  --> $DIR/suggest-missing-await.rs:12:14
   |
LL |     take_u32(x)
   |              ^
note: function defined here
  --> $DIR/suggest-missing-await.rs:3:4
   |
LL | fn take_u32(_x: u32) {}
   |    ^^^^^^^^ -------
help: consider `await`ing on the `Future`
   |
LL |     take_u32(x.await)
   |               ++++++

error[E0308]: mismatched types
  --> $DIR/suggest-missing-await.rs:22:5
   |
LL |     dummy()
   |     ^^^^^^^ expected `()`, found future
   |
note: calling an async function returns a future
  --> $DIR/suggest-missing-await.rs:22:5
   |
LL |     dummy()
   |     ^^^^^^^
help: consider `await`ing on the `Future`
   |
LL |     dummy().await
   |            ++++++
help: consider using a semicolon here
   |
LL |     dummy();
   |            +

error[E0308]: `if` and `else` have incompatible types
  --> $DIR/suggest-missing-await.rs:35:9
   |
LL |       let _x = if true {
   |  ______________-
LL | |         dummy()
   | |         ------- expected because of this
LL | |
LL | |     } else {
LL | |         dummy().await
   | |         ^^^^^^^^^^^^^ expected future, found `()`
LL | |
LL | |     };
   | |_____- `if` and `else` have incompatible types
   |
   = note: expected opaque type `impl Future<Output = ()>`
                found unit type `()`
help: consider `await`ing on the `Future`
   |
LL |         dummy().await
   |                ++++++

error[E0308]: `match` arms have incompatible types
  --> $DIR/suggest-missing-await.rs:45:14
   |
LL |       let _x = match 0usize {
   |  ______________-
LL | |         0 => dummy(),
   | |              ------- this is found to be of type `impl Future<Output = ()>`
LL | |         1 => dummy(),
   | |              ------- this is found to be of type `impl Future<Output = ()>`
LL | |         2 => dummy().await,
   | |              ^^^^^^^^^^^^^ expected future, found `()`
LL | |
LL | |     };
   | |_____- `match` arms have incompatible types
   |
   = note: expected opaque type `impl Future<Output = ()>`
                found unit type `()`
help: consider `await`ing on the `Future`
   |
LL ~         0 => dummy().await,
LL ~         1 => dummy().await,
   |

error[E0308]: mismatched types
  --> $DIR/suggest-missing-await.rs:53:9
   |
LL |     let _x = match dummy() {
   |                    ------- this expression has type `impl Future<Output = ()>`
LL |         () => {}
   |         ^^ expected future, found `()`
   |
   = note: expected opaque type `impl Future<Output = ()>`
                found unit type `()`
help: consider `await`ing on the `Future`
   |
LL |     let _x = match dummy().await {
   |                           ++++++

error[E0308]: mismatched types
  --> $DIR/suggest-missing-await.rs:67:9
   |
LL |     match dummy_result() {
   |           -------------- this expression has type `impl Future<Output = Result<(), ()>>`
...
LL |         Ok(_) => {}
   |         ^^^^^ expected future, found `Result<_, _>`
   |
   = note: expected opaque type `impl Future<Output = Result<(), ()>>`
                     found enum `Result<_, _>`
help: consider `await`ing on the `Future`
   |
LL |     match dummy_result().await {
   |                         ++++++

error[E0308]: mismatched types
  --> $DIR/suggest-missing-await.rs:69:9
   |
LL |     match dummy_result() {
   |           -------------- this expression has type `impl Future<Output = Result<(), ()>>`
...
LL |         Err(_) => {}
   |         ^^^^^^ expected future, found `Result<_, _>`
   |
   = note: expected opaque type `impl Future<Output = Result<(), ()>>`
                     found enum `Result<_, _>`
help: consider `await`ing on the `Future`
   |
LL |     match dummy_result().await {
   |                         ++++++

error: aborting due to 7 previous errors

For more information about this error, try `rustc --explain E0308`.