http://bugzilla.novell.com/show_bug.cgi?id=619555
http://bugzilla.novell.com/show_bug.cgi?id=619555#c0 Summary: Operator error Classification: Mono Product: Mono: Runtime Version: SVN Platform: 64bit OS/Version: RHEL 5 Status: NEW Severity: Major Priority: P5 - None Component: misc AssignedTo: mono-bugs@lists.ximian.com ReportedBy: srfcan...@hotmail.com QAContact: mono-bugs@lists.ximian.com Found By: --- Blocker: --- User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; WOW64; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; MS-RTC LM 8) the error seems to have appeared in the last couple days checkins. The given test class doesnt compile on mono but does on windows and used to compile on mono a few days ago. 1. Test Class: using System; using System.Collections.Generic; namespace Test { internal struct TestClass4<T> : IEquatable<TestClass4<T>>, IEquatable<T>, IEqualityComparer<TestClass4<T>> where T : class { public bool Equals(T obj) { return true; } public bool Equals(TestClass4<T> entry) { return true; } public bool Equals(TestClass4<T> x, TestClass4<T> y) { return x.Equals(y); } public int GetHashCode(TestClass4<T> obj) { return obj.GetHashCode(); } public override int GetHashCode() { return 1; } public override bool Equals(object obj) { return false; } public static bool operator ==(TestClass4<T> entry1, TestClass4<T> entry2) { return entry1.Equals(entry2); } public static bool operator ==(T entry1, TestClass4<T> entry2) { return entry2.Equals(entry1); } public static bool operator ==(TestClass4<T> entry1, T entry2) { return entry1.Equals(entry2); } public static bool operator ==(object entry1, TestClass4<T> entry2) { return entry2.Equals(entry1); } public static bool operator ==(TestClass4<T> entry1, object entry2) { return entry1.Equals(entry2); } public static bool operator !=(TestClass4<T> entry1, TestClass4<T> entry2) { return !(entry1 == entry2); } public static bool operator !=(T entry1, TestClass4<T> entry2) { return !(entry1 == entry2); } public static bool operator !=(TestClass4<T> entry1, T entry2) { return !(entry1 == entry2); } public static bool operator !=(object entry1, TestClass4<T> entry2) { return !(entry1 == entry2); } public static bool operator !=(TestClass4<T> entry1, object entry2) { return !(entry1 == entry2); } } } 2. compile it: gmcs /targe:library test4.cs 3. generates this error on mono: test4.cs(65,26): error CS0019: Operator `==' cannot be applied to operands of type `Test.TestClass4<T>' and `Test.TestClass4<T>' test4.cs(70,26): error CS0019: Operator `==' cannot be applied to operands of type `T' and `Test.TestClass4<T>' test4.cs(75,26): error CS0019: Operator `==' cannot be applied to operands of type `Test.TestClass4<T>' and `T' test4.cs(80,26): error CS0019: Operator `==' cannot be applied to operands of type `object' and `Test.TestClass4<T>' test4.cs(85,26): error CS0019: Operator `==' cannot be applied to operands of type `Test.TestClass4<T>' and `object' Compilation failed: 5 error(s), 0 warnings Reproducible: Always Steps to Reproduce: 1. 2. 3. -- 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 - mono-bugs@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-bugs