[Mono-bugs] [Bug 476811] New: [Regression] Type inference fails on generic methods when passing default(SomeType) or (SomeType)null if "SomeType" is a referenceType
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Tue Feb 17 18:56:01 EST 2009
https://bugzilla.novell.com/show_bug.cgi?id=476811
Summary: [Regression] Type inference fails on generic methods
when passing default(SomeType) or (SomeType)null if
"SomeType" is a referenceType
Classification: Mono
Product: Mono: Compilers
Version: SVN
Platform: Macintosh
OS/Version: Mac OS X 10.5
Status: NEW
Severity: Major
Priority: P5 - None
Component: C#
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: dmitchell at logos.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us)
AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1
Here's some code:
---
using System;
namespace MonoBug
{
public static class Stuff
{
public static GenericStuff<T1, T2> CreateThing<T1, T2>(T1 firstValue,
T2 secondValue)
{
return new GenericStuff<T1, T2>(firstValue, secondValue);
}
}
public class GenericStuff<T1, T2>
{
public readonly T1 FirstValue;
public readonly T2 SecondValue;
public GenericStuff(T1 firstValue, T2 secondValue)
{
FirstValue = firstValue;
SecondValue = secondValue;
}
}
public static class Program
{
public static void Main(string[] arguments)
{
var thing = Stuff.CreateThing(default(string), "abc");
Console.WriteLine(thing.FirstValue);
Console.WriteLine(thing.SecondValue);
}
}
}
---
This code would compile/run under Mono 2.2, but it does not compile under Mono
SVN.
Reproducible: Always
Steps to Reproduce:
1. Put the code included above into a file
2. Attempt to compile with a copy of gmcs.exe compiled from svn
3.
Actual Results:
The compiler reports error CS0411 for the call to CreateThings
Expected Results:
The compiler should compile the program.
Instead of "default(string)", you can also try one of these:
- (string)null -- doesn't compile
- default(int) -- compiles
- default(int?) -- compiles
- (int?)null -- compiles
Declaring a new variable of a reference type, setting it to null, and passing
it into CreateThings also works as expected.
--
Configure bugmail: https://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