  Line 39) setClassExpr(classExpr) ==> com.github.javaparser.ast.expr.ThisExpr.setClassExpr(com.github.javaparser.ast.expr.Expression)
  Line 44) setClassExpr(classExpr) ==> com.github.javaparser.ast.expr.ThisExpr.setClassExpr(com.github.javaparser.ast.expr.Expression)
  Line 48) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.ThisExpr, A)
  Line 52) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.ThisExpr, A)
  Line 61) setAsParentNodeOf(this.classExpr) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
