Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2008-04-09 22:47:31 +0400
committerMarek Safar <marek.safar@gmail.com>2008-04-09 22:47:31 +0400
commit2835f4269ccbe7d314c6732d2d556cd7c109c96b (patch)
treeb90673de5f778fdabb1f21ed2e1b3c730f7c47bc /mcs/tests/test-631.cs
parent990aff35fcf14b6cf174e5ff9760e46a9f5f2067 (diff)
New test.
svn path=/trunk/mcs/; revision=100258
Diffstat (limited to 'mcs/tests/test-631.cs')
-rw-r--r--mcs/tests/test-631.cs206
1 files changed, 206 insertions, 0 deletions
diff --git a/mcs/tests/test-631.cs b/mcs/tests/test-631.cs
new file mode 100644
index 00000000000..1069135514f
--- /dev/null
+++ b/mcs/tests/test-631.cs
@@ -0,0 +1,206 @@
+using System;
+
+enum E : uint
+{
+ Value = 24
+}
+
+class A
+{
+ public static implicit operator sbyte (A mask)
+ {
+ return 1;
+ }
+
+ public static implicit operator byte (A mask)
+ {
+ return 2;
+ }
+
+ public static implicit operator short (A mask)
+ {
+ return 3;
+ }
+
+ public static implicit operator ushort (A mask)
+ {
+ return 4;
+ }
+
+ public static implicit operator int (A mask)
+ {
+ return 5;
+ }
+
+ public static implicit operator uint (A mask)
+ {
+ return 6;
+ }
+
+ public static implicit operator long (A mask)
+ {
+ return 7;
+ }
+
+ public static implicit operator ulong (A mask)
+ {
+ return 8;
+ }
+}
+
+class A2
+{
+ public static implicit operator sbyte (A2 mask)
+ {
+ return 1;
+ }
+
+ public static implicit operator byte (A2 mask)
+ {
+ return 2;
+ }
+
+ public static implicit operator short (A2 mask)
+ {
+ return 3;
+ }
+
+ public static implicit operator uint (A2 mask)
+ {
+ return 6;
+ }
+
+ public static implicit operator long (A2 mask)
+ {
+ return 7;
+ }
+
+ public static implicit operator ulong (A2 mask)
+ {
+ return 8;
+ }
+}
+
+class A3
+{
+ public static implicit operator sbyte (A3 mask)
+ {
+ return 1;
+ }
+
+ public static implicit operator uint (A3 mask)
+ {
+ return 6;
+ }
+
+ public static implicit operator long (A3 mask)
+ {
+ return 7;
+ }
+
+ public static implicit operator ulong (A3 mask)
+ {
+ return 8;
+ }
+}
+
+class A4
+{
+ public static implicit operator uint (A4 mask)
+ {
+ return 6;
+ }
+
+ public static implicit operator long (A4 mask)
+ {
+ return 7;
+ }
+
+ public static implicit operator ulong (A4 mask)
+ {
+ return 8;
+ }
+}
+
+class A5
+{
+ public static implicit operator uint (A5 mask)
+ {
+ return 6;
+ }
+
+ public static implicit operator int (A5 mask)
+ {
+ return 8;
+ }
+}
+
+class A6
+{
+ public static implicit operator byte (A6 mask)
+ {
+ return 2;
+ }
+}
+
+class MyDecimal
+{
+ public static implicit operator decimal (MyDecimal d)
+ {
+ return 42;
+ }
+}
+
+public class Constraint
+{
+ public static int Main ()
+ {
+ A a = null;
+ A2 a2 = null;
+ A3 a3 = null;
+ A4 a4 = null;
+ A5 a5 = null;
+ A6 a6 = null;
+
+ if (-a != -5)
+ return 1;
+ if (-a2 != -3)
+ return 2;
+ if (-a3 != -1)
+ return 3;
+ if (-a4 != -7)
+ return 4;
+ if (-a5 != -8)
+ return 5;
+ if (-a6 != -2)
+ return 6;
+
+ if (~a != -6)
+ return 10;
+ if (~a2 != -4)
+ return 11;
+ if (~a3 != -2)
+ return 12;
+ if (~a4 != 4294967289)
+ return 13;
+ if (~a5 != -9)
+ return 14;
+ if (~a6 != -3)
+ return 15;
+
+ MyDecimal d = new MyDecimal ();
+ if (-d != -42)
+ return 20;
+
+ E e = E.Value;
+ if (~e != (E)4294967271)
+ return 21;
+
+ uint dp = 0;
+ dp = +dp;
+
+ Console.WriteLine ("OK");
+ return 0;
+ }
+
+}