v2 / vlib / v / tests / enums / enum_flag_compound_assign_test.v
28 lines · 25 sloc · 543 bytes · b3283356520766db8a41e1a8aa4b990646c12287
Raw
1@[flag]
2enum FlagEnumCompoundAssign {
3 a
4 b
5 c
6}
7
8type FlagEnumCompoundAssignAlias = FlagEnumCompoundAssign
9
10fn test_flag_enum_compound_assign_with_short_enum_values() {
11 mut flag := FlagEnumCompoundAssign.a
12 flag |= .b
13 assert flag == .a | .b
14 flag ^= .a
15 assert flag == .b
16 flag &= .b
17 assert flag == .b
18}
19
20fn test_flag_enum_alias_compound_assign_with_short_enum_values() {
21 mut flag := FlagEnumCompoundAssignAlias(FlagEnumCompoundAssign.a)
22 flag |= .c
23 assert flag == .a | .c
24 flag ^= .a
25 assert flag == .c
26 flag &= .c
27 assert flag == .c
28}
29