test for pure fn vs impure fn etc subtyping

This commit is contained in:
Niko Matsakis 2012-05-30 11:56:50 -07:00
parent 6dc4bc517a
commit 5b8abec92f

View file

@ -0,0 +1,22 @@
// Test rules governing higher-order pure fns.
fn assign_to_pure(x: pure fn(), y: fn(), z: unsafe fn()) {
let a: pure fn() = x;
let b: pure fn() = y; //! ERROR expected pure fn but found impure fn
let c: pure fn() = z; //! ERROR expected pure fn but found unsafe fn
}
fn assign_to_impure(x: pure fn(), y: fn(), z: unsafe fn()) {
let h: fn() = x;
let i: fn() = y;
let j: fn() = z; //! ERROR expected impure fn but found unsafe fn
}
fn assign_to_unsafe(x: pure fn(), y: fn(), z: unsafe fn()) {
let m: unsafe fn() = x;
let n: unsafe fn() = y;
let o: unsafe fn() = z;
}
fn main() {
}