  Line 52) setCompare(compare) ==> com.github.javaparser.ast.stmt.ForStmt.setCompare(com.github.javaparser.ast.expr.Expression)
  Line 53) setInit(init) ==> com.github.javaparser.ast.stmt.ForStmt.setInit(java.util.List<com.github.javaparser.ast.expr.Expression>)
  Line 54) setUpdate(update) ==> com.github.javaparser.ast.stmt.ForStmt.setUpdate(java.util.List<com.github.javaparser.ast.expr.Expression>)
  Line 55) setBody(body) ==> com.github.javaparser.ast.stmt.ForStmt.setBody(com.github.javaparser.ast.stmt.Statement)
  Line 62) setCompare(compare) ==> com.github.javaparser.ast.stmt.ForStmt.setCompare(com.github.javaparser.ast.expr.Expression)
  Line 63) setInit(init) ==> com.github.javaparser.ast.stmt.ForStmt.setInit(java.util.List<com.github.javaparser.ast.expr.Expression>)
  Line 64) setUpdate(update) ==> com.github.javaparser.ast.stmt.ForStmt.setUpdate(java.util.List<com.github.javaparser.ast.expr.Expression>)
  Line 65) setBody(body) ==> com.github.javaparser.ast.stmt.ForStmt.setBody(com.github.javaparser.ast.stmt.Statement)
  Line 70) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.stmt.ForStmt, A)
  Line 75) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.stmt.ForStmt, A)
  Line 88) ensureNotNull(init) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
  Line 93) ensureNotNull(update) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
  Line 100) setAsParentNodeOf(this.body) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
  Line 106) setAsParentNodeOf(this.compare) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
  Line 112) setAsParentNodeOf(this.init) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
  Line 118) setAsParentNodeOf(this.update) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
