Buggy code:
public class MethodScope extends BlockScope { public ReferenceContext referenceContext ; public boolean isStatic ; public boolean isConstructorCall = false ; public FieldBinding initializedField ; public int lastVisibleFieldID = - 1 ; public int analysisIndex ; public boolean isPropagatingInnerClassEmulation ; public int lastIndex = 0 ; public long [ ] definiteInits = new long [ 4 ] ; public long [ ] [ ] extraDefiniteInits = new long [ 4 ] [ ] ; public SyntheticArgumentBinding [ ] extraSyntheticArguments ; public MethodScope ( ClassScope parent , ReferenceContext context , boolean isStatic ) { } private void checkAndSetModifiersForConstructor ( MethodBinding methodBinding ) { } private void checkAndSetModifiersForMethod ( MethodBinding methodBinding ) { int modifiers = methodBinding . modifiers ; if ( ( modifiers & ( AccAlternateModifierProblem ) ) != 0 ) problemReporter ( ) . duplicateModifierForMethod ( methodBinding . declaringClass , ( ( AbstractMethodDeclaration ) ( referenceContext ) ) ) ; int realModifiers = modifiers & ( AccJustFlag ) ; <START_BUG> if ( ( methodBinding . declaringClass . isInterface ( ) ) || ( methodBinding . declaringClass . isAnnotationType ( ) ) ) { <END_BUG> if ( ( realModifiers & ( ~ ( ( AccPublic ) | ( AccAbstract ) ) ) ) != 0 ) problemReporter ( ) . illegalModifierForInterfaceMethod ( methodBinding . declaringClass , ( ( AbstractMethodDeclaration ) ( referenceContext ) ) ) ; return ; } int unexpectedModifiers = ~ ( ( ( ( ( ( ( ( ( AccPublic ) | ( AccPrivate ) ) | ( AccProtected ) ) | ( AccAbstract ) ) | ( AccStatic ) ) | ( AccFinal ) ) | ( AccSynchronized ) ) | ( AccNative ) ) | ( AccStrictfp ) ) ; if ( ( realModifiers & unexpectedModifiers ) != 0 ) problemReporter ( ) . illegalModifierForMethod ( methodBinding . declaringClass , ( ( AbstractMethodDeclaration ) ( referenceContext ) ) ) ; int accessorBits = realModifiers & ( ( ( AccPublic ) | ( AccProtected ) ) | ( AccPrivate ) ) ; if ( ( accessorBits & ( accessorBits - 1 ) ) != 0 ) { problemReporter ( ) . illegalVisibilityModifierCombinationForMethod ( methodBinding . declaringClass , ( ( AbstractMethodDeclaration ) ( referenceContext ) ) ) ; if ( ( accessorBits & ( AccPublic ) ) != 0 ) { if ( ( accessorBits & ( AccProtected ) ) != 0 ) modifiers &= ~ ( AccProtected ) ; if ( ( accessorBits & ( AccPrivate ) ) != 0 ) modifiers &= ~ ( AccPrivate ) ; } if ( ( accessorBits & ( AccProtected ) ) != 0 ) if ( ( accessorBits & ( AccPrivate ) ) != 0 ) modifiers &= ~ ( AccPrivate ) ; } if ( ( modifiers & ( AccAbstract ) ) != 0 ) { int incompatibleWithAbstract = ( ( ( ( ( AccPrivate ) | ( AccStatic ) ) | ( AccFinal ) ) | ( AccSynchronized ) ) | ( AccNative ) ) | ( AccStrictfp ) ; if ( ( modifiers & incompatibleWithAbstract ) != 0 ) problemReporter ( ) . illegalAbstractModifierCombinationForMethod ( methodBinding . declaringClass , ( ( AbstractMethodDeclaration ) ( referenceContext ) ) ) ; if ( ! ( methodBinding . declaringClass . isAbstract ( ) ) ) problemReporter ( ) . abstractMethodInAbstractClass ( ( ( SourceTypeBinding ) ( methodBinding . declaringClass ) ) , ( ( AbstractMethodDeclaration ) ( referenceContext ) ) ) ; } if ( ( ( modifiers & ( AccNative ) ) != 0 ) && ( ( modifiers & ( AccStrictfp ) ) != 0 ) ) problemReporter ( ) . nativeMethodsCannotBeStrictfp ( methodBinding . declaringClass , ( ( AbstractMethodDeclaration ) ( referenceContext ) ) ) ; if ( ( ( ( realModifiers & ( AccStatic ) ) != 0 ) && ( methodBinding . declaringClass . isNestedType ( ) ) ) && ( ! ( methodBinding . declaringClass . isStatic ( ) ) ) ) problemReporter ( ) . unexpectedStaticModifierForMethod ( methodBinding . declaringClass , ( ( AbstractMethodDeclaration ) ( referenceContext ) ) ) ; methodBinding . modifiers = modifiers ; } public void computeLocalVariablePositions ( int initOffset , CodeStream codeStream ) { } MethodBinding createMethod ( AbstractMethodDeclaration method ) { } public FieldBinding findField ( TypeBinding receiverType , char [ ] fieldName , InvocationSite invocationSite , boolean needResolve ) { } public boolean isInsideConstructor ( ) { } public boolean isInsideInitializer ( ) { } public boolean isInsideInitializerOrConstructor ( ) { } public ProblemReporter problemReporter ( ) { } public final int recordInitializationStates ( FlowInfo flowInfo ) { } public AbstractMethodDeclaration referenceMethod ( ) { } public TypeDeclaration referenceType ( ) { } String basicToString ( int tab ) { } }

Fix:
if ( ( ( methodBinding . declaringClass . modifiers ) & ( AccInterface ) ) != 0 ) {