// TARGET_BACKEND: JVM // WITH_REFLECT package test import kotlin.test.assertEquals open class A { fun foo(t: T) {} } open class B : A() class C : B() fun box(): String { assertEquals("fun test.A.foo(T): kotlin.Unit", A::foo.toString()) assertEquals("fun test.B.foo(U): kotlin.Unit", B::foo.toString()) assertEquals("fun test.C.foo(kotlin.String): kotlin.Unit", C::foo.toString()) val afoo = A::class.members.single { it.name == "foo" } assertEquals("fun test.A.foo(T): kotlin.Unit", afoo.toString()) val bfoo = B::class.members.single { it.name == "foo" } assertEquals("fun test.B.foo(U): kotlin.Unit", bfoo.toString()) val cfoo = C::class.members.single { it.name == "foo" } assertEquals("fun test.C.foo(kotlin.String): kotlin.Unit", cfoo.toString()) return "OK" }