| // KT-3985 | |
| interface Trait<T> { | |
| fun f(): T | |
| } | |
| open class Class { | |
| fun f(): String = throw UnsupportedOperationException() | |
| } | |
| class Foo: Class(), Trait<String> { | |
| } | |
| fun box(): String { | |
| val t: Trait<String> = Foo() | |
| try { | |
| t.f() | |
| } catch (e: UnsupportedOperationException) { | |
| return "OK" | |
| } | |
| return "Fail" | |
| } |