diff options
author | Marek Safar <marek.safar@gmail.com> | 2008-04-09 22:47:31 +0400 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2008-04-09 22:47:31 +0400 |
commit | 2835f4269ccbe7d314c6732d2d556cd7c109c96b (patch) | |
tree | b90673de5f778fdabb1f21ed2e1b3c730f7c47bc /mcs/tests/test-631.cs | |
parent | 990aff35fcf14b6cf174e5ff9760e46a9f5f2067 (diff) |
New test.
svn path=/trunk/mcs/; revision=100258
Diffstat (limited to 'mcs/tests/test-631.cs')
-rw-r--r-- | mcs/tests/test-631.cs | 206 |
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; + } + +} |