ForStmt extends LoopStmt { @Override public ForStmt clone() { return new ForStmt(init.clone(), hasCondition() ? getCondition().clone() : null, hasIncrement() ? increment.clone() : null, getBody().clone()); } ForStmt(Stmt init, Expr condition, Expr increment, Stmt body); @Override boolean hasCondition(); boolean hasIncrement(); Stmt getInit(); Expr getIncrement(); @Override void accept(IAstVisitor visitor); @Override ForStmt clone(); @Override void replaceChild(IAstNode child, IAstNode newChild); @Override boolean hasChild(IAstNode candidateChild);  }
@Test public void testCloneEmptyFor() throws Exception { final TranslationUnit tu = ParseHelper.parse("void main() { for (;;) ; }"); final TranslationUnit tu2 = tu.clone(); CompareAstsDuplicate.assertEqualAsts(tu, tu2); }