// WITH_STDLIB // IGNORE_BACKEND: JVM interface C { abstract fun foo(x: T): String } open class D : C> { open override fun foo(x: Result): String = "???" } class E : D() { override fun foo(x: Result): String = x.get() } fun Result.get(): T = getOrNull()!! fun C>.bar(x: T) = foo(Result.success(x)) fun box() = E().bar("OK")