| ~T~interface T { | |
| fun foo() {} | |
| } | |
| ~C~open class C() { | |
| fun bar() {} | |
| } | |
| ~A~class A<E>() : C(), T { | |
| fun test() { | |
| `T`super<T>.foo() | |
| `C`super<C>.bar() | |
| `T`super<T>@A.foo() | |
| `C`super<C>@A.bar() | |
| } | |
| inner class B : T { | |
| fun test() { | |
| `T`super<T>.foo(); | |
| `C`super<C>@A.bar() | |
| `T`super<T>@A.foo() | |
| `T`super<T>@B.foo() | |
| `T`super.foo() | |
| } | |
| } | |
| } | |
| ~G~interface G<T> { | |
| fun foo() {} | |
| } | |
| class CG : G<Int> { | |
| fun test() { | |
| `G`super<`G`G>.foo() // OK | |
| } | |
| } |