[Mono-bugs] [Bug 77042][Maj] New - type parameter constraint on generic iterator method

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Dec 20 04:41:48 EST 2005

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by sestoft at dina.kvl.dk.


--- shadow/77042	2005-12-20 04:41:48.000000000 -0500
+++ shadow/77042.tmp.30816	2005-12-20 04:41:48.000000000 -0500
@@ -0,0 +1,57 @@
+Bug#: 77042
+Product: Mono: Compilers
+Version: 1.1
+OS Details: 
+Status: NEW   
+Priority: Major
+Component: C#
+AssignedTo: rharinath at novell.com                            
+ReportedBy: sestoft at dina.kvl.dk               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: type parameter constraint on generic iterator method
+Description of Problem:
+The constraint on a type parameter T of a generic iterator (yield) method
+seems to be forgotten, or only partially taken into account, in the class
+generated by gmcs for the iterator method.
+Steps to reproduce the problem:
+1. Compile the program below
+Actual Results:
+sestoft at jones:~/cs$ gmcs Bug17.cs
+Bug17.cs(14,17): error CS1502: The best overloaded method match for
+`IComparable<T>.CompareTo<>(T)' has some invalid arguments
+Bug17.cs(14,17): error CS1503: Argument 1: Cannot convert from `T' to `T'
+Compilation failed: 2 error(s), 0 warnings
+Expected Results:
+Compiles OK.
+Additional Information:
+Test case:
+using System;
+using System.Collections.Generic;
+public class H {
+  public static void Main(String[] args) { }
+  public static IEnumerable<T> Merge<T>(IEnumerator<T> xEtor) 
+    where T : IComparable<T>
+  {
+    int order = xEtor.Current.CompareTo(xEtor.Current);
+    yield return xEtor.Current;
+  }

More information about the mono-bugs mailing list