Merge pull request #1063 from esdrubal/bug18482
[mono.git] / mcs / tests / test-640.cs
1 enum MyEnum : byte
2 {
3         Value_1 = 1
4 }
5
6 enum E : ushort
7 {
8         V = 1
9 }
10
11 public class C
12 {
13         public static int Main ()
14         {
15                 MyEnum me = MyEnum.Value_1;
16                 MyEnum b = ~me;
17                 
18                 if (b != (MyEnum)254)
19                         return 1;
20                 
21                 byte r = b - me;
22                 if (r != 253)
23                         return 2;
24                 
25                 b = b - 2;
26                 if (b != (MyEnum)252)
27                         return 3;
28                         
29                 me -= MyEnum.Value_1;
30                 
31                 b = (MyEnum)255;
32                 b &= ~MyEnum.Value_1;
33                 if (b != (MyEnum)254)
34                         return 4;
35
36                 var e = E.V;
37                 checked {
38                         var res = ~e;
39                 }
40
41                 System.Console.WriteLine ("OK");
42                 return 0;
43         }
44 }