blob: e520d163181c12cc16e8d385157ad5bc6bd836ca [file]
// TARGET_BACKEND: JVM
// FILE: JI.java
public interface JI {
@Override
public abstract boolean equals(Object o);
@Override
public abstract int hashCode();
@Override
public abstract String toString();
}
// FILE: JC.java
public abstract class JC {
@Override
public abstract boolean equals(Object o);
@Override
public abstract int hashCode();
@Override
public abstract String toString();
}
// FILE: JC2.java
public abstract class JC2 extends JC {
}
// FILE: box.kt
interface KI : JI
class X : KI {
override fun equals(other: Any?): Boolean = true
override fun hashCode(): Int = 0
override fun toString(): String = ""
}
abstract class KC : JC()
class Y : KC() {
override fun equals(other: Any?): Boolean = true
override fun hashCode(): Int = 0
override fun toString(): String = ""
}
abstract class KC2 : JC2()
class Z : KC2() {
override fun equals(other: Any?): Boolean = true
override fun hashCode(): Int = 0
override fun toString(): String = ""
}
fun box(): String {
X().equals(X())
X().hashCode()
X().toString()
Y().equals(Y())
Y().hashCode()
Y().toString()
Z().equals(Z())
Z().hashCode()
Z().toString()
return "OK"
}