Buggy code:
ForStatementTransformation ( Tree . ForStatement stmt ) { } protected final ForIterator getForIterator ( ) { } protected Term getIterable ( ) { } protected final boolean isValueIterator ( ) { } protected final Variable getElementOrKeyVariable ( ) { } protected final Variable getValueVariable ( ) { } protected List < JCStatement > transform ( ) { } private boolean needsFailVar ( ) { } protected ListBuffer < JCStatement > transformForClause ( ) { } protected final Block getBlock ( ) { } } List < JCStatement > transformIterableIteration ( Node node , Name label , Naming . SyntheticName iterationVarName , Naming . SyntheticName iteratorVarName , ProducedType iterableType , ProducedType iteratedType , JCExpression iterableExpr , List < JCStatement > itemDecls , List < JCStatement > bodyStmts , boolean allowArrayOpt , boolean allowArraySeqOpt ) { } class RangeOpIterationOptimization extends StatementTransformer . ForStatementTransformation { public static final String OPT_NAME = "RangeOpIteration" ; private final RangeOp range ; private final Term lhs ; private final Term rhs ; private final Term increment ; private final Type type ; private final ProducedType pt ; public RangeOpIterationOptimization ( Tree . ForStatement stmt , Tree . RangeOp range , Tree . Term increment , Type type ) { } private Variable getVariable ( ) { } private JCExpression makeType ( ) { } private ProducedType getType ( ) { } @ Override protected ListBuffer < JCStatement > transformForClause ( ) { } private JCExpression makeIncreasingIncrement ( SyntheticName by ) { } private JCExpression makeDecreasingIncrement ( SyntheticName by ) { } private JCExpression makeZero ( ) { } } class DeferredSpecification { private final ProducedType type ; private final long modifiers ; private final Value value ; private final List < JCAnnotation > annots ; private SyntheticName outerAlias ; private Substitution outerSubst = null ; private SyntheticName innerAlias ; private Substitution innerSubst = null ; public DeferredSpecification ( Value value , int modifiers , List < JCAnnotation > annots , ProducedType type ) { } public JCStatement openOuterSubstitution ( ) { } public void installOuterSubstitution ( ) { } public JCStatement openInnerSubstitution ( ) { } public void closeInnerSubstitution ( ) { } public JCStatement closeOuterSubstitution ( ) { } } private HashMap < Value , StatementTransformer . DeferredSpecification > deferredSpecifications = new HashMap < Value , StatementTransformer . DeferredSpecification > ( ) ; public StatementTransformer . DeferredSpecification getDeferredSpecification ( Declaration value ) { } private void closeInnerSubstituionsForSpecifiedValues ( Tree . ControlClause contolClause ) { } public List < JCStatement > transform ( Tree . AttributeDeclaration decl ) { ListBuffer < JCStatement > result = ListBuffer . < JCStatement > lb ( ) ; Parameter parameter = CodegenUtil . findParamForDecl ( decl ) ; if ( parameter == null ) { final Name attrName = names ( ) . fromString ( naming . substitute ( decl . getDeclarationModel ( ) ) ) ; ProducedType t = decl . getDeclarationModel ( ) . getType ( ) ; JCExpression initialValue = null ; SpecifierOrInitializerExpression initOrSpec = decl . getSpecifierOrInitializerExpression ( ) ; if ( initOrSpec != null ) { HasErrorException error = errors ( ) . getFirstExpressionErrorAndMarkBrokenness ( initOrSpec . getExpression ( ) . getTerm ( ) ) ; if ( error != null ) { return List . < JCStatement > of ( this . makeThrowUnresolvedCompilationError ( error ) ) ; } initialValue = expressionGen ( ) . transformExpression ( initOrSpec . getExpression ( ) , CodegenUtil . getBoxingStrategy ( decl . getDeclarationModel ( ) ) , decl . getDeclarationModel ( ) . getType ( ) ) ; } else if ( decl . getDeclarationModel ( ) . isVariable ( ) ) { initialValue = makeDefaultExprForType ( t ) ; <START_BUG> if ( ( CodegenUtil . getBoxingStrategy ( decl . getDeclarationModel ( ) ) ) == ( BoxingStrategy . BOXED ) ) { <END_BUG> initialValue = boxType ( initialValue , t ) ; } } List < JCAnnotation > annots = List . < JCAnnotation > nil ( ) ; int modifiers = transformLocalFieldDeclFlags ( decl ) ; JCExpression typeExpr = makeJavaType ( decl . getDeclarationModel ( ) , t , modifiers ) ; result . append ( at ( decl ) . VarDef ( at ( decl ) . Modifiers ( modifiers , annots ) , attrName , typeExpr , initialValue ) ) ; JCStatement outerSubs = openOuterSubstitutionIfNeeded ( decl . getDeclarationModel ( ) , t , annots , modifiers ) ; if ( outerSubs != null ) { result . append ( outerSubs ) ; } } return result . toList ( ) ; } JCStatement openOuterSubstitutionIfNeeded ( Value value , ProducedType t , List < JCAnnotation > annots , int modifiers ) { } List < JCStatement > transform ( Tree . Break stmt ) { } JCStatement transform ( Tree . Continue stmt ) { } JCStatement transform ( Tree . Return ret ) { } public JCStatement transform ( Tree . Throw t ) { } public JCStatement transform ( Tree . TryCatchStatement t ) { } boolean usePolymorphicCatches ( Iterable < Tree . CatchClause > catchClauses ) { } private List < JCCatch > transformCatchesPolymorphic ( java . util . List < Tree . CatchClause > catchClauses ) { } private boolean isOrContainsError ( ProducedType exceptionType ) { } private List < JCCatch > transformCatchesIfElseIf ( java . util . List < Tree . CatchClause > catchClauses ) { } private ProducedType intersectionOfCatchClauseTypes ( java . util . List < Tree . CatchClause > catchClauses ) { } private ProducedType exceptionSupertype ( ProducedType pt ) { } private int transformLocalFieldDeclFlags ( Tree . AttributeDeclaration cdecl ) { } protected JCBlock transformElseClauseBlock ( Tree . ElseClause elseClause , String tmpVar , Tree . Term outerExpression ) { } protected List < JCStatement > transformElseClause ( Tree . ElseClause elseClause , String tmpVar , Tree . Term outerExpression ) { } protected JCBlock transformCaseClauseBlock ( Tree . CaseClause caseClause , String tmpVar , Tree . Term outerExpression ) { }

Fix:
if ( ( ( CodegenUtil . getBoxingStrategy ( decl . getDeclarationModel ( ) ) ) == ( BoxingStrategy . BOXED ) ) && ( canUnbox ( t ) ) ) {