[Mono-bugs] [Bug 44845][Wis] Changed - MCS doesn't find the best overloaded match for a constructor

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
Fri, 20 Jun 2003 20:00:33 -0400 (EDT)


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

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

--- shadow/44845	Fri Jun 20 19:47:21 2003
+++ shadow/44845.tmp.9619	Fri Jun 20 20:00:33 2003
@@ -10,12 +10,13 @@
 Component: Misc
 AssignedTo: ravi@ximian.com                            
 ReportedBy: spouliot@videotron.ca               
 QAContact: mono-bugs@ximian.com
 TargetMilestone: ---
 URL: 
+Cc: bmaurer@users.sf.net,lupus@ximian.com
 Summary: MCS doesn't find the best overloaded match for a constructor
 
 Steps to reproduce the problem:
 1. cd /mcs/tools/security/certview
 2. Uncomment lines 126-127 in CertificateFormatter.cs (just under line // 
 BUG: Works with CSC but not with MCS)
@@ -106,6 +107,22 @@
 but the interesting thing here is that although the types of the
 argument and the constructor parameter are the same, mcs refuses to
 see that they are equal !
 
 I wonder if this has to do with the fact that the X509Extension is
 coming from an assembly.
+
+------- Additional Comments From ravi@ximian.com  2003-06-20 20:00 -------
+Seems like mono_metadata_type_equal doesnt think the two types are
+equal. A look at the method reveals the following comparison:
+
+	case MONO_TYPE_CLASS:
+		return t1->data.klass == t2->data.klass;
+
+Which is basically a pointer compare. Now in the above case, although
+the types are equal, since they come from a different assembly, the
+pointers are not the same so we have :
+
+Mono.Security.X509.X509Extension -> Mono.Security.X509.X509Extension ?
+0x819b7f0 -> 0x81f8b08
+
+Any ideas, Lupus ?