blob: 33c37872399832c53fd3f4b0c26a8e68298729ef [file]
// KT-54635: Kotlin/JS cannot distinguish between Int and Double at runtime
// AssertionError: Expected <test1: 1.0>, actual <test1: 1>
// IGNORE_BACKEND: JS_IR, JS_IR_ES6
// WITH_STDLIB
import kotlin.test.*
fun box(): String {
run {
class Test1<T : Number, G>(val x: T, val y: G) {
override fun toString() = "test1: ${x.toDouble()}"
}
class Test2<X>(val a: Test1<Int, X>) {
override fun toString() = "test2"
}
val v = Test2(Test1(1, Test2(Test1(1, 3))))
assertEquals("test1: 1.0", v.a.toString())
assertEquals("1", v.a.x.toString())
assertEquals("test2", v.a.y.toString())
}
return "OK"
}