v2 / vlib / v / checker / tests / cast_fn_err.vv
31 lines · 27 sloc · 483 bytes · 734fde89e88855b83932a56947f0863aaf88c42d
Raw
1type FnType = fn () bool
2
3fn foo() int {
4 return 0
5}
6
7fn bar() bool {
8 return true
9}
10
11fn main() {
12 // acceptable ones
13 _ := unsafe { FnType(nil) }
14 _ := unsafe { FnType(0) }
15 _ := unsafe { FnType(foo) }
16 _ := unsafe { FnType(bar) }
17 _ := FnType(bar)
18 _ := ?FnType(none)
19 _ := ?FnType(bar)
20 _ := unsafe { ?FnType(foo) }
21
22 // wrong ones
23 _ := FnType(foo)
24 _ := FnType(nil)
25 _ := FnType(0)
26 _ := FnType('foo')
27 _ := FnType(none)
28 _ := ?FnType(0)
29 _ := ?FnType(nil)
30 _ := ?FnType(foo)
31}
32