Buggy code:
public class FieldReference extends Reference implements InvocationSite { public Expression receiver ; public char [ ] token ; public FieldBinding binding ; protected FieldBinding codegenBinding ; public MethodBinding [ ] syntheticAccessors ; public static final int READ = 0 ; public static final int WRITE = 1 ; public long nameSourcePosition ; public TypeBinding receiverType ; public TypeBinding genericCast ; public FieldReference ( 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 void computeConversion ( Scope scope , TypeBinding runtimeTimeType , TypeBinding compileTimeType ) { } public FieldBinding fieldBinding ( ) { } public void generateAssignment ( BlockScope currentScope , CodeStream codeStream , Assignment assignment , boolean valueRequired ) { } 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 generatePostIncrement ( BlockScope currentScope , CodeStream codeStream , CompoundAssignment postIncrement , boolean valueRequired ) { boolean isStatic ; receiver . generateCode ( currentScope , codeStream , ( ! ( isStatic = this . codegenBinding . isStatic ( ) ) ) ) ; if ( isStatic ) { if ( ( ( syntheticAccessors ) == null ) || ( ( syntheticAccessors [ FieldReference . READ ] ) == null ) ) { codeStream . getstatic ( this . codegenBinding ) ; } else { codeStream . invokestatic ( syntheticAccessors [ FieldReference . READ ] ) ; } } else { codeStream . dup ( ) ; if ( ( ( syntheticAccessors ) == null ) || ( ( syntheticAccessors [ FieldReference . READ ] ) == null ) ) { codeStream . getfield ( this . codegenBinding ) ; } else { codeStream . invokestatic ( syntheticAccessors [ FieldReference . READ ] ) ; } } if ( valueRequired ) { if ( isStatic ) { if ( ( ( this . codegenBinding . type ) == ( LongBinding ) ) || ( ( this . codegenBinding . type ) == ( DoubleBinding ) ) ) { codeStream . dup2 ( ) ; } else { codeStream . dup ( ) ; } } else { if ( ( ( this . codegenBinding . type ) == ( LongBinding ) ) || ( ( this . codegenBinding . type ) == ( DoubleBinding ) ) ) { codeStream . dup2_x1 ( ) ; } else { codeStream . dup_x1 ( ) ; } } } codeStream . generateImplicitConversion ( implicitConversion ) ; codeStream . generateConstant ( postIncrement . expression . constant , implicitConversion ) ; codeStream . sendOperator ( postIncrement . operator , ( ( this . implicitConversion ) & ( TypeIds . COMPILE_TYPE_MASK ) ) ) ; <START_BUG> codeStream . generateImplicitConversion ( postIncrement . assignmentImplicitConversion ) ; <END_BUG> fieldStore ( codeStream , this . codegenBinding , ( ( syntheticAccessors ) == null ? null : syntheticAccessors [ FieldReference . WRITE ] ) , false ) ; } public TypeBinding [ ] genericTypeArguments ( ) { } public static final Constant getConstantFor ( FieldBinding binding , Reference reference , boolean isImplicit , Scope referenceScope ) { } public boolean isSuperAccess ( ) { } public boolean isTypeAccess ( ) { } public void manageSyntheticAccessIfNecessary ( BlockScope currentScope , FlowInfo flowInfo , boolean isReadAccess ) { } public StringBuffer printExpression ( int indent , StringBuffer output ) { } public TypeBinding resolveType ( BlockScope scope ) { } public void setActualReceiverType ( ReferenceBinding receiverType ) { } public void setDepth ( int depth ) { } public void setFieldIndex ( int index ) { } public void traverse ( ASTVisitor visitor , BlockScope scope ) { } }

Fix:
codeStream . generateImplicitConversion ( postIncrement . preAssignImplicitConversion ) ;