FILE: destructuring.kt public final data class C : R|kotlin/Any| { public constructor(x: R|kotlin/Int|, y: R|kotlin/String|): R|C| { super() } public final val x: R|kotlin/Int| = R|/x| public get(): R|kotlin/Int| public final val y: R|kotlin/String| = R|/y| public get(): R|kotlin/String| public final operator fun component1(): R|kotlin/Int| public final operator fun component2(): R|kotlin/String| public final fun copy(x: R|kotlin/Int| = this@R|/C|.R|/C.x|, y: R|kotlin/String| = this@R|/C|.R|/C.y|): R|C| } public final fun foo1(block: R|(C) -> kotlin/Unit|): R|kotlin/Unit| { ^foo1 R|/block|.R|SubstitutionOverride|(R|/C.C|(Int(0), String())) } public final fun foo2(block: R|(C, C) -> kotlin/Unit|): R|kotlin/Unit| { ^foo2 R|/block|.R|SubstitutionOverride|(R|/C.C|(Int(0), String()), R|/C.C|(Int(0), String())) } public final fun test(): R|kotlin/Unit| { R|/foo1|( = foo1@fun (: R|C|): R|kotlin/Unit| { lval x: R|kotlin/Int| = R|/|.R|/C.component1|() lval y: R|kotlin/String| = R|/|.R|/C.component2|() R|/C.C|(R|/x|, R|/y|) } ) R|/foo1|( = foo1@fun (: R|C|): R|kotlin/Unit| { lval x: R|kotlin/Int| = R|/|.R|/C.component1|() lval y: R|kotlin/String| = R|/|.R|/C.component2|() R|/C.C|(R|/x|, R|/y|) } ) R|/foo1|( = foo1@fun (: R|C|): R|kotlin/Unit| { lval x: R|kotlin/String| = R|/|.R|/C.component1#|() lval y: R|kotlin/Int| = R|/|.R|/C.component2#|() R|/C.C#|(R|/x|, R|/y|) } ) R|/foo2|( = foo2@fun (: R|C|, : R|C|): R|kotlin/Unit| { lval x: R|kotlin/Int| = R|/|.R|/C.component1|() lval y: R|kotlin/String| = R|/|.R|/C.component2|() lval z: R|kotlin/Int| = R|/|.R|/C.component1|() lval w: R|kotlin/String| = R|/|.R|/C.component2|() R|/C.C|(R|/x|.R|kotlin/Int.plus|(R|/z|), R|/y|.R|kotlin/String.plus|(R|/w|)) } ) R|/foo2|( = foo2@fun (: R|C|, : R|C|): R|kotlin/Unit| { lval x: R|kotlin/Int| = R|/|.R|/C.component1|() lval y: R|kotlin/String| = R|/|.R|/C.component2|() lval z: R|kotlin/Int| = R|/|.R|/C.component1|() lval w: R|kotlin/String| = R|/|.R|/C.component2|() R|/C.C|(R|/x|.R|kotlin/Int.plus|(R|/z|), R|/y|.R|kotlin/String.plus|(R|/w|)) } ) R|/foo2|( = foo2@fun (: R|C|, : R|C|): R|kotlin/Unit| { lval x: R|kotlin/String| = R|/|.R|/C.component1#|() lval y: R|kotlin/Int| = R|/|.R|/C.component2#|() lval z: R|kotlin/String| = R|/|.R|/C.component1#|() lval w: R|kotlin/Int| = R|/|.R|/C.component2#|() R|/C.C#|(R|/x|.R|kotlin/String.plus|(R|/z|), R|/y|.R|kotlin/Int.plus|(R|/w|)) } ) }