test for pure fn vs impure fn etc subtyping
This commit is contained in:
parent
6dc4bc517a
commit
5b8abec92f
1 changed files with 22 additions and 0 deletions
22
src/test/compile-fail/pure-subtyping.rs
Normal file
22
src/test/compile-fail/pure-subtyping.rs
Normal 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() {
|
||||
}
|
Loading…
Reference in a new issue