Buggy code:
public class LookupEnvironment implements BaseTypes , ProblemReasons , TypeConstants { public CompilerOptions options ; public ProblemReporter problemReporter ; public ITypeRequestor typeRequestor ; PackageBinding defaultPackage ; ImportBinding [ ] defaultImports ; HashtableOfPackage knownPackages ; static final ProblemPackageBinding theNotFoundPackage = new ProblemPackageBinding ( new char [ 0 ] , ProblemReasons . NotFound ) ; static final ProblemReferenceBinding theNotFoundType = new ProblemReferenceBinding ( new char [ 0 ] , ProblemReasons . NotFound ) ; private INameEnvironment nameEnvironment ; private MethodVerifier verifier ; private ArrayBinding [ ] [ ] uniqueArrayBindings ; private CompilationUnitDeclaration [ ] units = new CompilationUnitDeclaration [ 4 ] ; private int lastUnitIndex = - 1 ; private int lastCompletedUnitIndex = - 1 ; private int stepCompleted ; static final int BUILD_TYPE_HIERARCHY = 1 ; static final int CHECK_AND_SET_IMPORTS = 2 ; static final int CONNECT_TYPE_HIERARCHY = 3 ; static final int BUILD_FIELDS_AND_METHODS = 4 ; public LookupEnvironment ( ITypeRequestor typeRequestor , CompilerOptions options , ProblemReporter problemReporter , INameEnvironment nameEnvironment ) { } public ReferenceBinding askForType ( char [ ] [ ] compoundName ) { } ReferenceBinding askForType ( PackageBinding packageBinding , char [ ] name ) { } public void buildTypeBindings ( CompilationUnitDeclaration unit ) { } public BinaryTypeBinding cacheBinaryType ( IBinaryType binaryType ) { } public BinaryTypeBinding cacheBinaryType ( IBinaryType binaryType , boolean needFieldsAndMethods ) { } public void completeTypeBindings ( ) { } public void completeTypeBindings ( CompilationUnitDeclaration parsedUnit ) { } public void completeTypeBindings ( CompilationUnitDeclaration parsedUnit , boolean buildFieldsAndMethods ) { } private PackageBinding computePackageFrom ( char [ ] [ ] constantPoolName ) { } ArrayBinding createArrayType ( TypeBinding type , int dimensionCount ) { } public BinaryTypeBinding createBinaryTypeFrom ( IBinaryType binaryType , PackageBinding packageBinding ) { } public BinaryTypeBinding createBinaryTypeFrom ( IBinaryType binaryType , PackageBinding packageBinding , boolean needFieldsAndMethods ) { } PackageBinding createPackage ( char [ ] [ ] compoundName ) { } public ReferenceBinding getCachedType ( char [ ] [ ] compoundName ) { } PackageBinding getPackage0 ( char [ ] name ) { } PackageBinding getTopLevelPackage ( char [ ] name ) { } public ReferenceBinding getType ( char [ ] [ ] compoundName ) { } ReferenceBinding getTypeFromConstantPoolName ( char [ ] signature , int start , int end ) { } TypeBinding getTypeFromSignature ( char [ ] signature , int start , int end ) { int dimension = 0 ; while ( ( signature [ start ] ) == '[' ) { start ++ ; dimension ++ ; } if ( end == ( - 1 ) ) end = ( signature . length ) - 1 ; TypeBinding binding = null ; if ( start == end ) { switch ( signature [ start ] ) { case 'I' : binding = IntBinding ; break ; case 'Z' : binding = BooleanBinding ; break ; case 'V' : binding = VoidBinding ; break ; case 'C' : binding = CharBinding ; break ; case 'D' : binding = DoubleBinding ; break ; case 'B' : binding = ByteBinding ; break ; case 'F' : binding = FloatBinding ; break ; case 'J' : binding = LongBinding ; break ; case 'S' : binding = ShortBinding ; break ; default : <START_BUG> throw new Error ( ( "Undefined<seq2seq4repair_space>base<seq2seq4repair_space>type:<seq2seq4repair_space>" + ( signature [ start ] ) ) ) ; <END_BUG> } } else { binding = getTypeFromConstantPoolName ( signature , ( start + 1 ) , ( end - 1 ) ) ; } if ( dimension == 0 ) return binding ; else return createArrayType ( binding , dimension ) ; } boolean isPackage ( char [ ] [ ] compoundName , char [ ] name ) { } public MethodVerifier methodVerifier ( ) { } public void reset ( ) { } void updateArrayCache ( UnresolvedReferenceBinding unresolvedType , ReferenceBinding resolvedType ) { } }

Fix:
throw new Error ( org . eclipse . jdt . internal . compiler . util . Util . bind ( "error.undefinedBaseType" , String . valueOf ( signature [ start ] ) ) ) ;