v2 / vlib / v / tests / enums / enum_flag_test.v
30 lines · 22 sloc · 462 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1@[flag]
2enum Foo {
3 a
4 b
5 c
6}
7
8const a = Foo.a
9
10const ab = Foo.a | Foo.b
11
12const ab2 = Foo.a | .b
13
14const abc = Foo.a | Foo.b | Foo.c
15
16const abc2 = Foo.a | .b | .c
17
18const abc3 = Foo.a ^ .b
19
20const abc4 = ~Foo.a
21
22fn test_main() {
23 assert dump(a) == Foo.a
24 assert dump(ab) == Foo.a | Foo.b
25 assert dump(ab2) == Foo.a | .b
26 assert dump(abc) == Foo.a | Foo.b | Foo.c
27 assert dump(abc2) == Foo.a | .b | .c
28 assert dump(abc3) == Foo.a ^ .b
29 assert dump(abc4) == ~Foo.a
30}
31