v4 / vlib / v / checker / tests / match_duplicate_branch.vv
62 lines · 54 sloc · 886 bytes · 0c8ce3bcb9fd4a2e5bd5f991a5a07da976d780d7
Raw
1enum Color {
2 red
3 green
4 blue
5}
6
7struct St1 {}
8
9struct St2 {}
10
11type St = St1 | St2
12
13fn test_sum_type(i St) {
14 match i {
15 St1 { println('St1') }
16 St1 { println('St1') }
17 St2 { println('St2') }
18 }
19 match i {
20 St1 { println('St1') }
21 St1 { println('St1') }
22 else { println('else') }
23 }
24}
25
26fn test_enum(c Color) {
27 match c {
28 .red { println('red') }
29 .green { println('green') }
30 .green { println('green') }
31 .blue { println('blue') }
32 }
33 match c {
34 .red, .green { println('red green') }
35 .green { println('green') }
36 else { println('else') }
37 }
38}
39
40fn test_int(i int) {
41 match i {
42 1 { println('1') }
43 2 { println('2') }
44 2 { println('3') }
45 else { println('else') }
46 }
47}
48
49fn test_range(i int) {
50 match i {
51 1...5 { println('1 to 5') }
52 3 { println('3') }
53 else { println('else') }
54 }
55}
56
57fn main() {
58 test_sum_type(St1{})
59 test_enum(.red)
60 test_int(2)
61 test_range(4)
62}
63