[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. 
+