[Mono-bugs] [Bug 75284][Nor] New - Type arguments of custom
attributes in System assembly have wrong type names in IL
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Thu Jun 16 13:56:48 EDT 2005
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 gert.driesen at pandora.be.
http://bugzilla.ximian.com/show_bug.cgi?id=75284
--- shadow/75284 2005-06-16 13:56:48.000000000 -0400
+++ shadow/75284.tmp.741 2005-06-16 13:56:48.000000000 -0400
@@ -0,0 +1,98 @@
+Bug#: 75284
+Product: Mono: Runtime
+Version: 1.1
+OS:
+OS Details:
+Status: NEW
+Resolution:
+Severity:
+Priority: Normal
+Component: misc
+AssignedTo: mono-bugs at ximian.com
+ReportedBy: gert.driesen at pandora.be
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: Type arguments of custom attributes in System assembly have wrong type names in IL
+
+Apparently, some Type arguments of custom attributes in, for example, the
+System assembly have a bad type name.
+
+For example, look at the IL that's emitted for the
+System.ComponentModel.TypeConverterAttribute of the
+System.ComponentModel.IComponent interface in the System assembly.
+
+The ctor of the TypeConverterAttribute takes a Type, and in the source
+its defined like this :
+
+[TypeConverter (typeof (System.ComponentModel.ComponentConverter))]
+
+However, in the emitted assembly the type name looks like this :
+
+System.ComponentModel.ComponentConverter, System, Version=0.0.0.0,
+Culture=neutral, PublicKeyToken=null
+
+Ofcourse both the version number and the publickeytoken are not correct.
+
+Also MS does not emit an AssemblyQualifiedName if the type is in the same
+assembly.
+
+Note: On Windows I can no longer build Mono, and I think it might be
+because of this issue.
+
+If I'm not mistaken, the 1.0 profile assemblies are built using csc on
+Windows. This means that the Type argument is emitted with its full name
+and not its assembly qualified name.
+
+Then when the 2.0 profile is bootstrapped its first uses the System
+assembly built using csc and fails when verifying CLS compliance as csc
+did not emit assembly qualified type names (for Type arguments of custom
+attributes) and apparently mcs relies on these being fully qualified.
+
+** (../../class/lib/default/mcs.exe:3456): WARNING **: Cannot load
+type 'System.
+ComponentModel.Design.IDesigner'
+
+Unhandled Exception: System.NullReferenceException: Object reference not
+set to an instance of an object
+in <0x00010> System.ComponentModel.DesignerAttribute:.ctor (System.String
+designerTypeName, System.Type designerBaseType)
+in <0x00000> <unknown method>
+in (wrapper managed-to-native)
+System.MonoCustomAttrs:GetCustomAttributesInternal
+(System.Reflection.ICustomAttributeProvider,bool)
+in <0x0000d> System.MonoCustomAttrs:GetCustomAttributesBase
+(ICustomAttributeProvider obj)
+in <0x0001a> System.MonoCustomAttrs:GetCustomAttributes
+(ICustomAttributeProvider obj, System.Type attributeType, Boolean inherit)
+in <0x0001a> System.MonoType:GetCustomAttributes (System.Type
+attributeType, Boolean inherit)
+in <0x0003d> Mono.CSharp.AttributeTester:AnalyzeTypeCompliance
+(System.Type type)
+in <0x000e0> Mono.CSharp.AttributeTester:IsClsCompliant (System.Type type)
+in <0x000b0> Mono.CSharp.AttributeTester:VerifyTopLevelNameClsCompliance
+()
+in <0x00b91> Mono.CSharp.Driver:MainDriver (System.String[] args)
+in <0x0000f> Mono.CSharp.Driver:Main (System.String[] args)
+make[8]: *** [../../class/lib/net_2_0_bootstrap/System.Xml.dll] Error 1
+make[8]: Leaving directory
+`/cygdrive/d/projects/mono/head/mcs/class/System.XML'
+
+make[7]: *** [do-all] Error 2
+make[7]: Leaving directory
+`/cygdrive/d/projects/mono/head/mcs/class/System.XML'
+
+make[6]: *** [all-recursive] Error 1
+make[6]: Leaving directory `/cygdrive/d/projects/mono/head/mcs/class'
+make[5]: *** [all-recursive] Error 1
+make[5]: Leaving directory `/cygdrive/d/projects/mono/head/mcs'
+make[4]: *** [profile-do--net_2_0_bootstrap--all] Error 2
+make[4]: Leaving directory `/cygdrive/d/projects/mono/head/mcs'
+make[3]: *** [profiles-do--all] Error 2
+make[3]: Leaving directory `/cygdrive/d/projects/mono/head/mcs'
+make[2]: *** [all-local] Error 2
+make[2]: Leaving directory `/cygdrive/d/projects/mono/head/mono/runtime'
+make[1]: *** [all-recursive] Error 1
+make[1]: Leaving directory `/cygdrive/d/projects/mono/head/mono'
+make: *** [all] Error 2
More information about the mono-bugs
mailing list