rename jgac/vmw4j2ee_110 to jcag/framework
[mono.git] / mcs / tests / test-540.cs
1 class A\r
2 {\r
3         public static implicit operator byte (A mask)\r
4         {\r
5                 return 22;\r
6         }\r
7 }\r
8 \r
9 public class Constraint\r
10 {\r
11         const A lm = null;\r
12 \r
13         enum E1 : int { A }\r
14         enum E2 : byte { A }\r
15 \r
16         public static Constraint operator !(Constraint m)\r
17         {\r
18                 return null;\r
19         }\r
20 \r
21         public static Constraint operator +(Constraint m)\r
22         {\r
23                 return null;\r
24         }\r
25 \r
26         public static Constraint operator ~(Constraint m)\r
27         {\r
28                 return null;\r
29         }\r
30 \r
31         public static Constraint operator -(Constraint m)\r
32         {\r
33                 return null;\r
34         }\r
35         \r
36         static void Foo (object o)\r
37         {\r
38         }\r
39         \r
40         public static int Main ()\r
41         {\r
42                 \r
43                 Foo (!(Constraint)null);\r
44                 Foo (~(Constraint)null);\r
45                 Foo (+(Constraint)null);\r
46                 Foo (-(Constraint)null);\r
47                 \r
48                 const byte b1 = +0;\r
49                 const byte b2 = +b1;\r
50                 const byte b3 = (byte)0;\r
51                 const int a = -2147483648;\r
52                 const long l = -9223372036854775808;\r
53                 const long l2 = -uint.MaxValue;\r
54                 const E1 e = (E1)~E2.A;\r
55                 \r
56                 unchecked {\r
57                         if (-int.MinValue != int.MinValue)\r
58                                 return 1;\r
59                 }\r
60 \r
61                 int b = -lm;\r
62                 if (b != -22)\r
63                         return 2;\r
64                 \r
65                 uint ua = 2;\r
66                 if (-ua != -2)\r
67                         return 3;\r
68 \r
69                 System.Console.WriteLine ("OK");\r
70                 return 0;\r
71         }\r
72         \r
73 }