Skip to content

Commit 78f4cf9

Browse files
committed
---
yaml --- r: 13108 b: refs/heads/master c: dca11e1 h: refs/heads/master v: v3
1 parent 7ec983e commit 78f4cf9

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 5b8abec92f6099fe0603d321a0fb5847bf283cbd
2+
refs/heads/master: dca11e1f99bcb3b1e645625113d188c8b1b43f8d
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf

trunk/src/test/compile-fail/pure-subtyping.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,19 @@ fn assign_to_unsafe(x: pure fn(), y: fn(), z: unsafe fn()) {
1818
let o: unsafe fn() = z;
1919
}
2020

21+
fn assign_to_pure2(x: pure fn@(), y: fn@(), z: unsafe fn@()) {
22+
let a: pure fn() = x;
23+
let b: pure fn() = y; //! ERROR expected pure fn but found impure fn
24+
let c: pure fn() = z; //! ERROR expected pure fn but found unsafe fn
25+
26+
let a: pure fn~() = x; //! ERROR closure protocol mismatch (fn~ vs fn@)
27+
let b: pure fn~() = y; //! ERROR closure protocol mismatch (fn~ vs fn@)
28+
let c: pure fn~() = z; //! ERROR closure protocol mismatch (fn~ vs fn@)
29+
30+
let a: unsafe fn~() = x; //! ERROR closure protocol mismatch (fn~ vs fn@)
31+
let b: unsafe fn~() = y; //! ERROR closure protocol mismatch (fn~ vs fn@)
32+
let c: unsafe fn~() = z; //! ERROR closure protocol mismatch (fn~ vs fn@)
33+
}
34+
2135
fn main() {
2236
}

0 commit comments

Comments
 (0)