I've found another case where the compiler should give a different error (at
the moment it crashes).
public class Test {
public static void Main ()
{
byte b = 8;
int i = 256;
Increment (ref b);
System.Console.WriteLine ("8 + 1 = {0}", b);
Increment (ref i);
System.Console.WriteLine ("256 + 1 = {0}", i);
}
public static void Increment (ref int arg)
{
arg += 1;
}
public static void Increment (ref byte arg)
{
// reference cast - not allowed
Increment (ref (int) arg);
}
}
Who needs specifications to test against when you have a twisted mind?
Seriouslly though, the above code could be legal - mcs might be expected to
create a temporary variable of type int, assign the byte value to it, call
the other Increment overload with it, and then assign its value back to the
byte argument - so a check against the microsoft compiler is necessary.
Alan
_______________________________________________
Mono-list maillist - [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list