Buggy code:
public final void dcmpl ( ) { } public final void dconst_0 ( ) { } public final void dconst_1 ( ) { } public final void ddiv ( ) { } public void decrStackSize ( int offset ) { } public final void dload ( int iArg ) { } public final void dload_0 ( ) { } public final void dload_1 ( ) { } public final void dload_2 ( ) { } public final void dload_3 ( ) { } public final void dmul ( ) { } public final void dneg ( ) { } public final void drem ( ) { } public final void dreturn ( ) { } public final void dstore ( int iArg ) { } public final void dstore_0 ( ) { } public final void dstore_1 ( ) { } public final void dstore_2 ( ) { } public final void dstore_3 ( ) { } public final void dsub ( ) { } public final void dup ( ) { } public final void dup_x1 ( ) { } public final void dup_x2 ( ) { } public final void dup2 ( ) { } public final void dup2_x1 ( ) { } public final void dup2_x2 ( ) { } public void exitUserScope ( BlockScope currentScope ) { } public final void f2d ( ) { } public final void f2i ( ) { } public final void f2l ( ) { } public final void fadd ( ) { } public final void faload ( ) { } public final void fastore ( ) { } public final void fcmpg ( ) { } public final void fcmpl ( ) { } public final void fconst_0 ( ) { } public final void fconst_1 ( ) { } public final void fconst_2 ( ) { } public final void fdiv ( ) { } public final void fload ( int iArg ) { } public final void fload_0 ( ) { } public final void fload_1 ( ) { } public final void fload_2 ( ) { } public final void fload_3 ( ) { } public final void fmul ( ) { } public final void fneg ( ) { } public final void frem ( ) { } public final void freturn ( ) { } public final void fstore ( int iArg ) { } public final void fstore_0 ( ) { } public final void fstore_1 ( ) { } public final void fstore_2 ( ) { } public final void fstore_3 ( ) { } public final void fsub ( ) { } public void generateClassLiteralAccessForType ( TypeBinding accessedType , FieldBinding syntheticFieldBinding ) { } public final void generateCodeAttributeForProblemMethod ( String problemMessage ) { } public void generateConstant ( Constant constant , int implicitConversionCode ) { } public void generateImplicitConversion ( int implicitConversionCode ) { } public void generateInlinedValue ( byte inlinedValue ) { } public void generateInlinedValue ( char inlinedValue ) { } public void generateInlinedValue ( double inlinedValue ) { } public void generateInlinedValue ( float inlinedValue ) { } public void generateInlinedValue ( int inlinedValue ) { } public void generateInlinedValue ( long inlinedValue ) { } public void generateInlinedValue ( short inlinedValue ) { } public void generateInlinedValue ( boolean inlinedValue ) { } public void generateOuterAccess ( Object [ ] mappingSequence , ASTNode invocationSite , Binding target , Scope scope ) { } public void generateReturnBytecode ( Expression expression ) { } public void generateStringConcatenationAppend ( BlockScope blockScope , Expression oper1 , Expression oper2 ) { } public void generateSyntheticEnclosingInstanceValues ( BlockScope currentScope , ReferenceBinding targetType , Expression enclosingInstance , ASTNode invocationSite ) { <START_BUG> ReferenceBinding checkedTargetType = ( targetType . isAnonymousType ( ) ) ? targetType . superclass ( ) : targetType ; <END_BUG> boolean hasExtraEnclosingInstance = enclosingInstance != null ; if ( hasExtraEnclosingInstance && ( ( ! ( checkedTargetType . isNestedType ( ) ) ) || ( checkedTargetType . isStatic ( ) ) ) ) { currentScope . problemReporter ( ) . unnecessaryEnclosingInstanceSpecification ( enclosingInstance , checkedTargetType ) ; return ; } ReferenceBinding [ ] syntheticArgumentTypes ; if ( ( syntheticArgumentTypes = targetType . syntheticEnclosingInstanceTypes ( ) ) != null ) { ReferenceBinding targetEnclosingType = checkedTargetType . enclosingType ( ) ; long compliance = currentScope . compilerOptions ( ) . complianceLevel ; boolean denyEnclosingArgInConstructorCall ; if ( compliance <= ( ClassFileConstants . JDK1_3 ) ) { denyEnclosingArgInConstructorCall = invocationSite instanceof AllocationExpression ; } else if ( compliance == ( ClassFileConstants . JDK1_4 ) ) { denyEnclosingArgInConstructorCall = ( invocationSite instanceof AllocationExpression ) || ( ( invocationSite instanceof ExplicitConstructorCall ) && ( ( ( ExplicitConstructorCall ) ( invocationSite ) ) . isSuperAccess ( ) ) ) ; } else { denyEnclosingArgInConstructorCall = ( ( invocationSite instanceof AllocationExpression ) || ( ( invocationSite instanceof ExplicitConstructorCall ) && ( ( ( ExplicitConstructorCall ) ( invocationSite ) ) . isSuperAccess ( ) ) ) ) && ( ! ( targetType . isLocalType ( ) ) ) ; } boolean complyTo14 = compliance >= ( ClassFileConstants . JDK1_4 ) ; for ( int i = 0 , max = syntheticArgumentTypes . length ; i < max ; i ++ ) { ReferenceBinding syntheticArgType = syntheticArgumentTypes [ i ] ; if ( hasExtraEnclosingInstance && ( syntheticArgType == targetEnclosingType ) ) { hasExtraEnclosingInstance = false ; enclosingInstance . generateCode ( currentScope , this , true ) ; if ( complyTo14 ) { dup ( ) ; invokeObjectGetClass ( ) ; pop ( ) ; } } else { Object [ ] emulationPath = currentScope . getEmulationPath ( syntheticArgType , false , denyEnclosingArgInConstructorCall ) ; this . generateOuterAccess ( emulationPath , invocationSite , syntheticArgType , currentScope ) ; } } if ( hasExtraEnclosingInstance ) { currentScope . problemReporter ( ) . unnecessaryEnclosingInstanceSpecification ( enclosingInstance , checkedTargetType ) ; } } } public void generateSyntheticOuterArgumentValues ( BlockScope currentScope , ReferenceBinding targetType , ASTNode invocationSite ) { }

Fix:
ReferenceBinding checkedTargetType = ( targetType . isAnonymousType ( ) ) ? ( ( ReferenceBinding ) ( targetType . superclass ( ) . erasure ( ) ) ) : targetType ;