[Mono-bugs] [Bug 614471] New: [GMCS] Regression: Can assign invalid types to variables.
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Tue Jun 15 14:00:24 EDT 2010
http://bugzilla.novell.com/show_bug.cgi?id=614471
http://bugzilla.novell.com/show_bug.cgi?id=614471#c0
Summary: [GMCS] Regression: Can assign invalid types to
variables.
Classification: Mono
Product: Mono: Compilers
Version: SVN
Platform: x86-64
OS/Version: openSUSE 11.2
Status: NEW
Severity: Normal
Priority: P5 - None
Component: C#
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: jpryor at novell.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
The type checker in trunk has gone haywire; to wit, this compiles:
class Test {
public static void Main ()
{
Foo<int, double>();
}
static void Foo<T1, T2> ()
{
T1 a = default (T2);
T2 b = default (T1);
}
}
There's no way that we should be able to assign default(T2) to a T1 variable.
gmcs 2.4 dislikes it, as does gmcs 2.6:
bad.cs(9,28): error CS0029: Cannot implicitly convert type `T2' to `T1'
bad.cs(10,28): error CS0029: Cannot implicitly convert type `T1' to `T2'
(gmcs 2.6 shows lots more output, but it's a superset of the above.)
gmcs trunk will compile it with only warnings:
bad.cs(10,28): warning CS0219: The variable `b' is assigned but its value is
never used
bad.cs(9,28): warning CS0219: The variable `a' is assigned but its value is
never used
Running it is a disaster:
$ mono bad.exe
Unhandled Exception: System.InvalidCastException: Cannot cast from source type
to destination type.
at Test.Foo[Int32,Double] () [0x00000] in <filename unknown>:0
at Test.Main () [0x00000] in <filename unknown>:0
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list