Merge pull request #4431 from vkargov/vk-leaking-points
[mono.git] / mcs / tests / test-99.cs
old mode 100755 (executable)
new mode 100644 (file)
index 385330d..2f2b7ab
@@ -1,10 +1,19 @@
+//
+// Tests the resulting value of operator + (U x, E y)
+// as well as implicit conversions in the above operator.
+//
 using System;
 class X {
        enum A : int {
                a = 1, b, c
        }
        
-       static int Main ()
+       enum Test : short {
+               A = 1,
+               B
+       }
+       
+       public static int Main ()
        {
                int v = 1;
                object foo = (v + A.a);
@@ -20,6 +29,19 @@ class X {
                        return 2;
                }
 
+               // Now try the implicit conversions for underlying types in enum operators
+               byte b = 1;
+               short s = (short) (Test.A + b);
+               
+               const int e = A.b + 1 - A.a;
+
+               //
+               // Make sure that other operators still work
+               if (Test.A != Test.A)
+                       return 3;
+               if (Test.A == Test.B)
+                       return 4;
+               
                return 0;
        }
 }