| open class B { | |
| val p = "OK" | |
| } | |
| class BB : B() | |
| interface Z<T :B > { | |
| fun T.getString() : String { | |
| return p | |
| } | |
| fun test(s: T) : String { | |
| return s.extension() | |
| } | |
| private fun T.extension(): String { | |
| return getString() | |
| } | |
| } | |
| object Z2 : Z<BB> { | |
| } | |
| fun box() : String { | |
| return Z2.test(BB()) | |
| } | |