2 // Below we call the closure with its own return as the argument, unifying
3 // its inferred input and return types. We want to make sure that the generated
4 // error handles this gracefully, and in particular doesn't generate an extra
5 // note about the `?` operator in the closure body, which isn't relevant to
8 //~^ ERROR type annotations needed