Buggy code:
public class SingleNameReference extends NameReference implements OperatorIds { public static final int READ = 0 ; public static final int WRITE = 1 ; public char [ ] token ; public MethodBinding [ ] syntheticAccessors ; public TypeBinding genericCast ; public SingleNameReference ( char [ ] source , long pos ) { } public FlowInfo analyseAssignment ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo , Assignment assignment , boolean isCompound ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo , boolean valueRequired ) { } public TypeBinding checkFieldAccess ( BlockScope scope ) { FieldBinding fieldBinding = ( ( FieldBinding ) ( this . binding ) ) ; this . constant = fieldBinding . constant ( ) ; this . bits &= ~ ( ASTNode . RestrictiveFlagMASK ) ; this . bits |= Binding . FIELD ; MethodScope methodScope = scope . methodScope ( ) ; if ( fieldBinding . isStatic ( ) ) { ReferenceBinding declaringClass = fieldBinding . declaringClass ; if ( declaringClass . isEnum ( ) ) { SourceTypeBinding sourceType = scope . enclosingSourceType ( ) ; if ( ( ( ( ( this . constant ) == ( Constant . NotAConstant ) ) && ( ! ( methodScope . isStatic ) ) ) && ( ( sourceType == declaringClass ) || ( ( sourceType . superclass ) == declaringClass ) ) ) && ( methodScope . isInsideInitializerOrConstructor ( ) ) ) { scope . problemReporter ( ) . enumStaticFieldUsedDuringInitialization ( fieldBinding , this ) ; } } } else { if ( ( scope . compilerOptions ( ) . getSeverity ( CompilerOptions . UnqualifiedFieldAccess ) ) != ( ProblemSeverities . Ignore ) ) { scope . problemReporter ( ) . unqualifiedFieldAccess ( this , fieldBinding ) ; } if ( methodScope . isStatic ) { scope . problemReporter ( ) . staticFieldAccessToNonStaticVariable ( this , fieldBinding ) ; return fieldBinding . type ; } } if ( isFieldUseDeprecated ( fieldBinding , scope , ( ( ( this . bits ) & ( ASTNode . IsStrictlyAssigned ) ) != 0 ) ) ) scope . problemReporter ( ) . deprecatedField ( fieldBinding , this ) ; if ( ( ( ( ( ( ( this . bits ) & ( ASTNode . IsStrictlyAssigned ) ) == 0 ) && ( ( methodScope . enclosingSourceType ( ) ) == ( fieldBinding . original ( ) . declaringClass ) ) ) && ( ( methodScope . lastVisibleFieldID ) >= 0 ) ) && ( ( fieldBinding . id ) >= ( methodScope . lastVisibleFieldID ) ) ) && ( ( ! ( fieldBinding . isStatic ( ) ) ) || ( methodScope . isStatic ) ) ) { <START_BUG> scope . problemReporter ( ) . forwardReference ( this , 0 , methodScope . enclosingSourceType ( ) ) ; <END_BUG> this . bits |= ASTNode . IgnoreNoEffectAssignCheck ; } return fieldBinding . type ; } public void computeConversion ( Scope scope , TypeBinding runtimeTimeType , TypeBinding compileTimeType ) { } public void generateAssignment ( BlockScope currentScope , CodeStream codeStream , Assignment assignment , boolean valueRequired ) { } public void generateCode ( BlockScope currentScope , CodeStream codeStream , boolean valueRequired ) { } public void generateCompoundAssignment ( BlockScope currentScope , CodeStream codeStream , Expression expression , int operator , int assignmentImplicitConversion , boolean valueRequired ) { } public void generateCompoundAssignment ( BlockScope currentScope , CodeStream codeStream , MethodBinding writeAccessor , Expression expression , int operator , int assignmentImplicitConversion , boolean valueRequired ) { } public void generatePostIncrement ( BlockScope currentScope , CodeStream codeStream , CompoundAssignment postIncrement , boolean valueRequired ) { } public void generateReceiver ( CodeStream codeStream ) { } public TypeBinding [ ] genericTypeArguments ( ) { } public LocalVariableBinding localVariableBinding ( ) { } public void manageEnclosingInstanceAccessIfNecessary ( BlockScope currentScope , FlowInfo flowInfo ) { } public void manageSyntheticAccessIfNecessary ( BlockScope currentScope , FlowInfo flowInfo , boolean isReadAccess ) { } public int nullStatus ( FlowInfo flowInfo ) { } public TypeBinding postConversionType ( Scope scope ) { } public StringBuffer printExpression ( int indent , StringBuffer output ) { } public TypeBinding reportError ( BlockScope scope ) { } public TypeBinding resolveType ( BlockScope scope ) { } public void traverse ( ASTVisitor visitor , BlockScope scope ) { } public void traverse ( ASTVisitor visitor , ClassScope scope ) { } public String unboundReferenceErrorName ( ) { } }

Fix:
scope . problemReporter ( ) . forwardReference ( this , 0 , fieldBinding ) ;