// TARGET_BACKEND: JVM // WITH_RUNTIME package test 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("test.A", y.javaClass.getGenericSuperclass()?.toString()) return "OK" }