From 5b8abec92f6099fe0603d321a0fb5847bf283cbd Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Wed, 30 May 2012 11:56:50 -0700 Subject: [PATCH] test for pure fn vs impure fn etc subtyping --- src/test/compile-fail/pure-subtyping.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/test/compile-fail/pure-subtyping.rs diff --git a/src/test/compile-fail/pure-subtyping.rs b/src/test/compile-fail/pure-subtyping.rs new file mode 100644 index 000000000000..192c83d5e449 --- /dev/null +++ b/src/test/compile-fail/pure-subtyping.rs @@ -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() { +} \ No newline at end of file