  Line 43) setValues(values) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.setValues(java.util.List<com.github.javaparser.ast.expr.Expression>)
  Line 48) setValues(values) ==> com.github.javaparser.ast.expr.ArrayInitializerExpr.setValues(java.util.List<com.github.javaparser.ast.expr.Expression>)
  Line 53) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ArrayInitializerExpr, A)
  Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ArrayInitializerExpr, A)
  Line 62) ensureNotNull(values) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
  Line 68) setAsParentNodeOf(this.values) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
