// WITH_RUNTIME fun Result.get(): T = getOrNull()!! interface C { abstract fun Result.foo(): String } class D : C { override fun Result.foo() = get() } fun C.bar(x: T) = Result.success(x).foo() fun box() = D().bar("OK")