interface IBase { abstract fun foo(a: A, b: B) abstract val C.id: Map? abstract get abstract var List.x: D? abstract get abstract set } class Test1 : IBase { constructor(i: IBase) /* primary */ { super/*Any*/() /* () */ } override fun foo(a: E, b: B) { .#<$$delegate_0>.foo(a = a, b = b) } override val C.id: Map? override get(): Map? { return (.#<$$delegate_0>, ).() } override var List.x: D? override get(): D? { return (.#<$$delegate_0>, ).() } override set(: D?) { (.#<$$delegate_0>, ).( = ) } local /* final field */ val <$$delegate_0>: IBase = i } class Test2 : IBase { constructor(j: IBase) /* primary */ { super/*Any*/() /* () */ } override fun foo(a: String, b: B) { .#<$$delegate_0>.foo(a = a, b = b) } override val C.id: Map? override get(): Map? { return (.#<$$delegate_0>, ).() } override var List.x: D? override get(): D? { return (.#<$$delegate_0>, ).() } override set(: D?) { (.#<$$delegate_0>, ).( = ) } local /* final field */ val <$$delegate_0>: IBase = j var j: IBase field = j get set }