Release 0.41.92
[vala-gnome.git] / tests / enums / bug666035.vala
blob16c65d1cacb5251397ae431116dfd5e5637e8140
1 enum FooEnum {
2 FOO,
3 BAR,
4 MAM;
7 [Flags]
8 enum FooFlag {
9 FOO = 1 << 0,
10 BAR = 1 << 1,
11 MAM = 1 << 2;
14 struct FooStruct {
15 public FooEnum f;
18 FooEnum takes_enum (FooEnum foo) {
19 return foo;
22 FooEnum gives_enum () {
23 return MAM;
26 FooFlag takes_flag (FooFlag foo) {
27 return foo;
30 FooFlag gives_flag () {
31 return MAM | BAR;
34 void main () {
35 if (takes_enum (BAR) == BAR)
36 return;
38 assert (takes_enum (BAR) == BAR);
39 //TODO assert (MAM == gives_enum ());
41 assert (takes_flag (BAR | MAM) == (BAR | MAM));
42 //TODO assert (FOO == takes_flag (BAR & MAM | FOO));
43 assert (gives_flag () == (BAR | MAM));
45 FooEnum[] foo_array = { FOO, BAR, FOO };
46 foo_array[1] = MAM;
47 assert (foo_array[1] == MAM);
49 FooStruct foo_struct = { BAR };
50 assert (foo_struct.f == BAR);
52 FooEnum foo_enum = BAR;
53 switch (foo_enum) {
54 default:
55 case FOO: assert (false); break;
56 case BAR: break;