Exclude more console code from NET_2_1
[mono.git] / mcs / tools / corcompare / mono-api-diff.cs
index 3ef9815d9898b9056ba38421fbc3cf2e05a6280a..322e4c883b7ddc56ac39c62c9c19695b2180587c 100644 (file)
@@ -4,10 +4,13 @@
 //
 // Authors:
 //     Gonzalo Paniagua Javier (gonzalo@ximian.com)
-//     Marek Safar                             (marek.safar@gmail.com)
+//     Marek Safar             (marek.safar@gmail.com)
 //
-// (C) 2003 Novell, Inc (http://www.novell.com)
+// Maintainer:
+//     C.J. Adams-Collier      (cjac@colliertech.org)
 //
+// (C) 2003 Novell, Inc (http://www.novell.com)
+// (C) 2009,2010 Collier Technologies (http://www.colliertech.org)
 
 using System;
 using System.Collections;
@@ -292,14 +295,14 @@ namespace Mono.AssemblyCompare
                public bool HaveWarnings {
                        get { return haveWarnings; }
                }
-               
+
                public Counters Counters {
                        get { return counters; }
                }
-               
+
                public abstract void CompareTo (XmlDocument doc, XmlNode parent, object other);
        }
-       
+
        abstract class XMLNameGroup : XMLData
        {
                protected XmlNode group;
@@ -527,7 +530,7 @@ namespace Mono.AssemblyCompare
                        this.document = doc;
                        XmlNode parent = doc.CreateElement ("assemblies", null);
                        doc.AppendChild (parent);
-                       
+
                        CompareTo (doc, parent, other);
 
                        XmlNode decl = doc.CreateXmlDeclaration ("1.0", null, null);
@@ -657,7 +660,7 @@ namespace Mono.AssemblyCompare
                XMLEvents events;
                XMLMethods methods;
                XMLClass [] nested;
-               
+
                public override void LoadData (XmlNode node)
                {
                        if (node == null)
@@ -691,7 +694,7 @@ namespace Mono.AssemblyCompare
                                // Console.Error.WriteLine ("Empty class {0} {1}", name, type);
                                return;
                        }
-                               
+
                        if (child.Name == "attributes") {
                                attributes = new XMLAttributes ();
                                attributes.LoadData (child);
@@ -740,6 +743,12 @@ namespace Mono.AssemblyCompare
                                child = child.NextSibling;
                        }
 
+                       if (child != null && child.Name == "generic-parameters") {
+                               // HACK: ignore this tag as it doesn't seem to
+                               // add any value when checking for differences
+                               return;
+                       }
+
                        if (child == null)
                                return;
 
@@ -986,7 +995,7 @@ namespace Mono.AssemblyCompare
 
                        if (type != oparm.type)
                                AddWarning (parent, "Parameter type is wrong: {0} != {1}", type, oparm.type);
-                       
+
                        if (attrib != oparm.attrib)
                                AddWarning (parent, "Parameter attributes wrong: {0} != {1}", attrib, oparm.attrib);
 
@@ -1092,7 +1101,7 @@ namespace Mono.AssemblyCompare
                                if (de.Value.Equals (other_value))
                                        continue;
 
-                               AddWarning (parent, "Property '{0}' is '{1}' and should be '{2}'", 
+                               AddWarning (parent, "Property '{0}' is '{1}' and should be '{2}'",
                                        de.Key, de.Value, other_value == null ? "null" : other_value);
                        }
                }
@@ -1147,7 +1156,7 @@ namespace Mono.AssemblyCompare
                {
                        string key = null;
 
-                       // if multiple attributes with the same name (type) exist, then we 
+                       // if multiple attributes with the same name (type) exist, then we
                        // cannot be sure which attributes correspond, so we must use the
                        // name of the attribute (type) and the name/value of its properties
                        // as key
@@ -1166,7 +1175,7 @@ namespace Mono.AssemblyCompare
                                        }
                                }
 
-                               // sort properties by name, as order of properties in XML is 
+                               // sort properties by name, as order of properties in XML is
                                // undefined
                                keyParts.Sort ();
 
@@ -1285,7 +1294,7 @@ namespace Mono.AssemblyCompare
                        XmlAttribute xatt = node.Attributes ["attrib"];
                        if (xatt != null)
                                access [name] = xatt.Value;
-                       
+
                        XmlNode orig = node;
 
                        node = node.FirstChild;
@@ -1355,7 +1364,7 @@ namespace Mono.AssemblyCompare
                        return null;
                }
        }
-       
+
        class XMLFields : XMLMember
        {
                Hashtable fieldTypes;
@@ -1558,9 +1567,11 @@ namespace Mono.AssemblyCompare
                public override string GetNodeKey (string name, XmlNode node)
                {
                        XmlAttributeCollection atts = node.Attributes;
-                       return String.Format ("{0}:{1}:{2}", atts ["name"].Value,
-                                                               atts ["ptype"].Value,
-                                                               atts ["params"].Value);
+                       return String.Format ("{0}:{1}:{2}",
+                                             (atts["name"]   != null ? atts["name"].Value   : ""),
+                                             (atts["ptype"]  != null ? atts["ptype"].Value  : ""),
+                                             (atts["params"] != null ? atts["params"].Value : "")
+                                             );
                }
 
                public override string GroupName {
@@ -1808,7 +1819,7 @@ namespace Mono.AssemblyCompare
                        if ((ma & MethodAttributes.RequireSecObject) != 0)
                                ma = (MethodAttributes) (att - (int) MethodAttributes.RequireSecObject);
 
-                       // we don't care if the implementation is forwarded through PInvoke 
+                       // we don't care if the implementation is forwarded through PInvoke
                        if ((ma & MethodAttributes.PinvokeImpl) != 0)
                                ma = (MethodAttributes) (att - (int) MethodAttributes.PinvokeImpl);