//@ 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); | |
} |