// OPTIONS: -nowarn:10001 using System; class Test { static receive_int ( a : int) : void { Console.Write (" "); Console.WriteLine (a); } static receive_uint ( a : uint) : void { Console.Write (" "); Console.WriteLine (a); } static receive_short ( a : short) : void { Console.Write (" "); Console.WriteLine (a); } static receive_ushort ( a : ushort) : void { Console.Write (" "); Console.WriteLine (a); } static receive_long ( a : long) : void { Console.Write (" "); Console.WriteLine (a); } static receive_ulong ( a : ulong) : void { Console.Write (" "); Console.WriteLine (a); } static receive_sbyte ( a : sbyte) : void { Console.Write (" "); Console.WriteLine (a); } static receive_byte ( a : byte) : void { Console.Write (" "); Console.WriteLine (a); } static receive_char ( _a : char) : void { Console.Write (" "); Console.WriteLine (""); } static probe_int() : void { mutable zero = ( 0 :> int); mutable min = ( int.MinValue :> int); mutable max = ( int.MaxValue :> int); Console.WriteLine ("Testing: int"); Console.WriteLine (" arg: int (int)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (int)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (int)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (int)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (int)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (int)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (int)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (int)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (int)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static probe_uint() : void { mutable zero = ( 0 :> uint); mutable min = ( uint.MinValue :> uint); mutable max = ( uint.MaxValue :> uint); Console.WriteLine ("Testing: uint"); Console.WriteLine (" arg: int (uint)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (uint)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (uint)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (uint)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (uint)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (uint)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (uint)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (uint)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (uint)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static probe_short() : void { mutable zero = ( 0 :> short); mutable min = ( short.MinValue :> short); mutable max = ( short.MaxValue :> short); Console.WriteLine ("Testing: short"); Console.WriteLine (" arg: int (short)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (short)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (short)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (short)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (short)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (short)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (short)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (short)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (short)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static probe_ushort() : void { mutable zero = ( 0 :> ushort); mutable min = ( ushort.MinValue :> ushort); mutable max = ( ushort.MaxValue :> ushort); Console.WriteLine ("Testing: ushort"); Console.WriteLine (" arg: int (ushort)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (ushort)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (ushort)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (ushort)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (ushort)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (ushort)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (ushort)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (ushort)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (ushort)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static probe_long() : void { mutable zero = ( 0 :> long); mutable min = ( long.MinValue :> long); mutable max = ( long.MaxValue :> long); Console.WriteLine ("Testing: long"); Console.WriteLine (" arg: int (long)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (long)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (long)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (long)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (long)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (long)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (long)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (long)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (long)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static probe_ulong() : void { mutable zero = ( 0 :> ulong); mutable min = ( ulong.MinValue :> ulong); mutable max = ( ulong.MaxValue :> ulong); Console.WriteLine ("Testing: ulong"); Console.WriteLine (" arg: int (ulong)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (ulong)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (ulong)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (ulong)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (ulong)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (ulong)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (ulong)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (ulong)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (ulong)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static probe_sbyte() : void { mutable zero = ( 0 :> sbyte); mutable min = ( sbyte.MinValue :> sbyte); mutable max = ( sbyte.MaxValue :> sbyte); Console.WriteLine ("Testing: sbyte"); Console.WriteLine (" arg: int (sbyte)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (sbyte)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (sbyte)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (sbyte)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (sbyte)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (sbyte)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (sbyte)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (sbyte)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (sbyte)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static probe_byte() : void { mutable zero = ( 0 :> byte); mutable min = ( byte.MinValue :> byte); mutable max = ( byte.MaxValue :> byte); Console.WriteLine ("Testing: byte"); Console.WriteLine (" arg: int (byte)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (byte)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (byte)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (byte)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (byte)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (byte)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (byte)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (byte)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (byte)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static probe_char() : void { mutable zero = ( 0 :> char); mutable min = ( char.MinValue :> char); mutable max = ( char.MaxValue :> char); Console.WriteLine ("Testing: char"); Console.WriteLine (" arg: int (char)"); receive_int (unchecked(( zero :> int))); receive_int (unchecked(( min :> int))); receive_int (unchecked(( max :> int))); Console.WriteLine (" arg: uint (char)"); receive_uint (unchecked(( zero :> uint))); receive_uint (unchecked(( min :> uint))); receive_uint (unchecked(( max :> uint))); Console.WriteLine (" arg: short (char)"); receive_short (unchecked(( zero :> short))); receive_short (unchecked(( min :> short))); receive_short (unchecked(( max :> short))); Console.WriteLine (" arg: ushort (char)"); receive_ushort (unchecked(( zero :> ushort))); receive_ushort (unchecked(( min :> ushort))); receive_ushort (unchecked(( max :> ushort))); Console.WriteLine (" arg: long (char)"); receive_long (unchecked(( zero :> long))); receive_long (unchecked(( min :> long))); receive_long (unchecked(( max :> long))); Console.WriteLine (" arg: ulong (char)"); receive_ulong (unchecked(( zero :> ulong))); receive_ulong (unchecked(( min :> ulong))); receive_ulong (unchecked(( max :> ulong))); Console.WriteLine (" arg: sbyte (char)"); receive_sbyte (unchecked(( zero :> sbyte))); receive_sbyte (unchecked(( min :> sbyte))); receive_sbyte (unchecked(( max :> sbyte))); Console.WriteLine (" arg: byte (char)"); receive_byte (unchecked(( zero :> byte))); receive_byte (unchecked(( min :> byte))); receive_byte (unchecked(( max :> byte))); Console.WriteLine (" arg: char (char)"); receive_char (unchecked(( zero :> char))); receive_char (unchecked(( min :> char))); receive_char (unchecked(( max :> char))); } static Main () : void { probe_int (); probe_uint (); probe_short (); probe_ushort (); probe_long (); probe_ulong (); probe_sbyte (); probe_byte (); probe_char (); } } /* BEGIN-OUTPUT Testing: int arg: int (int) 0 -2147483648 2147483647 arg: uint (int) 0 2147483648 2147483647 arg: short (int) 0 0 -1 arg: ushort (int) 0 0 65535 arg: long (int) 0 -2147483648 2147483647 arg: ulong (int) 0 2147483648 2147483647 arg: sbyte (int) 0 0 -1 arg: byte (int) 0 0 255 arg: char (int) Testing: uint arg: int (uint) 0 0 -1 arg: uint (uint) 0 0 4294967295 arg: short (uint) 0 0 -1 arg: ushort (uint) 0 0 65535 arg: long (uint) 0 0 -1 arg: ulong (uint) 0 0 4294967295 arg: sbyte (uint) 0 0 -1 arg: byte (uint) 0 0 255 arg: char (uint) Testing: short arg: int (short) 0 -32768 32767 arg: uint (short) 0 4294934528 32767 arg: short (short) 0 -32768 32767 arg: ushort (short) 0 32768 32767 arg: long (short) 0 -32768 32767 arg: ulong (short) 0 4294934528 32767 arg: sbyte (short) 0 0 -1 arg: byte (short) 0 0 255 arg: char (short) Testing: ushort arg: int (ushort) 0 0 65535 arg: uint (ushort) 0 0 65535 arg: short (ushort) 0 0 -1 arg: ushort (ushort) 0 0 65535 arg: long (ushort) 0 0 65535 arg: ulong (ushort) 0 0 65535 arg: sbyte (ushort) 0 0 -1 arg: byte (ushort) 0 0 255 arg: char (ushort) Testing: long arg: int (long) 0 0 -1 arg: uint (long) 0 0 4294967295 arg: short (long) 0 0 -1 arg: ushort (long) 0 0 65535 arg: long (long) 0 -9223372036854775808 9223372036854775807 arg: ulong (long) 0 9223372036854775808 9223372036854775807 arg: sbyte (long) 0 0 -1 arg: byte (long) 0 0 255 arg: char (long) Testing: ulong arg: int (ulong) 0 0 -1 arg: uint (ulong) 0 0 4294967295 arg: short (ulong) 0 0 -1 arg: ushort (ulong) 0 0 65535 arg: long (ulong) 0 0 -1 arg: ulong (ulong) 0 0 18446744073709551615 arg: sbyte (ulong) 0 0 -1 arg: byte (ulong) 0 0 255 arg: char (ulong) Testing: sbyte arg: int (sbyte) 0 -128 127 arg: uint (sbyte) 0 4294967168 127 arg: short (sbyte) 0 -128 127 arg: ushort (sbyte) 0 65408 127 arg: long (sbyte) 0 -128 127 arg: ulong (sbyte) 0 4294967168 127 arg: sbyte (sbyte) 0 -128 127 arg: byte (sbyte) 0 128 127 arg: char (sbyte) Testing: byte arg: int (byte) 0 0 255 arg: uint (byte) 0 0 255 arg: short (byte) 0 0 255 arg: ushort (byte) 0 0 255 arg: long (byte) 0 0 255 arg: ulong (byte) 0 0 255 arg: sbyte (byte) 0 0 -1 arg: byte (byte) 0 0 255 arg: char (byte) Testing: char arg: int (char) 0 0 65535 arg: uint (char) 0 0 65535 arg: short (char) 0 0 -1 arg: ushort (char) 0 0 65535 arg: long (char) 0 0 65535 arg: ulong (char) 0 0 65535 arg: sbyte (char) 0 0 -1 arg: byte (char) 0 0 255 arg: char (char) END-OUTPUT */