[Mono-bugs] [Bug 661984] New: Compiler crashes (InternalErrorException -> ArgumentException) in a "very special case"
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Sat Jan 1 16:31:57 EST 2011
https://bugzilla.novell.com/show_bug.cgi?id=661984
https://bugzilla.novell.com/show_bug.cgi?id=661984#c0
Summary: Compiler crashes (InternalErrorException ->
ArgumentException) in a "very special case"
Classification: Mono
Product: Mono: Compilers
Version: 2.8.x
Platform: All
OS/Version: SLED 11
Status: NEW
Severity: Normal
Priority: P5 - None
Component: C#
AssignedTo: msafar at novell.com
ReportedBy: mirapalheta at gmail.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10
Compiler crashes when trying to build a class witch descend from another which
as a "auto-related" generic parameter. This only happens when the descendant
class overrides a Parent method. Sorry I couldn't explain better, please see
the code bellow so you'll find out what I mean.
Reproducible: Always
Steps to Reproduce:
1. Build the following code:
using System;
using System.Linq;
using System.Linq.Expressions;
namespace BuildTest
{
class Dummy<T> {}
abstract class GranParent<T>
{
public virtual Dummy<T1> Test<T1>(Expression<Func<T, T1>> p)
{
return new Dummy<T1>();
}
}
abstract class Parent<T, P> : GranParent<T>
where P : Parent<T, P>
{
}
class Child<T> : Parent<T, Child<T>>
{
public override Dummy<T1> Test<T1>(Expression<Func<T, T1>> p)
{
return base.Test<T1>(p);
}
}
}
--- Compiler outputs:
Unhandled Exception: Mono.CSharp.InternalErrorException:
/home/mira/develop/test/BuildTest/Main.cs(19,15): BuildTest.Child<T> --->
Mono.CSharp.InternalErrorException:
/home/mira/develop/test/BuildTest/Main.cs(21,43):
BuildTest.Child<T>.Test<T1>(System.Linq.Expressions.Expression<System.Func<T,T1>>)
---> System.ArgumentException: Invalid arguments
2-a. If the class Child doesn't override the method the compiler does fine.
2-b. If the class Child is changed to "class Child<T> : GranParent<T>" the
compiler does fine.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list