boolean (@Nullable Type subType, @NotNull String superType) { if (subType == null || subType instanceof VoidType) { return false; } if (subType instanceof PrimitiveType) { return superType.equals(subType.name()); } if (CommonClassNames.JAVA_LANG_OBJECT.equals(superType)) { return true; } if (subType instanceof ArrayType && (CommonClassNames.JAVA_LANG_CLONEABLE.equals(superType) || CommonClassNames.JAVA_IO_SERIALIZABLE.equals(superType))) { return true; } return getSuperTypeInt(subType, superType) != null; }