Buggy code:
public class SingleNameReference extends NameReference implements OperatorIds { public char [ ] token ; public MethodBinding [ ] syntheticAccessors ; public static final int READ = 0 ; public static final int WRITE = 1 ; public SingleNameReference ( char [ ] source , long pos ) { } public FlowInfo analyseAssignment ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo , Assignment assignment , boolean isCompound ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo , boolean valueRequired ) { } public TypeBinding checkFieldAccess ( BlockScope scope ) { } public void generateAssignment ( BlockScope currentScope , CodeStream codeStream , Assignment assignment , boolean valueRequired ) { if ( assignment . expression . isCompactableOperation ( ) ) { BinaryExpression operation = ( ( BinaryExpression ) ( assignment . expression ) ) ; SingleNameReference variableReference ; if ( ( ( operation . left ) instanceof SingleNameReference ) && ( ( ( variableReference = ( ( SingleNameReference ) ( operation . left ) ) ) . binding ) == ( binding ) ) ) { variableReference . generateCompoundAssignment ( currentScope , codeStream , ( ( syntheticAccessors ) == null ? null : syntheticAccessors [ SingleNameReference . WRITE ] ) , operation . right , ( ( ( operation . bits ) & ( ASTNode . OperatorMASK ) ) > > ( ASTNode . OperatorSHIFT ) ) , operation . left . implicitConversion , valueRequired ) ; return ; } int operator = ( ( operation . bits ) & ( ASTNode . OperatorMASK ) ) > > ( ASTNode . OperatorSHIFT ) ; <START_BUG> if ( ( ( ( ( ( operation . right ) instanceof SingleNameReference ) && ( ( operator == ( OperatorIds . PLUS ) ) || ( operator == ( OperatorIds . MULTIPLY ) ) ) ) && ( ( ( variableReference = ( ( SingleNameReference ) ( operation . right ) ) ) . binding ) == ( binding ) ) ) && ( ( operation . left . constant ) != ( NotAConstant ) ) ) && ( ( ( operation . left . implicitConversion ) > > 4 ) != ( T_String ) ) ) { <END_BUG> variableReference . generateCompoundAssignment ( currentScope , codeStream , ( ( syntheticAccessors ) == null ? null : syntheticAccessors [ SingleNameReference . WRITE ] ) , operation . left , operator , operation . right . implicitConversion , valueRequired ) ; return ; } } switch ( ( bits ) & ( ASTNode . RestrictiveFlagMASK ) ) { case FIELD : FieldBinding fieldBinding ; if ( ! ( ( fieldBinding = ( ( FieldBinding ) ( binding ) ) ) . isStatic ( ) ) ) { if ( ( ( bits ) & ( ASTNode . DepthMASK ) ) != 0 ) { Object [ ] emulationPath = currentScope . getExactEmulationPath ( currentScope . enclosingSourceType ( ) . enclosingTypeAt ( ( ( ( bits ) & ( ASTNode . DepthMASK ) ) > > ( ASTNode . DepthSHIFT ) ) ) ) ; if ( emulationPath == null ) { currentScope . problemReporter ( ) . needImplementation ( ) ; } else { codeStream . generateOuterAccess ( emulationPath , this , currentScope ) ; } } else { this . generateReceiver ( codeStream ) ; } } assignment . expression . generateCode ( currentScope , codeStream , true ) ; fieldStore ( codeStream , fieldBinding , ( ( syntheticAccessors ) == null ? null : syntheticAccessors [ SingleNameReference . WRITE ] ) , valueRequired ) ; if ( valueRequired ) { codeStream . generateImplicitConversion ( assignment . implicitConversion ) ; } return ; case LOCAL : LocalVariableBinding localBinding = ( ( LocalVariableBinding ) ( binding ) ) ; if ( ( localBinding . resolvedPosition ) != ( - 1 ) ) { assignment . expression . generateCode ( currentScope , codeStream , true ) ; } else { if ( ( assignment . expression . constant ) != ( NotAConstant ) ) { if ( valueRequired ) { codeStream . generateConstant ( assignment . expression . constant , assignment . implicitConversion ) ; } } else { assignment . expression . generateCode ( currentScope , codeStream , true ) ; if ( valueRequired ) { codeStream . generateImplicitConversion ( assignment . implicitConversion ) ; } else { if ( ( ( localBinding . type ) == ( LongBinding ) ) || ( ( localBinding . type ) == ( DoubleBinding ) ) ) { codeStream . pop2 ( ) ; } else { codeStream . pop ( ) ; } } } return ; } codeStream . store ( localBinding , valueRequired ) ; if ( ( ( bits ) & ( FirstAssignmentToLocalMASK ) ) != 0 ) { localBinding . recordInitializationStartPC ( codeStream . position ) ; } if ( valueRequired ) { codeStream . generateImplicitConversion ( assignment . implicitConversion ) ; } } } public void generateCode ( BlockScope currentScope , CodeStream codeStream , boolean valueRequired ) { } public void generateCompoundAssignment ( BlockScope currentScope , CodeStream codeStream , Expression expression , int operator , int assignmentImplicitConversion , boolean valueRequired ) { } public void generateCompoundAssignment ( BlockScope currentScope , CodeStream codeStream , MethodBinding writeAccessor , Expression expression , int operator , int assignmentImplicitConversion , boolean valueRequired ) { } public void generatePostIncrement ( BlockScope currentScope , CodeStream codeStream , CompoundAssignment postIncrement , boolean valueRequired ) { } public void generateReceiver ( CodeStream codeStream ) { } public void manageEnclosingInstanceAccessIfNecessary ( BlockScope currentScope ) { } public void manageSyntheticReadAccessIfNecessary ( BlockScope currentScope ) { } public void manageSyntheticWriteAccessIfNecessary ( BlockScope currentScope ) { } public TypeBinding reportError ( BlockScope scope ) { } public TypeBinding resolveType ( BlockScope scope ) { } public String toStringExpression ( ) { } public void traverse ( IAbstractSyntaxTreeVisitor visitor , BlockScope scope ) { }

Fix:
if ( ( ( ( ( ( operation . right ) instanceof SingleNameReference ) && ( ( operator == ( OperatorIds . PLUS ) ) || ( operator == ( OperatorIds . MULTIPLY ) ) ) ) && ( ( ( variableReference = ( ( SingleNameReference ) ( operation . right ) ) ) . binding ) == ( binding ) ) ) && ( ( operation . left . constant ) != ( NotAConstant ) ) ) && ( ( ( operation . right . implicitConversion ) > > 4 ) != ( T_String ) ) ) {