// WITH_STDLIB // WORKS_WHEN_VALUE_CLASS // LANGUAGE: +ValueClasses, +GenericInlineClassParameter OPTIONAL_JVM_INLINE_ANNOTATION value class A(val s: T) interface B { fun f(x: T, y: U): String } interface L { fun f(x: T, y: A): String } interface R { fun f(x: A, y: T): String } open class C { open fun f(x: A, y: A): String = y.s } class D: C(), B, A>, L>, R> { override fun f(x: A, y: A): String = x.s } fun box(): String { return (D() as B, A>).f(A("OK"), A("Fail")) }