45 lines
1.1 KiB
Kotlin
Vendored
45 lines
1.1 KiB
Kotlin
Vendored
// EXPECTED_REACHABLE_NODES: 1117
|
|
// IGNORE_BACKEND: JS
|
|
package foo
|
|
|
|
class C {
|
|
override fun toString() = super.toString()
|
|
|
|
override fun equals(other: Any?) = super.equals(other)
|
|
|
|
override fun hashCode() = super.hashCode()
|
|
}
|
|
|
|
open class D
|
|
|
|
class E : D() {
|
|
override fun toString() = super.toString()
|
|
|
|
override fun equals(other: Any?) = super.equals(other)
|
|
|
|
override fun hashCode() = super.hashCode()
|
|
}
|
|
|
|
fun testAnyBuiltins(x1: Any, x2: Any): String {
|
|
val s = x1.toString()
|
|
if (s != "[object Object]") return "toString fail: ${s}"
|
|
if (!x1.equals(x1)) return "equals fail #1"
|
|
if (x1.equals(x2) != x2.equals(x1)) return "equals fail #2"
|
|
if (x1.equals(x2) != x1.equals(x2)) return "equals fail #3"
|
|
if (x1.hashCode() != x1.hashCode()) return "hashCode fail"
|
|
return "OK"
|
|
}
|
|
|
|
|
|
fun box(): String {
|
|
val resultC = testAnyBuiltins(C(), C())
|
|
if (resultC != "OK") return resultC
|
|
|
|
val resultD = testAnyBuiltins(D(), D())
|
|
if (resultD != "OK") return resultD
|
|
|
|
val resultE = testAnyBuiltins(E(), E())
|
|
if (resultE != "OK") return resultE
|
|
|
|
return "OK"
|
|
} |