[Mono-bugs] [Bug 68888][Nor] Changed - HEAD regression when reflecting on a private interface
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Mon, 1 Nov 2004 22:32:36 -0500 (EST)
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=68888
--- shadow/68888 2004-11-01 19:32:57.000000000 -0500
+++ shadow/68888.tmp.29487 2004-11-01 22:32:36.000000000 -0500
@@ -90,6 +90,65 @@
This is not a runtime bug, the method name is generated by mcs, and
newer mcs versions seem to call it 'IBuiltInPermission.GetTokenIndex',
omitting the namespace.
------- Additional Comments From sebastien@ximian.com 2004-11-01 19:32 -------
then I guess I better move this into MCS...
+
+------- Additional Comments From miguel@ximian.com 2004-11-01 22:32 -------
+This was caused by this patch:
+
+-2004-09-10 Martin Baulig <martin@ximian.com>
+
+ Backported my MemberName changes from GMCS into MCS.
+
+The change is using `MemberName.GetFullName', which does not
+return a fully qualified name, which means that the compiler
+is generating invalid method names, the following program
+can be used to see the problem:
+
+using A;
+
+namespace A {
+ interface B {
+ void C ();
+ }
+}
+
+
+class D : B {
+ void B.C ()
+ {
+ }
+
+ static void Main ()
+ {
+ }
+}
+
+Compile, and then run:
+
+monodis --method re.exe | grep C
+The correct output should be:
+
+3: instance default void A.B.C () (param: 1)
+
+Today we output:
+
+3: instance default void B.C () (param: 1)
+
+The problem might be related to this piece of code:
+
+-#if FIXME
+ // Compute the full name that we need
+to export.
+ if (InterfaceType.FullName !=
+ExplicitInterfaceName) {
+ ExplicitInterfaceName =
+InterfaceType.FullName;
+ UpdateMemberName ();
+ }
+-#endif
+
+
+
+