names().fromString("getItem")), List.<JCExpression>nil()))))));
}
ListBuffer<JCStatement> innerBody = new ListBuffer<JCStatement>();
if (idx>0) {
innerBody.add(make().If(make().Binary(JCTree.EQ,
<BUG>make().Apply(null, makeSelect("this", prevItemVar), List.<JCExpression>nil()), makeBoolean(true)),
</BUG>
make().Block(0, List.<JCStatement>of(
make().Exec(make().Assign(makeUnquotedIdent(iterVar),
make().Apply(null, makeSelect("this", iterVar), List.<JCExpression>nil()))),

names().fromString("getItem")), List.<JCExpression>nil()))))));
}
ListBuffer<JCStatement> innerBody = new ListBuffer<JCStatement>();
if (idx>0) {
innerBody.add(make().If(make().Binary(JCTree.EQ,
make().Apply(null, makeSelect("this", ctxtName), List.<JCExpression>nil()), makeBoolean(true)),
make().Block(0, List.<JCStatement>of(
make().Exec(make().Assign(makeUnquotedIdent(iterVar),
make().Apply(null, makeSelect("this", iterVar), List.<JCExpression>nil()))),
