| // In #88097, the compiler attempted to coerce a closure type to itself via |
| // a function pointer, which caused an unnecessary error. Check that this |
| // behavior has been fixed. |
| |
| //@ check-pass |
| |
| fn peculiar() -> impl Fn(u8) -> u8 { |
| return |x| x + 1 |
| } |
| |
| fn peculiar2() -> impl Fn(u8) -> u8 { |
| return |x| x + 1; |
| } |
| |
| fn peculiar3() -> impl Fn(u8) -> u8 { |
| let f = |x| x + 1; |
| return f |
| } |
| |
| fn peculiar4() -> impl Fn(u8) -> u8 { |
| let f = |x| x + 1; |
| f |
| } |
| |
| fn peculiar5() -> impl Fn(u8) -> u8 { |
| let f = |x| x + 1; |
| let g = |x| x + 2; |
| return if true { f } else { g } |
| } |
| |
| fn main() {} |