[Mono-bugs] [Bug 34403][Nor] Changed - mcs doesn't see an inherited explicit interface member implementation

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
23 Nov 2002 00:11:44 -0000


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 miguel@ximian.com.

http://bugzilla.ximian.com/show_bug.cgi?id=34403

--- shadow/34403	Thu Nov 21 09:42:18 2002
+++ shadow/34403.tmp.4451	Fri Nov 22 19:11:44 2002
@@ -1,22 +1,21 @@
 Bug#: 34403
-Product: Mono/MCS
+Product: Mono/Runtime
 Version: unspecified
 OS: unknown
 OS Details: 
 Status: NEW   
 Resolution: 
 Severity: Unknown
 Priority: Normal
-Component: Misc
+Component: misc
 AssignedTo: mono-bugs@ximian.com                            
 ReportedBy: avd@openlinksw.com               
 QAContact: mono-bugs@ximian.com
 TargetMilestone: ---
 URL: 
-Cc: 
 Summary: mcs doesn't see an inherited explicit interface member implementation
 
 The following code compiles fine with Microsoft's csc but produces
 an error with mcs.
 
 using System;
@@ -39,6 +38,38 @@
 }
 
 Actual Results:
 
 csif.cs(14) error CS0536: `Y' does not implement interface member `I.m'
 Compilation failed: 1 error(s), 0 warnings
+
+------- Additional Comments From miguel@ximian.com  2002-11-22 19:11 -------
+I fixed this a couple of weeks ago, but the fix exposes a bug in the
+Mono runtime, so it is currently uncommented.
+
+This is a Mono runtime bug.
+
+The compiler generates the code correctly if running on Windows, here
+is the output when running on Mono, when trying to compile:
+
+mono$ mono mcs.exe a.cs
+no implementation for interface method .I::m() in class .Y
+METHOD .ctor()
+METHOD mm()
+METHOD Main(string[])
+
+** ERROR **: file class.c: line 687 (mono_class_setup_vtable): should
+not be reached
+aborting...
+Aborted
+
+The code to remove in the compiler is: mcs/pending.cs, in
+GetMissinginterfaces:
+
+			//
+			// Remove the return below to expose the bug, for now, we need the
+runtime to be fixed.
+			//
+			return implementing_ifaces;
+
+If you remove that, try the example above.  It will also be exposed in
+a corlib compilation.