diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2012-05-30 11:56:50 -0700 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2012-05-30 11:56:50 -0700 |
| commit | 5b8abec92f6099fe0603d321a0fb5847bf283cbd (patch) | |
| tree | 4ff1eb4d31c00cbb550346477cdf34bcd154f15a /src/test | |
| parent | 6dc4bc517ad0283aa28c72a3f15d3b5611882987 (diff) | |
| download | rust-5b8abec92f6099fe0603d321a0fb5847bf283cbd.tar.gz rust-5b8abec92f6099fe0603d321a0fb5847bf283cbd.zip | |
test for pure fn vs impure fn etc subtyping
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/compile-fail/pure-subtyping.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/compile-fail/pure-subtyping.rs b/src/test/compile-fail/pure-subtyping.rs new file mode 100644 index 00000000000..192c83d5e44 --- /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 |
