|  | //@ edition:2018 | 
|  |  | 
|  | fn dummy() -> i32 { | 
|  | 42 | 
|  | } | 
|  |  | 
|  | fn extra_semicolon() { | 
|  | let _ = if true { | 
|  | //~^ NOTE `if` and `else` have incompatible types | 
|  | dummy(); //~ NOTE expected because of this | 
|  | //~^ HELP consider removing this semicolon | 
|  | } else { | 
|  | dummy() //~ ERROR `if` and `else` have incompatible types | 
|  | //~^ NOTE expected `()`, found `i32` | 
|  | }; | 
|  | } | 
|  |  | 
|  | async fn async_dummy() {} | 
|  |  | 
|  | async fn async_dummy2() {} | 
|  |  | 
|  | async fn async_extra_semicolon_same() { | 
|  | let _ = if true { | 
|  | //~^ NOTE `if` and `else` have incompatible types | 
|  | async_dummy(); //~ NOTE expected because of this | 
|  | //~^ HELP consider removing this semicolon | 
|  | } else { | 
|  | async_dummy() //~ ERROR `if` and `else` have incompatible types | 
|  | //~^ NOTE expected `()`, found future | 
|  | //~| NOTE calling an async function returns a future | 
|  | //~| HELP consider `await`ing on the `Future` | 
|  | }; | 
|  | } | 
|  |  | 
|  | async fn async_extra_semicolon_different() { | 
|  | let _ = if true { | 
|  | //~^ NOTE `if` and `else` have incompatible types | 
|  | async_dummy(); //~ NOTE expected because of this | 
|  | //~^ HELP consider removing this semicolon | 
|  | } else { | 
|  | async_dummy2() //~ ERROR `if` and `else` have incompatible types | 
|  | //~^ NOTE expected `()`, found future | 
|  | //~| NOTE calling an async function returns a future | 
|  | //~| HELP consider `await`ing on the `Future` | 
|  | }; | 
|  | } | 
|  |  | 
|  | async fn async_different_futures() { | 
|  | let _ = if true { | 
|  | //~^ NOTE `if` and `else` have incompatible types | 
|  | async_dummy() //~ NOTE expected because of this | 
|  | //~| HELP consider `await`ing on both `Future`s | 
|  | } else { | 
|  | async_dummy2() //~ ERROR `if` and `else` have incompatible types | 
|  | //~^ NOTE expected future, found a different future | 
|  | //~| NOTE distinct uses of `impl Trait` result in different opaque types | 
|  | }; | 
|  | } | 
|  |  | 
|  | fn main() {} |