2020-12-28 23:10:13 -06:00
|
|
|
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.
|
2022-06-19 20:21:01 -05:00
|
|
|
let x = |r| { //~ ERROR type annotations needed for `Result<(), E>`
|
2020-12-28 23:10:13 -06:00
|
|
|
let v = r?;
|
|
|
|
Ok(v)
|
|
|
|
};
|
|
|
|
|
2022-06-19 20:21:01 -05:00
|
|
|
let _ = x(x(Ok(())));
|
2020-12-28 23:10:13 -06:00
|
|
|
}
|