| // WITH_RUNTIME | |
| // DISABLE-ERRORS | |
| interface T<X> { | |
| val foo: X | |
| } | |
| class U(override val foo: String) : T<String> { | |
| } | |
| class V(override val foo: Int<caret>) : T<Int> { | |
| } | |
| class Z : T<Int> by V() { | |
| } | |
| class W : T<Boolean> { | |
| override val foo: Boolean | |
| get() = throw UnsupportedOperationException() | |
| } |