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*/() /* () */ } private /* final field */ val $$delegate_0: IBase = i 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, ).( = ) } } class Test2 : IBase { constructor(j: IBase) /* primary */ { super/*Any*/() /* () */ } var j: IBase field = j get set private /* final field */ val $$delegate_0: IBase = j 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, ).( = ) } }