| interface T { | |
| fun foo(): Unit | |
| } | |
| open class A : T { | |
| override fun foo() {} | |
| } | |
| interface B : T | |
| class C : A(), B | |
| class D : B, A() | |
| class E : A(), B, T | |
| class F : B, A(), T | |
| class G : A(), T, B | |
| class H : B, T, A() | |
| class I : T, A(), B | |
| class J : T, B, A() | |
| fun box(): String { | |
| C().foo() | |
| D().foo() | |
| E().foo() | |
| F().foo() | |
| G().foo() | |
| H().foo() | |
| I().foo() | |
| J().foo() | |
| return "OK" | |
| } |