Buggy code:
public class ClassScope extends Scope { public TypeDeclaration referenceContext ; private TypeReference superTypeReference ; private static final char [ ] IncompleteHierarchy = new char [ ] { 'h' , 'a' , 's' , '<seq2seq4repair_space>' , 'i' , 'n' , 'c' , 'o' , 'n' , 's' , 'i' , 's' , 't' , 'e' , 'n' , 't' , '<seq2seq4repair_space>' , 'h' , 'i' , 'e' , 'r' , 'a' , 'r' , 'c' , 'h' , 'y' } ; public ClassScope ( Scope parent , TypeDeclaration context ) { } void buildAnonymousTypeBinding ( SourceTypeBinding enclosingType , ReferenceBinding supertype ) { } private void buildFields ( ) { } void buildFieldsAndMethods ( ) { } private LocalTypeBinding buildLocalType ( SourceTypeBinding enclosingType , PackageBinding packageBinding ) { } void buildLocalTypeBinding ( SourceTypeBinding enclosingType ) { } private void buildMemberTypes ( AccessRestriction accessRestriction ) { } private void buildMethods ( ) { } SourceTypeBinding buildType ( SourceTypeBinding enclosingType , PackageBinding packageBinding , AccessRestriction accessRestriction ) { } private void buildTypeVariables ( ) { } private void checkAndSetModifiers ( ) { } private void checkAndSetModifiersForField ( FieldBinding fieldBinding , FieldDeclaration fieldDecl ) { } private void checkForInheritedMemberTypes ( SourceTypeBinding sourceType ) { } private void checkParameterizedTypeBounds ( ) { } private void connectMemberTypes ( ) { } private boolean connectSuperclass ( ) { } private boolean connectEnumSuperclass ( ) { } private boolean connectSuperInterfaces ( ) { SourceTypeBinding sourceType = referenceContext . binding ; sourceType . superInterfaces = NoSuperInterfaces ; if ( ( referenceContext . superInterfaces ) == null ) { if ( ( sourceType . isAnnotationType ( ) ) && ( ( environment ( ) . options . sourceLevel ) >= ( JDK1_5 ) ) ) { ReferenceBinding annotationType = getJavaLangAnnotationAnnotation ( ) ; boolean foundCycle = detectHierarchyCycle ( sourceType , annotationType , null ) ; sourceType . superInterfaces = new ReferenceBinding [ ] { annotationType } ; return ! foundCycle ; } return true ; } if ( ( sourceType . id ) == ( T_JavaLangObject ) ) return true ; boolean noProblems = true ; int length = referenceContext . superInterfaces . length ; ReferenceBinding [ ] interfaceBindings = new ReferenceBinding [ length ] ; int count = 0 ; nextInterface : for ( int i = 0 ; i < length ; i ++ ) { TypeReference superInterfaceRef = referenceContext . superInterfaces [ i ] ; ReferenceBinding superInterface = findSupertype ( superInterfaceRef ) ; if ( superInterface == null ) { sourceType . tagBits |= HierarchyHasProblems ; noProblems = false ; continue nextInterface ; } superInterfaceRef . resolvedType = superInterface ; for ( int k = 0 ; k < count ; k ++ ) { if ( ( interfaceBindings [ k ] . erasure ( ) ) == ( superInterface . erasure ( ) ) ) { problemReporter ( ) . duplicateSuperinterface ( sourceType , referenceContext , ( ( ReferenceBinding ) ( superInterface . erasure ( ) ) ) ) ; continue nextInterface ; } } <START_BUG> if ( ! ( superInterface . isInterface ( ) ) ) { <END_BUG> problemReporter ( ) . superinterfaceMustBeAnInterface ( sourceType , superInterfaceRef , superInterface ) ; sourceType . tagBits |= HierarchyHasProblems ; noProblems = false ; continue nextInterface ; } if ( ( ( superInterface . tagBits ) & ( TagBits . HasDirectWildcard ) ) != 0 ) { problemReporter ( ) . superTypeCannotUseWildcard ( sourceType , superInterfaceRef , superInterface ) ; sourceType . tagBits |= HierarchyHasProblems ; noProblems = false ; continue nextInterface ; } ReferenceBinding invalid = findAmbiguousInterface ( superInterface , sourceType ) ; if ( invalid != null ) { ReferenceBinding generic = null ; if ( superInterface . isParameterizedType ( ) ) generic = ( ( ParameterizedTypeBinding ) ( superInterface ) ) . type ; else if ( invalid . isParameterizedType ( ) ) generic = ( ( ParameterizedTypeBinding ) ( invalid ) ) . type ; problemReporter ( ) . superinterfacesCollide ( generic , referenceContext , superInterface , invalid ) ; sourceType . tagBits |= HierarchyHasProblems ; noProblems = false ; continue nextInterface ; } interfaceBindings [ ( count ++ ) ] = superInterface ; } if ( count > 0 ) { if ( count != length ) System . arraycopy ( interfaceBindings , 0 , ( interfaceBindings = new ReferenceBinding [ count ] ) , 0 , count ) ; sourceType . superInterfaces = interfaceBindings ; } return noProblems ; } void connectTypeHierarchy ( ) { } private void connectTypeHierarchyWithoutMembers ( ) { } public boolean detectAnnotationCycle ( TypeBinding sourceType , TypeBinding annotationElementType , TypeReference reference ) { } public boolean detectHierarchyCycle ( TypeBinding superType , TypeReference reference , TypeBinding [ ] argTypes ) { } private boolean detectHierarchyCycle ( SourceTypeBinding sourceType , ReferenceBinding superType , TypeReference reference ) { } private ReferenceBinding findAmbiguousInterface ( ReferenceBinding newInterface , ReferenceBinding currentType ) { } private ReferenceBinding findSupertype ( TypeReference typeReference ) { } public ProblemReporter problemReporter ( ) { } public TypeDeclaration referenceType ( ) { } public String toString ( ) { } }

Fix:
if ( ( ( superInterface . modifiers ) & ( AccInterface ) ) == 0 ) {