  Line 42) setExtends(ext) ==> com.github.javaparser.ast.type.WildcardType.setExtends(com.github.javaparser.ast.type.ReferenceType)
  Line 46) setExtends(ext) ==> com.github.javaparser.ast.type.WildcardType.setExtends(com.github.javaparser.ast.type.ReferenceType)
  Line 47) setSuper(sup) ==> com.github.javaparser.ast.type.WildcardType.setSuper(com.github.javaparser.ast.type.ReferenceType)
  Line 53) setExtends(ext) ==> com.github.javaparser.ast.type.WildcardType.setExtends(com.github.javaparser.ast.type.ReferenceType)
  Line 54) setSuper(sup) ==> com.github.javaparser.ast.type.WildcardType.setSuper(com.github.javaparser.ast.type.ReferenceType)
  Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.type.WildcardType, A)
  Line 62) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.type.WildcardType, A)
  Line 75) setAsParentNodeOf(this.ext) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
  Line 81) setAsParentNodeOf(this.sup) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
