| interface A { | |
| fun foo(foo: Any? = null): Boolean | |
| } | |
| interface B { | |
| fun foo(foo: Any? = null): Boolean | |
| } | |
| open class B2 : B { | |
| override fun foo(foo: Any?): Boolean { | |
| return false | |
| } | |
| } | |
| open class C : B2(), A { | |
| final override fun foo(foo: Any?): Boolean { | |
| return true | |
| } | |
| } | |
| fun box(): String { | |
| val a: A = C() | |
| return if (a.foo()) "OK" else "fail" | |
| } |