// !LANGUAGE: +InlineClasses // IGNORE_BACKEND_FIR: JVM_IR inline class A(val s: String) abstract class B { abstract fun f(x: T, y: U): String } open class C: B() { override fun f(x: T, y: A): String = y.s + " 1" } open class D : C() { override fun f(x: A, y: A): String = y.s + " 2" } class E : D() { override fun f(x: A, y: A): String = x.s } fun box(): String { return E().f(A("OK"), A("Fail")) }