| fn main() { | |
| // Below we call the closure with its own return as the argument, unifying | |
| // its inferred input and return types. We want to make sure that the generated | |
| // error handles this gracefully, and in particular doesn't generate an extra | |
| // note about the `?` operator in the closure body, which isn't relevant to | |
| // the inference. | |
| let x = |r| { //~ ERROR type annotations needed for `Result<(), _>` | |
| let v = r?; | |
| Ok(v) | |
| }; | |
| let _ = x(x(Ok(()))); | |
| } |