CompletableFuture<Boolean> (Type type) { if (!DebuggerUtilsAsync.isAsyncEnabled()) { return CompletableFuture.completedFuture(overridesToString(type)); } if (type instanceof ClassType) { return DebuggerUtilsAsync.findAnyBaseType(type, t -> { if (t instanceof ReferenceType) { return DebuggerUtilsAsync.methods((ReferenceType)t) .thenApply(methods -> { return ContainerUtil.exists(methods, m -> !m.isAbstract() && DebuggerUtilsEx.methodMatches(m, "toString", "()Ljava/lang/String;") && !CommonClassNames.JAVA_LANG_OBJECT.equals(m.declaringType().name())); }); } return CompletableFuture.completedFuture(false); }).thenApply(t -> t != null); } return CompletableFuture.completedFuture(false); }