Buggy code:
public class FieldDeclaration extends AbstractVariableDeclaration { public FieldBinding binding ; boolean hasBeenResolved = false ; public Annotation annotation ; public int endPart1Position ; public int endPart2Position ; public FieldDeclaration ( ) { } public FieldDeclaration ( Expression initialization , char [ ] name , int sourceStart , int sourceEnd ) { } public FlowInfo analyseCode ( MethodScope initializationScope , FlowContext flowContext , FlowInfo flowInfo ) { } public void generateCode ( BlockScope currentScope , CodeStream codeStream ) { } public TypeBinding getTypeBinding ( Scope scope ) { } public boolean isField ( ) { } public boolean isStatic ( ) { } public void resolve ( MethodScope initializationScope ) { if ( ( ( ! ( this . hasBeenResolved ) ) && ( ( binding ) != null ) ) && ( this . binding . isValidBinding ( ) ) ) { this . hasBeenResolved = true ; ClassScope classScope = initializationScope . enclosingClassScope ( ) ; if ( classScope != null ) { SourceTypeBinding declaringType = classScope . enclosingSourceType ( ) ; boolean checkLocal = true ; if ( ( declaringType . superclass ) != null ) { Binding existingVariable = classScope . findField ( declaringType . superclass , name , this ) ; if ( ( existingVariable != null ) && ( existingVariable . isValidBinding ( ) ) ) { initializationScope . problemReporter ( ) . fieldHiding ( this , existingVariable ) ; checkLocal = false ; } } if ( checkLocal ) { Scope outerScope = classScope . parent ; Binding existingVariable = outerScope . getBinding ( name , VARIABLE , this ) ; if ( ( existingVariable != null ) && ( existingVariable . isValidBinding ( ) ) ) { initializationScope . problemReporter ( ) . fieldHiding ( this , existingVariable ) ; } } } if ( isTypeUseDeprecated ( this . binding . type , initializationScope ) ) initializationScope . problemReporter ( ) . deprecatedType ( this . binding . type , this . type ) ; this . type . resolvedType = this . binding . type ; if ( ( this . initialization ) == null ) { this . binding . constant = Constant . NotAConstant ; } else { int previous = initializationScope . fieldDeclarationIndex ; try { initializationScope . fieldDeclarationIndex = this . binding . id ; this . binding . constant = Constant . NotAConstant ; TypeBinding typeBinding = this . binding . type ; TypeBinding initializationTypeBinding ; if ( ( initialization ) instanceof ArrayInitializer ) { if ( ( initializationTypeBinding = this . initialization . resolveTypeExpecting ( initializationScope , typeBinding ) ) != null ) { ( ( ArrayInitializer ) ( this . initialization ) ) . binding = ( ( ArrayBinding ) ( initializationTypeBinding ) ) ; this . initialization . implicitWidening ( typeBinding , initializationTypeBinding ) ; } } else if ( ( initializationTypeBinding = initialization . resolveType ( initializationScope ) ) != null ) { if ( ( this . initialization . isConstantValueOfTypeAssignableToType ( initializationTypeBinding , typeBinding ) ) || ( ( typeBinding . isBaseType ( ) ) && ( BaseTypeBinding . isWidening ( typeBinding . id , initializationTypeBinding . id ) ) ) ) { this . initialization . implicitWidening ( typeBinding , initializationTypeBinding ) ; } else if ( initializationTypeBinding . isCompatibleWith ( typeBinding ) ) { this . initialization . implicitWidening ( typeBinding , initializationTypeBinding ) ; } else { initializationScope . problemReporter ( ) . typeMismatchError ( initializationTypeBinding , typeBinding , this ) ; } if ( this . binding . isFinal ( ) ) { this . binding . constant = this . initialization . constant . castTo ( ( ( ( this . binding . type . id ) << 4 ) + ( this . initialization . constant . typeID ( ) ) ) ) ; } } else { this . binding . constant = NotAConstant ; } } finally { initializationScope . fieldDeclarationIndex = previous ; if ( ( this . binding . constant ) == null ) this . binding . constant = Constant . NotAConstant ; } } if ( ( this . annotation ) != null ) { if ( classScope != null ) { this . annotation . resolve ( classScope ) ; } } else { if ( ( ( this . modifiers ) & ( AccPublic ) ) != 0 ) { <START_BUG> initializationScope . problemReporter ( ) . annotationMissingForPublic ( this . sourceStart , this . sourceEnd , true ) ; <END_BUG> } } } } public void traverse ( IAbstractSyntaxTreeVisitor visitor , MethodScope scope ) { } }

Fix:
initializationScope . problemReporter ( ) . annotationMissingForPublic ( this . sourceStart , this . sourceEnd ) ;