http://bugzilla.novell.com/show_bug.cgi?id=610240
http://bugzilla.novell.com/show_bug.cgi?id=610240#c0 Summary: Nested classes with generics: type parameters not considered equal (from same bindings) Classification: Mono Product: Mono: Compilers Version: SVN Platform: i386 OS/Version: Ubuntu Status: NEW Severity: Normal Priority: P5 - None Component: C# AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.10pre) Gecko/20100410 Ubuntu/9.10 (karmic) Firefox/3.5.9 Nested classes that share a parent's type parameter are not considered equal... Here's a minimized test-case, ("Gen.cs"): // --------------- Gen.cs ------------------------ public class List<X>{ public class Comp<Y>{ public List<Y>.Comp<X> flip(Y y, X x){ return new Flip<Y>(this); } } public class Flip<Z> : List<Z>.Comp<X>{ Comp<Z> c; public Flip(Comp<Z> cc){ c = cc; } } } // ----------------------------------------------- The nested classes refer to the same binding of the type parameter X. Yet the call to the constructor of List<X>.Flip<Y> inside of List<X>.Comp<Y> is flagged as not matching the constructor's parameter type (once renamed) of List<X>.Comp<Y>, even though X and Y in both cases share bindings. Fully expanding all types in the source (i.e., prefixing with List<X>) doesn't affect the result. Errors are: Gen.cs(4,37): error CS1502: The best overloaded method match for `List<X>.Flip<Y>.Flip(List<X>.Comp<Y>)' has some invalid arguments Gen.cs(4,37): error CS1503: Argument `#1' cannot convert `List<X>.Comp<Y>' expression to type `List<X>.Comp<Y>' With a mention of: Gen.cs(4,37): (equally named types possibly from different assemblies in previous error) Using a build from daily source: http://mono.ximian.com/daily/mono-20100530.tar.bz2 If this is the expected behavior a suggestion for achieving this kind of 'equality' would be greatly appreciated. Reproducible: Always Steps to Reproduce: 1. Compile the test file GMCS 2. 3. Actual Results: Compile Errors Expected Results: Successful Compile Older version (gmcs 2.4.3) was not so strict, not requiring the List<Y> and List<Z> prefixes on lines 3 and 7, which were caught by Microsoft CSC. -- 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
