[Mono-bugs] [Bug 77816][Nor] Changed - r56802/r58039 brought incorrect CS0121 (anonymous method ambiguity)

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Mar 17 13:19:09 EST 2006

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 atsushi at ximian.com.


--- shadow/77816	2006-03-17 12:38:41.000000000 -0500
+++ shadow/77816.tmp.31763	2006-03-17 13:19:09.000000000 -0500
@@ -1,14 +1,14 @@
 Bug#: 77816
 Product: Mono: Compilers
 Version: 1.1
+OS: unknown
 OS Details: 
 Status: NEW   
+Severity: Unknown
 Priority: Normal
 Component: C#
 AssignedTo: rharinath at novell.com                            
 ReportedBy: atsushi at ximian.com               
 QAContact: mono-bugs at ximian.com
 TargetMilestone: ---
@@ -61,6 +61,69 @@
 , so I guess every anonymous method use for ThreadStart is now broken (a
 bit of luck is that ParameterizedThreadStart is only 2.0 delegate, so it
 won't happen with mcs).
 Marek: can you please have a look at this one? r58038 worked fine, while
 r58039 does not.
+------- Additional Comments From atsushi at ximian.com  2006-03-17 13:19 -------
+Actually it might not be a bug around anonymous methods, but about
+delegate in general. The following code causes mcs crash.
+public class Test
+        void Foo ()
+        {
+                new Test (new TestMethod (Foo));
+        }
+        public Test (TestMethod2 test) {}
+public delegate void TestMethod ();
+public delegate void TestMethod2 (object o);
+Actual Results:
+$ mcs resolve-delegate.cs
+Exception caught by the compiler while compiling:
+   Block that caused the problem begin at: resolve-delegate.cs(3,7):
+                     Block being compiled:
+Mono.CSharp.InternalErrorException: VerifyArgumentsCompat and
+IsApplicable do no
+t agree; likely reason: ImplicitConversion and
+ImplicitConversionExists have gon
+e out of sync
+Unhandled Exception: Mono.CSharp.InternalErrorException:
+VerifyArgumentsCompat a
+nd IsApplicable do not agree; likely reason: ImplicitConversion and
+ersionExists have gone out of sync
+in <0x00ea6> Mono.CSharp.Invocation:OverloadResolve
+(Mono.CSharp.EmitContext ec,
+ Mono.CSharp.MethodGroupExpr me, System.Collections.ArrayList
+Arguments, Boolean
+ may_fail, Location loc)
+in <0x004de> Mono.CSharp.New:DoResolve (Mono.CSharp.EmitContext ec)
+in <0x000dd> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext
+ec, Resolve
+Flags flags)
+in <0x00010> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec)
+in <0x0000f> Mono.CSharp.ExpressionStatement:ResolveStatement
+ontext ec)
+in <0x0001f> Mono.CSharp.StatementExpression:Resolve
+(Mono.CSharp.EmitContext ec
+in <0x001e2> Mono.CSharp.Block:Resolve (Mono.CSharp.EmitContext ec)
+in <0x00148> Mono.CSharp.EmitContext:ResolveTopBlock
+(Mono.CSharp.EmitContext an
+onymous_method_host, Mono.CSharp.ToplevelBlock block,
+Mono.CSharp.Parameters ip,
+ IMethodData md, System.Boolean unreachable)
+gmcs works fine here.

More information about the mono-bugs mailing list