v2 / vlib / v / tests / options / none_checking_test.v
42 lines · 37 sloc · 468 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1struct Test {
2 a ?string
3 b ?int
4 c ?u8
5 d ?fn (int)
6}
7
8fn test_main() {
9 a := ?int(none)
10
11 if a == none {
12 assert true
13 } else {
14 assert false
15 }
16
17 b := Test{}
18 if b.a == none {
19 assert true
20 } else {
21 assert false
22 }
23
24 c := ?Test(Test{})
25 if c?.a == none {
26 assert true
27 } else {
28 assert false
29 }
30}
31
32fn test_comptime() {
33 t := Test{}
34 $for f in Test.fields {
35 println('${f.name}')
36 if t.$(f.name) == none {
37 assert true
38 } else {
39 assert false
40 }
41 }
42}
43