### 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()) {