2005-12-23 Miguel de Icaza <miguel@novell.com>
[mono.git] / mcs / mcs / class.cs
index d4d6d337ddb7d1a32edc6e9d45845b7433577553..4a723460b316d334c973294378151ef994f5aaa1 100644 (file)
@@ -2452,6 +2452,15 @@ namespace Mono.CSharp {
                        return false;
                }
 
+               public virtual void Mark_HasEquals ()
+               {
+                       Methods.HasEquals = true;
+               }
+
+               public virtual void Mark_HasGetHashCode ()
+               {
+                       Methods.HasGetHashCode = true;
+               }
 
                //
                // IMemberContainer
@@ -2742,6 +2751,15 @@ namespace Mono.CSharp {
                        throw new InternalErrorException ("Should not get here");
                }
 
+               public override void Mark_HasEquals ()
+               {
+                       PartialContainer.Mark_HasEquals ();
+               }
+
+               public override void Mark_HasGetHashCode ()
+               {
+                       PartialContainer.Mark_HasGetHashCode ();
+               }
        }
 
        public abstract class ClassOrStruct : TypeContainer {
@@ -3221,12 +3239,10 @@ namespace Mono.CSharp {
                                        return false;
                                }
 
-                               if (RootContext.WarningLevel > 2) {
-                                       if (Name == "Equals" && Parameters.Count == 1 && ParameterTypes [0] == TypeManager.object_type)
-                                               Parent.Methods.HasEquals = true;
-                                       else if (Name == "GetHashCode" && Parameters.Empty)
-                                               Parent.Methods.HasGetHashCode = true;
-                               }
+                               if (Name == "Equals" && Parameters.Count == 1 && ParameterTypes [0] == TypeManager.object_type)
+                                       Parent.Mark_HasEquals ();
+                               else if (Name == "GetHashCode" && Parameters.Empty)
+                                       Parent.Mark_HasGetHashCode ();
 
                                if ((ModFlags & Modifiers.OVERRIDE) != 0) {
                                        ObsoleteAttribute oa = AttributeTester.GetMethodObsoleteAttribute (base_method);