// WITH_RUNTIME // DISABLE-ERRORS interface T { fun foo(x: X): X } class U : T { override fun foo(x: String): String { TODO("Not yet implemented") } } class V : T { override fun foo(x: Int): Int { TODO("Not yet implemented") } } class Z : T by V() { } class W : T { override fun foo(x: Boolean): Boolean { throw UnsupportedOperationException() } }