== C == class C { operator fun component1() = 1 operator fun component2() = 2 } --------------------- ===================== == component1 == operator fun component1() = 1 --------------------- 1 : Int NEW: r(1) -> ===================== == component2 == operator fun component2() = 2 --------------------- 2 : Int NEW: r(2) -> ===================== == test == fun test(c: C) { val (a, b) = c val d = 1 } --------------------- : C NEW: magic[FAKE_INITIALIZER](c: C) -> a : Int NEW: call(a, component1|) -> b : Int NEW: call(b, component2|) -> c : C NEW: r(c) -> 1 : Int NEW: r(1) -> =====================