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 ) { referenceContext . scope = this ; referenceContext . staticInitializerScope = new MethodScope ( this , referenceContext , true ) ; referenceContext . initializerScope = new MethodScope ( this , referenceContext , false ) ; <START_BUG> LocalTypeBinding localType = new LocalTypeBinding ( this , enclosingType , this . switchCase ( ) ) ; <END_BUG> referenceContext . binding = localType ; checkAndSetModifiers ( ) ; buildTypeVariables ( ) ; ReferenceBinding [ ] memberTypeBindings = NoMemberTypes ; if ( ( referenceContext . memberTypes ) != null ) { int size = referenceContext . memberTypes . length ; memberTypeBindings = new ReferenceBinding [ size ] ; int count = 0 ; nextMember : for ( int i = 0 ; i < size ; i ++ ) { TypeDeclaration memberContext = referenceContext . memberTypes [ i ] ; if ( ( memberContext . kind ( ) ) == ( INTERFACE_DECL ) ) { problemReporter ( ) . nestedClassCannotDeclareInterface ( memberContext ) ; continue nextMember ; } ReferenceBinding type = localType ; do { if ( CharOperation . equals ( type . sourceName , memberContext . name ) ) { problemReporter ( ) . hidingEnclosingType ( memberContext ) ; continue nextMember ; } type = type . enclosingType ( ) ; } while ( type != null ) ; for ( int j = 0 ; j < i ; j ++ ) { if ( CharOperation . equals ( referenceContext . memberTypes [ j ] . name , memberContext . name ) ) { problemReporter ( ) . duplicateNestedType ( memberContext ) ; continue nextMember ; } } ClassScope memberScope = new ClassScope ( this , referenceContext . memberTypes [ i ] ) ; LocalTypeBinding memberBinding = memberScope . buildLocalType ( localType , packageBinding ) ; memberBinding . setAsMemberType ( ) ; memberTypeBindings [ ( count ++ ) ] = memberBinding ; } if ( count != size ) System . arraycopy ( memberTypeBindings , 0 , ( memberTypeBindings = new ReferenceBinding [ count ] ) , 0 , count ) ; } localType . memberTypes = memberTypeBindings ; return localType ; } 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 ( ) { } void connectTypeHierarchy ( ) { } private void connectTypeHierarchyWithoutMembers ( ) { } 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:
LocalTypeBinding localType = new LocalTypeBinding ( this , enclosingType , this . innermostSwitchCase ( ) ) ;