| class Test1 : IBase { |
| private /* final field */ val $$delegate_0: BaseImpl = BaseImpl |
| constructor() /* primary */ { |
| super/*Any*/() |
| /* <init>() */ |
| |
| } |
| |
| override fun bar(): Int { |
| return <this>.#$$delegate_0.bar() |
| } |
| |
| override fun foo(x: Int, s: String) { |
| <this>.#$$delegate_0.foo(x = x, s = s) |
| } |
| |
| override fun String.qux() { |
| <this>.#$$delegate_0.qux(/* <this> = <this> */) |
| } |
| |
| } |
| |
| class Test2 : IBase, IOther { |
| private /* final field */ val $$delegate_0: BaseImpl = BaseImpl |
| private /* final field */ val $$delegate_1: IOther = otherImpl(x0 = "", y0 = 42) |
| constructor() /* primary */ { |
| super/*Any*/() |
| /* <init>() */ |
| |
| } |
| |
| override fun bar(): Int { |
| return <this>.#$$delegate_0.bar() |
| } |
| |
| override fun foo(x: Int, s: String) { |
| <this>.#$$delegate_0.foo(x = x, s = s) |
| } |
| |
| override fun String.qux() { |
| <this>.#$$delegate_0.qux(/* <this> = <this> */) |
| } |
| |
| override val x: String |
| override get(): String { |
| return <this>.#$$delegate_1.<get-x>() |
| } |
| |
| override var y: Int |
| override get(): Int { |
| return <this>.#$$delegate_1.<get-y>() |
| } |
| override set(<set-?>: Int) { |
| <this>.#$$delegate_1.<set-y>(<set-?> = <set-?>) |
| } |
| |
| override val Byte.z1: Int |
| override get(): Int { |
| return <this>.#$$delegate_1.<get-z1>(/* <this> = <this> */) |
| } |
| |
| override var Byte.z2: Int |
| override get(): Int { |
| return <this>.#$$delegate_1.<get-z2>(/* <this> = <this> */) |
| } |
| override set(<set-?>: Int) { |
| <this>.#$$delegate_1.<set-z2>(/* <this> = <this>, */ <set-?> = <set-?>) |
| } |
| |
| } |
| |
| interface IBase { |
| abstract fun bar(): Int |
| |
| abstract fun foo(x: Int, s: String) |
| |
| abstract fun String.qux() |
| |
| } |
| |
| interface IOther { |
| abstract val x: String |
| abstract get |
| |
| abstract var y: Int |
| abstract get |
| abstract set |
| |
| abstract val Byte.z1: Int |
| abstract get |
| |
| abstract var Byte.z2: Int |
| abstract get |
| abstract set |
| |
| } |
| |
| object BaseImpl : IBase { |
| private constructor() /* primary */ { |
| super/*Any*/() |
| /* <init>() */ |
| |
| } |
| |
| override fun bar(): Int { |
| return 42 |
| } |
| |
| override fun foo(x: Int, s: String) { |
| } |
| |
| override fun String.qux() { |
| } |
| |
| } |
| |
| fun otherImpl(x0: String, y0: Int): IOther { |
| return { // BLOCK |
| local class <no name provided> : IOther { |
| override val x: String |
| field = x0 |
| override get |
| |
| override var y: Int |
| field = y0 |
| override get |
| override set |
| |
| constructor() /* primary */ { |
| super/*Any*/() |
| /* <init>() */ |
| |
| } |
| |
| override val Byte.z1: Int |
| override get(): Int { |
| return 1 |
| } |
| |
| override var Byte.z2: Int |
| override get(): Int { |
| return 2 |
| } |
| override set(value: Int) { |
| } |
| |
| } |
| |
| <no name provided>() |
| } |
| } |
| |