mirror of https://github.com/rust-lang/rust
61 lines
1.9 KiB
Rust
61 lines
1.9 KiB
Rust
//@ 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() {}
|