// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JS_IR // TODO: muted automatically, investigate should it be ran for JS or not // IGNORE_BACKEND: JS, NATIVE // WITH_RUNTIME import kotlin.test.assertEquals abstract class A { abstract fun f(): String override fun toString() = f() } abstract class G { abstract fun bar(): Any } inline fun foo(): G { return object : G() { override fun bar(): Any { return object : A() { override fun f(): String = "OK" } } } } fun box(): String { val y = foo().bar(); assertEquals("OK", y.toString()) assertEquals("A", y.javaClass.getGenericSuperclass()?.toString()) return "OK" }