Blob Blame History Raw
### Eclipse Workspace Patch 1.0
#P org.eclipse.jdt.core
Index: compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java,v
retrieving revision 1.125.2.3
diff -u -r1.125.2.3 QualifiedNameReference.java
--- compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java	27 Nov 2008 10:13:10 -0000	1.125.2.3
+++ compiler/org/eclipse/jdt/internal/compiler/ast/QualifiedNameReference.java	6 Feb 2009 12:34:15 -0000
@@ -780,8 +780,8 @@
 			}
 
 			if (field.isStatic()) {
-				ReferenceBinding declaringClass = field.original().declaringClass;
-				if (declaringClass.isEnum()) {
+				if ((field.modifiers & ClassFileConstants.AccEnum) != 0) { // enum constants are checked even when qualified)
+					ReferenceBinding declaringClass = field.original().declaringClass;
 					MethodScope methodScope = scope.methodScope();
 					SourceTypeBinding sourceType = methodScope.enclosingSourceType();
 					if ((this.bits & ASTNode.IsStrictlyAssigned) == 0
@@ -1014,13 +1014,13 @@
 					MethodScope methodScope = scope.methodScope();
 					TypeBinding declaringClass = fieldBinding.original().declaringClass;
 					// check for forward references
-					if ((this.indexOfFirstFieldBinding == 1 || declaringClass.isEnum())
+					if ((this.indexOfFirstFieldBinding == 1 || (fieldBinding.modifiers & ClassFileConstants.AccEnum) != 0) // enum constants are checked even when qualified
 							&& methodScope.enclosingSourceType() == declaringClass
 							&& methodScope.lastVisibleFieldID >= 0
 							&& fieldBinding.id >= methodScope.lastVisibleFieldID
 							&& (!fieldBinding.isStatic() || methodScope.isStatic)) {
 						scope.problemReporter().forwardReference(this, 0, fieldBinding);
-					}
+					}					
 					if (fieldBinding.isStatic()) {
 						// check if accessing enum static field in initializer					
 						if (declaringClass.isEnum()) {