Buggy code:
public abstract class Expression extends Statement { public static final boolean isConstantValueRepresentable ( Constant constant , int constantTypeID , int targetTypeID ) { } public Constant constant ; public int implicitConversion ; public TypeBinding resolvedType ; public Expression ( ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo , boolean valueRequired ) { } public final boolean checkCastTypesCompatibility ( Scope scope , TypeBinding castType , TypeBinding expressionType , Expression expression ) { } public FlowInfo checkNullStatus ( BlockScope scope , FlowContext flowContext , FlowInfo flowInfo , int nullStatus ) { } private MethodBinding [ ] getAllInheritedMethods ( ReferenceBinding binding ) { } private void getAllInheritedMethods0 ( ReferenceBinding binding , ArrayList collector ) { } public void checkNullComparison ( BlockScope scope , FlowContext flowContext , FlowInfo flowInfo , FlowInfo initsWhenTrue , FlowInfo initsWhenFalse ) { } public boolean checkUnsafeCast ( Scope scope , TypeBinding castType , TypeBinding expressionType , TypeBinding match , boolean isNarrowing ) { } public void computeConversion ( Scope scope , TypeBinding runtimeTimeType , TypeBinding compileTimeType ) { if ( ( runtimeTimeType == null ) || ( compileTimeType == null ) ) return ; if ( ( this . implicitConversion ) != 0 ) return ; if ( ( runtimeTimeType != ( NullBinding ) ) && ( runtimeTimeType . isBaseType ( ) ) ) { if ( ! ( compileTimeType . isBaseType ( ) ) ) { TypeBinding unboxedType = scope . environment ( ) . computeBoxingType ( compileTimeType ) ; this . implicitConversion = TypeIds . UNBOXING ; scope . problemReporter ( ) . autoboxing ( this , compileTimeType , runtimeTimeType ) ; compileTimeType = unboxedType ; } } else { if ( ( compileTimeType != ( NullBinding ) ) && ( compileTimeType . isBaseType ( ) ) ) { TypeBinding boxedType = scope . environment ( ) . computeBoxingType ( runtimeTimeType ) ; if ( boxedType == runtimeTimeType ) boxedType = compileTimeType ; this . implicitConversion = ( TypeIds . BOXING ) | ( ( ( boxedType . id ) << 4 ) + ( compileTimeType . id ) ) ; <START_BUG> scope . problemReporter ( ) . autoboxing ( this , compileTimeType , runtimeTimeType ) ; <END_BUG> return ; } } switch ( runtimeTimeType . id ) { case TypeIds . T_byte : case TypeIds . T_short : case TypeIds . T_char : this . implicitConversion |= ( ( TypeIds . T_int ) << 4 ) + ( compileTimeType . id ) ; break ; case TypeIds . T_JavaLangString : case TypeIds . T_float : case TypeIds . T_boolean : case TypeIds . T_double : case TypeIds . T_int : case TypeIds . T_long : this . implicitConversion |= ( ( runtimeTimeType . id ) << 4 ) + ( compileTimeType . id ) ; break ; default : } } public void generateCode ( BlockScope currentScope , CodeStream codeStream ) { } public void generateCode ( BlockScope currentScope , CodeStream codeStream , boolean valueRequired ) { } public void generateOptimizedBoolean ( BlockScope currentScope , CodeStream codeStream , Label trueLabel , Label falseLabel , boolean valueRequired ) { } public void generateOptimizedStringConcatenation ( BlockScope blockScope , CodeStream codeStream , int typeID ) { } public void generateOptimizedStringConcatenationCreation ( BlockScope blockScope , CodeStream codeStream , int typeID ) { } public boolean isCompactableOperation ( ) { } public boolean isConstantValueOfTypeAssignableToType ( TypeBinding constantType , TypeBinding targetType ) { } public boolean isTypeReference ( ) { } public int nullStatus ( FlowInfo flowInfo ) { } public Constant optimizedBooleanConstant ( ) { } public StringBuffer print ( int indent , StringBuffer output ) { } public abstract StringBuffer printExpression ( int indent , StringBuffer output ) { } public StringBuffer printStatement ( int indent , StringBuffer output ) { } public void reportIllegalCast ( Scope scope , TypeBinding castType , TypeBinding expressionType ) { } public void resolve ( BlockScope scope ) { } public TypeBinding resolveType ( BlockScope scope ) { } public TypeBinding resolveType ( ClassScope classScope ) { } public TypeBinding resolveTypeExpecting ( BlockScope scope , TypeBinding expectedType ) { } public void setExpectedType ( TypeBinding expectedType ) { } public void tagAsUnnecessaryCast ( Scope scope , TypeBinding castType ) { } public void tagAsNeedCheckCast ( ) { } public Expression toTypeReference ( ) { } public void traverse ( ASTVisitor visitor , BlockScope scope ) { } public void traverse ( ASTVisitor visitor , ClassScope scope ) { } public void traverse ( ASTVisitor visitor , CompilationUnitScope scope ) { } public LocalVariableBinding localVariableBinding ( ) { } }

Fix:
scope . problemReporter ( ) . autoboxing ( this , compileTimeType , scope . environment ( ) . computeBoxingType ( boxedType ) ) ;