open annotation class Ann : Annotation { constructor() /* primary */ { super/*Any*/() /* () */ } } class DFoo : IFoo { private /* final field */ val $$delegate_0: IFoo = d constructor(d: IFoo) /* primary */ { super/*Any*/() /* () */ } @Ann override fun String.testExtFun() { (.#$$delegate_0, ).testExtFun() } @Ann override fun testFun() { .#$$delegate_0.testFun() } override val String.testExtVal: String override get(): String { return (.#$$delegate_0, ).() } override val testVal: String override get(): String { return .#$$delegate_0.() } } interface IFoo { @Ann abstract fun String.testExtFun() @Ann abstract fun testFun() @Ann abstract val String.testExtVal: String abstract get @Ann abstract val testVal: String abstract get }