error[E0308]: `if` and `else` have incompatible types --> $DIR/if-then-neeing-semi.rs:28:9 | LL | let _ = if true { | _____________- LL | | LL | | async_dummy(); | | -------------- expected because of this LL | | LL | | } else { LL | | async_dummy() | | ^^^^^^^^^^^^^ expected `()`, found opaque type ... | LL | | LL | | }; | |_____- `if` and `else` have incompatible types | = note: expected unit type `()` found opaque type `impl Future` help: consider `await`ing on the `Future` | LL | async_dummy().await | ++++++ help: consider removing this semicolon | LL - async_dummy(); LL + async_dummy() | error[E0308]: `if` and `else` have incompatible types --> $DIR/if-then-neeing-semi.rs:41:9 | LL | let _ = if true { | _____________- LL | | LL | | async_dummy(); | | -------------- expected because of this LL | | LL | | } else { LL | | async_dummy2() | | ^^^^^^^^^^^^^^ expected `()`, found opaque type ... | LL | | LL | | }; | |_____- `if` and `else` have incompatible types | = note: expected unit type `()` found opaque type `impl Future` help: consider `await`ing on the `Future` | LL | async_dummy2().await | ++++++ help: consider removing this semicolon and boxing the expressions | LL ~ Box::new(async_dummy()) LL | LL | } else { LL ~ Box::new(async_dummy2()) | error[E0308]: `if` and `else` have incompatible types --> $DIR/if-then-neeing-semi.rs:54:9 | LL | let _ = if true { | _____________- LL | | LL | | async_dummy() | | ------------- expected because of this LL | | LL | | } else { LL | | async_dummy2() | | ^^^^^^^^^^^^^^ expected opaque type, found a different opaque type ... | LL | | LL | | }; | |_____- `if` and `else` have incompatible types | = note: expected opaque type `impl Future` (opaque type at <$DIR/if-then-neeing-semi.rs:18:24>) found opaque type `impl Future` (opaque type at <$DIR/if-then-neeing-semi.rs:20:25>) = note: distinct uses of `impl Trait` result in different opaque types help: consider `await`ing on both `Future`s | LL ~ async_dummy().await LL | LL | } else { LL ~ async_dummy2().await | error[E0308]: `if` and `else` have incompatible types --> $DIR/if-then-neeing-semi.rs:13:9 | LL | let _ = if true { | _____________- LL | | LL | | dummy(); | | -------- | | | | | | | help: consider removing this semicolon | | expected because of this LL | | LL | | } else { LL | | dummy() | | ^^^^^^^ expected `()`, found `i32` LL | | LL | | }; | |_____- `if` and `else` have incompatible types error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0308`.