code: static boolean hasRecursiveTypeParameter(TypeMirror typeMirror) {
      Set<TypeParameterElement> visited = new HashSet<>();
      return typeMirror.accept(CheckRecursiveTypeVisitor.INSTANCE, visited);
    }
docs: Returns {@code true} if {@code typeMirror} has recursive type arguments, e.g.
  {@literal T extends Comparable<T>}.