mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 23:34:48 +00:00
28 lines
739 B
Rust
28 lines
739 B
Rust
|
// Regression test for #87051, where a double semicolon was erroneously
|
||
|
// suggested after a `?` operator.
|
||
|
|
||
|
fn main() -> Result<(), ()> {
|
||
|
a(|| {
|
||
|
b()
|
||
|
//~^ ERROR: mismatched types [E0308]
|
||
|
//~| NOTE: expected `()`, found `i32`
|
||
|
//~| HELP: consider using a semicolon here
|
||
|
})?;
|
||
|
|
||
|
// Here, we do want to suggest a semicolon:
|
||
|
let x = Ok(42);
|
||
|
if true {
|
||
|
//~^ NOTE: expected this to be `()`
|
||
|
x?
|
||
|
//~^ ERROR: mismatched types [E0308]
|
||
|
//~| NOTE: expected `()`, found integer
|
||
|
//~| HELP: consider using a semicolon here
|
||
|
}
|
||
|
//~^ HELP: consider using a semicolon here
|
||
|
|
||
|
Ok(())
|
||
|
}
|
||
|
|
||
|
fn a<F>(f: F) -> Result<(), ()> where F: FnMut() { Ok(()) }
|
||
|
fn b() -> i32 { 42 }
|