| // Functions with a type placeholder `_` as the return type should |
| // show a function pointer suggestion when given a function item |
| // and suggest how to return closures correctly from a function. |
| // This is a regression test of #80179 |
| |
| fn returns_i32() -> i32 { |
| 0 |
| } |
| |
| fn returns_fn_ptr() -> _ { |
| //~^ ERROR the placeholder `_` is not allowed within types on item signatures for return types [E0121] |
| //~| NOTE not allowed in type signatures |
| //~| HELP replace with the correct return type |
| //~| SUGGESTION fn() -> i32 |
| returns_i32 |
| } |
| |
| fn returns_closure() -> _ { |
| //~^ ERROR the placeholder `_` is not allowed within types on item signatures for return types [E0121] |
| //~| NOTE not allowed in type signatures |
| //~| HELP consider using an `Fn`, `FnMut`, or `FnOnce` trait bound |
| //~| NOTE for more information on `Fn` traits and closure types, see |
| // https://doc.rust-lang.org/book/ch13-01-closures.html |
| || 0 |
| } |
| |
| fn main() {} |