[Mono-bugs] [Bug 36128][Nor] Changed - mcs-compiled libraries with explicit conversions not compatible with csc
bugzilla-daemon@rocky.ximian.com
bugzilla-daemon@rocky.ximian.com
27 Dec 2002 10:07:55 -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 mathpup@mylinuxisp.com.
http://bugzilla.ximian.com/show_bug.cgi?id=36128
--- shadow/36128 Fri Dec 27 04:04:12 2002
+++ shadow/36128.tmp.29985 Fri Dec 27 05:07:55 2002
@@ -1,14 +1,14 @@
Bug#: 36128
Product: Mono/MCS
Version: unspecified
-OS:
+OS: unknown
OS Details: SuSE Linux 8.0
Status: NEW
Resolution:
-Severity:
+Severity: Unknown
Priority: Normal
Component: Misc
AssignedTo: mono-bugs@ximian.com
ReportedBy: mathpup@mylinuxisp.com
QAContact: mono-bugs@ximian.com
TargetMilestone: ---
@@ -59,6 +59,27 @@
------- Additional Comments From mathpup@mylinuxisp.com 2002-12-27 04:04 -------
Created an attachment (id=3040)
Test case
+
+------- Additional Comments From mathpup@mylinuxisp.com 2002-12-27 05:07 -------
+I compiled Integer.cs with both csc and mcs and compared the results of
+disassembling them. The important point seems to be that csc gives the
+conversion operator's method the signature
+
+.method public static hidebysig specialname int32 op_Explicit(class Integer n)
+cil managed
+
+whereas mcs has
+
+.method public static int32 op_Explicit(class Integer n) cil managed
+
+Note that csc add the "specialname" flag. When I edited mcs's output to
+include "specialname" in the method and reassembled it, csc dealt with the
+resulting Integer.dll fine.
+
+Although the ECMA docs don't bring it up in Partition II, Parition I section 9.3
+indicates that the operator overloaded should set the SpecialName flags in the
+metadta.
+