Buggy code:
public class For_c extends Loop_c implements For { private static final long serialVersionUID = SerialVersionUID . generate ( ) ; protected List < ForInit > inits ; protected List < ForUpdate > iters ; public For_c ( Position pos , List < ForInit > inits , Expr cond , List < ForUpdate > iters , Stmt body ) { } public For_c ( Position pos , List < ForInit > inits , Expr cond , List < ForUpdate > iters , Stmt body , Ext ext ) { } @ Override public List < ForInit > inits ( ) { } @ Override public For inits ( List < ForInit > inits ) { } protected < N extends For_c > N inits ( N n , List < ForInit > inits ) { } @ Override public For cond ( Expr cond ) { } @ Override public List < ForUpdate > iters ( ) { } @ Override public For iters ( List < ForUpdate > iters ) { } protected < N extends For_c > N iters ( N n , List < ForUpdate > iters ) { } @ Override public For body ( Stmt body ) { } protected < N extends For_c > N reconstruct ( N n , List < ForInit > inits , Expr cond , List < ForUpdate > iters , Stmt body ) { } @ Override public Node visitChildren ( NodeVisitor v ) { } @ Override public Context enterScope ( Context c ) { } @ Override public Node typeCheck ( TypeChecker tc ) throws SemanticException { TypeSystem ts = tc . typeSystem ( ) ; Type t = null ; for ( ForInit s : inits ) { if ( s instanceof LocalDecl ) { LocalDecl d = ( ( LocalDecl ) ( s ) ) ; Type dt = d . type ( ) . type ( ) ; if ( t == null ) { t = dt ; } else <START_BUG> if ( ! ( t . equals ( dt ) ) ) { <END_BUG> throw new polyglot . util . InternalCompilerError ( ( ( ( ( ( "Local<seq2seq4repair_space>variable<seq2seq4repair_space>" + ( "declarations<seq2seq4repair_space>in<seq2seq4repair_space>a<seq2seq4repair_space>for<seq2seq4repair_space>loop<seq2seq4repair_space>initializer<seq2seq4repair_space>must<seq2seq4repair_space>all<seq2seq4repair_space>" + "be<seq2seq4repair_space>the<seq2seq4repair_space>same<seq2seq4repair_space>type,<seq2seq4repair_space>in<seq2seq4repair_space>this<seq2seq4repair_space>case<seq2seq4repair_space>" ) ) + t ) + ",<seq2seq4repair_space>not<seq2seq4repair_space>" ) + dt ) + "." ) , d . position ( ) ) ; } } } if ( ( ( cond ) != null ) && ( ! ( ts . isImplicitCastValid ( cond . type ( ) , ts . Boolean ( ) ) ) ) ) { throw new SemanticException ( "The<seq2seq4repair_space>condition<seq2seq4repair_space>of<seq2seq4repair_space>a<seq2seq4repair_space>for<seq2seq4repair_space>statement<seq2seq4repair_space>must<seq2seq4repair_space>have<seq2seq4repair_space>boolean<seq2seq4repair_space>type." , cond . position ( ) ) ; } return this ; } @ Override public Type childExpectedType ( Expr child , AscriptionVisitor av ) { } @ Override public void prettyPrint ( CodeWriter w , PrettyPrinter tr ) { } @ Override public String toString ( ) { } private void printForInit ( ForInit s , CodeWriter w , PrettyPrinter tr , boolean printType ) { } private void printForUpdate ( ForUpdate s , CodeWriter w , PrettyPrinter tr ) { } @ Override public Term firstChild ( ) { } @ Override public < T > List < T > acceptCFG ( CFGBuilder < ? > v , List < T > succs ) { } @ Override public Term continueTarget ( ) { } @ Override public Node copy ( NodeFactory nf ) { } }

Fix:
if ( ! ( t . typeEquals ( dt ) ) ) {