class C(val i: Int) { } class M { operator fun C.component1() = i + 1 operator fun C.component2() = i + 2 fun doTest(l : Array): String { var s = "" for ((a, b) in l) { s += "$a:$b;" } return s } } fun box(): String { val l = Array(3, {x -> C(x)}) val s = M().doTest(l) return if (s == "1:2;2:3;3:4;") "OK" else "fail: $s" }