| // run-pass | |
| // Check that safe fns are not a subtype of unsafe fns. | |
| fn foo(x: i32) -> i32 { | |
| x * 22 | |
| } | |
| fn bar(x: fn(i32) -> i32) -> unsafe fn(i32) -> i32 { | |
| x // OK, coercion! | |
| } | |
| fn main() { | |
| let f = bar(foo); | |
| let x = unsafe { f(2) }; | |
| assert_eq!(x, 44); | |
| } |