http://bugzilla.novell.com/show_bug.cgi?id=518707
Summary: gmcs fails to unbox 'var' to check it against generic
constraints
Classification: Mono
Product: Mono: Compilers
Version: SVN
Platform: x86
OS/Version: All
Status: NEW
Severity: Normal
Priority: P5 - None
Component: C#
AssignedTo: [email protected]
ReportedBy: [email protected]
QAContact: [email protected]
Found By: ---
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1)
Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)
The following code does not compile properly with gmcs 2.0.1, 2.4.2 and
svn-r137273. When the code is compiled with MS.Net and run on Mono, the
expected result is produced. Comparing the IL produced, the gmcs fails to unbox
the Object parameter stored in a 'var' to check it's type against generic Type
parameter.
Reproducible: Always
Steps to Reproduce:
Compile this code with gmcs and run on either Mono or MS.Net:
using System;
namespace Spike
{
class Program
{
static void Main(string[] args)
{
Tester<int> t = new Tester<int>();
Console.WriteLine(t.Get(333));
Console.WriteLine(t.Get(222.12));
}
private class Tester<T> where T : struct, IConvertible
{
public T Get(object data)
{
var val = data;
if (val is T)
return (T)val;
return default(T);
}
}
}
}
Actual Results:
During compilation:
"Program.cs(19,41): warning CS0184: The given expression is never of the
provided
(`T') type
Program.cs(20,41): warning CS0162: Unreachable code detected
Compilation succeeded - 2 warning(s)"
During execution:
0
0
Expected Results:
No warnings during compilation.
Execution produces:
333
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.
_______________________________________________
mono-bugs maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs