Buggy code:
int length = this . arguments . length ; argumentTypes = new TypeBinding [ length ] ; for ( int i = 0 ; i < length ; i ++ ) { Expression argument = this . arguments [ i ] ; if ( argument instanceof CastExpression ) { argument . bits |= ASTNode . DisableUnnecessaryCastCheck ; argsContainCast = true ; } if ( ( argumentTypes [ i ] = argument . resolveType ( scope ) ) == null ) { argHasError = true ; } } if ( argHasError ) { if ( ( this . actualReceiverType ) instanceof ReferenceBinding ) { TypeBinding [ ] pseudoArgs = new TypeBinding [ length ] ; for ( int i = length ; ( -- i ) >= 0 ; ) pseudoArgs [ i ] = ( ( argumentTypes [ i ] ) == null ) ? TypeBinding . NULL : argumentTypes [ i ] ; this . binding = ( this . receiver . isImplicitThis ( ) ) ? scope . getImplicitMethod ( this . selector , pseudoArgs , this ) : scope . findMethod ( ( ( ReferenceBinding ) ( this . actualReceiverType ) ) , this . selector , pseudoArgs , this ) ; if ( ( ( this . binding ) != null ) && ( ! ( this . binding . isValidBinding ( ) ) ) ) { MethodBinding closestMatch = ( ( ProblemMethodBinding ) ( this . binding ) ) . closestMatch ; if ( closestMatch != null ) { if ( ( closestMatch . original ( ) . typeVariables ) != ( Binding . NO_TYPE_VARIABLES ) ) { closestMatch = scope . environment ( ) . createParameterizedGenericMethod ( closestMatch . original ( ) , ( ( RawTypeBinding ) ( null ) ) ) ; } this . binding = closestMatch ; MethodBinding closestMatchOriginal = closestMatch . original ( ) ; if ( ( ( closestMatchOriginal . isPrivate ( ) ) || ( closestMatchOriginal . declaringClass . isLocalType ( ) ) ) && ( ! ( scope . isDefinedInMethod ( closestMatchOriginal ) ) ) ) { closestMatchOriginal . modifiers |= ExtraCompilerModifiers . AccLocallyUsed ; } } } } return null ; } } if ( ( this . actualReceiverType ) == null ) { return null ; } if ( this . actualReceiverType . isBaseType ( ) ) { scope . problemReporter ( ) . errorNoMethodFor ( this , this . actualReceiverType , argumentTypes ) ; return null ; } this . binding = ( this . receiver . isImplicitThis ( ) ) ? scope . getImplicitMethod ( this . selector , argumentTypes , this ) : scope . getMethod ( this . actualReceiverType , this . selector , argumentTypes , this ) ; if ( ! ( this . binding . isValidBinding ( ) ) ) { if ( ( this . binding . declaringClass ) == null ) { if ( ( this . actualReceiverType ) instanceof ReferenceBinding ) { this . binding . declaringClass = ( ( ReferenceBinding ) ( this . actualReceiverType ) ) ; } else { scope . problemReporter ( ) . errorNoMethodFor ( this , this . actualReceiverType , argumentTypes ) ; return null ; } } scope . problemReporter ( ) . invalidMethod ( this , this . binding ) ; MethodBinding closestMatch = ( ( ProblemMethodBinding ) ( this . binding ) ) . closestMatch ; switch ( this . binding . problemId ( ) ) { case ProblemReasons . Ambiguous : break ; case ProblemReasons . NotVisible : case ProblemReasons . NonStaticReferenceInConstructorInvocation : case ProblemReasons . NonStaticReferenceInStaticContext : case ProblemReasons . ReceiverTypeNotVisible : case ProblemReasons . ParameterBoundMismatch : if ( closestMatch != null ) this . resolvedType = closestMatch . returnType ; <START_BUG> default : <END_BUG> } if ( closestMatch != null ) { this . binding = closestMatch ; MethodBinding closestMatchOriginal = closestMatch . original ( ) ; if ( ( ( closestMatchOriginal . isPrivate ( ) ) || ( closestMatchOriginal . declaringClass . isLocalType ( ) ) ) && ( ! ( scope . isDefinedInMethod ( closestMatchOriginal ) ) ) ) { closestMatchOriginal . modifiers |= ExtraCompilerModifiers . AccLocallyUsed ; } } return ( ( this . resolvedType ) != null ) && ( ( ( this . resolvedType . tagBits ) & ( TagBits . HasMissingType ) ) == 0 ) ? this . resolvedType : null ; } if ( ( ( this . binding . tagBits ) & ( TagBits . HasMissingType ) ) != 0 ) { scope . problemReporter ( ) . missingTypeInMethod ( this , this . binding ) ; } final CompilerOptions compilerOptions = scope . compilerOptions ( ) ; if ( ! ( this . binding . isStatic ( ) ) ) { if ( receiverIsType ) { scope . problemReporter ( ) . mustUseAStaticMethod ( this , this . binding ) ; if ( ( ( this . actualReceiverType . isRawType ( ) ) && ( ( ( this . receiver . bits ) & ( ASTNode . IgnoreRawTypeCheck ) ) == 0 ) ) && ( ( compilerOptions . getSeverity ( CompilerOptions . RawTypeReference ) ) != ( ProblemSeverities . Ignore ) ) ) { scope . problemReporter ( ) . rawTypeReference ( this . receiver , this . actualReceiverType ) ; } } else { this . receiver . computeConversion ( scope , this . actualReceiverType , this . actualReceiverType ) ; TypeBinding receiverErasure = this . actualReceiverType . erasure ( ) ; if ( receiverErasure instanceof ReferenceBinding ) { if ( ( receiverErasure . findSuperTypeOriginatingFrom ( this . binding . declaringClass ) ) == null ) { this . receiverGenericCast = this . binding . declaringClass ; } } } }

Fix:
break ;