2002-09-19 Martin Baulig <martin@gnome.org>
authorMartin Baulig <martin@novell.com>
Thu, 19 Sep 2002 11:49:22 +0000 (11:49 -0000)
committerMartin Baulig <martin@novell.com>
Thu, 19 Sep 2002 11:49:22 +0000 (11:49 -0000)
* expression.cs (MemberAccess.ResolveMemberAccess): When resolving
to an enum constant, check for a CS0176.

svn path=/trunk/mcs/; revision=7615

mcs/mcs/ChangeLog
mcs/mcs/expression.cs

index 39659616212780c518a634a039b95bb99eadec65..ff0bfa0582ff3274617c45b4bf1d8cef70db7665 100755 (executable)
@@ -1,3 +1,8 @@
+2002-09-19  Martin Baulig  <martin@gnome.org>
+
+       * expression.cs (MemberAccess.ResolveMemberAccess): When resolving
+       to an enum constant, check for a CS0176.
+
 2002-09-18  Miguel de Icaza  <miguel@ximian.com>
 
        * class.cs (TypeContainer.CheckPairedOperators): Now we check
index ae2fd80b4fad933afd28394f1f16a7691caf1a4c..6830d23f0941dca1ce15d1e30c5f0d8e8289eaa9 100755 (executable)
@@ -5453,6 +5453,12 @@ namespace Mono.CSharp {
                                                o = fi.GetValue (fi);
                                        
                                        if (decl_type.IsSubclassOf (TypeManager.enum_type)) {
+                                               if (left_is_explicit && !left_is_type &&
+                                                   !IdenticalNameAndTypeName (ec, left_original, loc)) {
+                                                       error176 (loc, fe.FieldInfo.Name);
+                                                       return null;
+                                               }                                       
+                                               
                                                Expression enum_member = MemberLookup (
                                                        ec, decl_type, "value__", MemberTypes.Field,
                                                        AllBindingFlags, loc);