2008-11-24 Marek Safar <marek.safar@gmail.com>
[mono.git] / mcs / mcs / enum.cs
index 110162f3b32b210599001194cbaea6a9a375f1f0..2523e0cf76c1cc701b5fb638ac8bc2d7254e300b 100644 (file)
@@ -70,6 +70,9 @@ namespace Mono.CSharp {
 
                public override bool Define ()
                {
+                       if (!ResolveMemberType ())
+                               return false;
+
                        const FieldAttributes attr = FieldAttributes.Public | FieldAttributes.Static | FieldAttributes.Literal;
                        FieldBuilder = Parent.TypeBuilder.DefineField (Name, MemberType, attr);
                        Parent.MemberCache.AddMember (FieldBuilder, this);
@@ -174,26 +177,18 @@ namespace Mono.CSharp {
                        return true;
                }
 
-               protected override bool DoDefineMembers ()
+               public override bool Define ()
                {
                        member_cache = new MemberCache (TypeManager.enum_type, this);
                        DefineContainerMembers (constants);
                        return true;
                }
 
-               //
-               // Used for error reporting only
-               //
-               public EnumMember GetDefinition (object value)
+               public override bool IsUnmanagedType ()
                {
-                       foreach (EnumMember e in defined_names.Values) {
-                               if (value.Equals (e.Value))
-                                       return e;
-                       }
-
-                       throw new ArgumentOutOfRangeException (value.ToString ());
+                       return true;
                }
-               
+
                public Type UnderlyingType {
                        get {
                                return base_type.Type;