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