Author: martin
Date: 2005-04-30 02:42:06 -0400 (Sat, 30 Apr 2005)
New Revision: 43811
Modified:
trunk/mcs/gmcs/ChangeLog
trunk/mcs/gmcs/class.cs
trunk/mcs/gmcs/typemanager.cs
Log:
2005-04-30 Martin Baulig <[EMAIL PROTECTED]>
* typemanager.cs
(TypeManager.ExpandInterfaces): Don't add things twice.
* class.cs
(TypeContainer.VerifyClsCompliance): Allow generic instances.
Modified: trunk/mcs/gmcs/ChangeLog
===================================================================
--- trunk/mcs/gmcs/ChangeLog 2005-04-30 06:41:57 UTC (rev 43810)
+++ trunk/mcs/gmcs/ChangeLog 2005-04-30 06:42:06 UTC (rev 43811)
@@ -1,3 +1,11 @@
+2005-04-30 Martin Baulig <[EMAIL PROTECTED]>
+
+ * typemanager.cs
+ (TypeManager.ExpandInterfaces): Don't add things twice.
+
+ * class.cs
+ (TypeContainer.VerifyClsCompliance): Allow generic instances.
+
2005-04-29 Martin Baulig <[EMAIL PROTECTED]>
* generic.cs (Constraints.ResolveTypes): Expand interfaces.
Modified: trunk/mcs/gmcs/class.cs
===================================================================
--- trunk/mcs/gmcs/class.cs 2005-04-30 06:41:57 UTC (rev 43810)
+++ trunk/mcs/gmcs/class.cs 2005-04-30 06:42:06 UTC (rev 43811)
@@ -2447,12 +2447,6 @@
VerifyClsName ();
- if (IsGeneric) {
- Report.Error (3024, Location, "'{0}': type
parameters are not CLS-compliant",
- GetSignatureForError ());
- return false;
- }
-
Type base_type = TypeBuilder.BaseType;
if (base_type != null &&
!AttributeTester.IsClsCompliant (base_type)) {
Report.Error (3009, Location, "'{0}': base type
'{1}' is not CLS-compliant", GetSignatureForError (), TypeManager.CSharpName
(base_type));
Modified: trunk/mcs/gmcs/typemanager.cs
===================================================================
--- trunk/mcs/gmcs/typemanager.cs 2005-04-30 06:41:57 UTC (rev 43810)
+++ trunk/mcs/gmcs/typemanager.cs 2005-04-30 06:42:06 UTC (rev 43811)
@@ -2179,11 +2179,13 @@
if (texpr == null)
return null;
- if (!new_ifaces.Contains (texpr.Type))
- new_ifaces.Add (texpr.Type);
+ if (new_ifaces.Contains (texpr.Type))
+ continue;
+
+ new_ifaces.Add (texpr.Type);
Type [] implementing = texpr.Type.GetInterfaces ();
-
+
foreach (Type imp in implementing){
if (!new_ifaces.Contains (imp))
new_ifaces.Add (imp);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches