package foo // CHECK_NOT_CALLED: moveTo @native fun Array.push(element: Int): Unit = noImpl @native fun Array.splice(index: Int, howMany: Int): Unit = noImpl data class PairArray(val fst: Array, val snd: Array) inline fun moveTo(source: Array, sink: Array): PairArray { val size = source.size for (i in 1..size) { val element = source[0] source.splice(0, 1) sink.push(element) } return PairArray(source, sink) } fun box(): String { val expected = PairArray(arrayOf(), arrayOf(1,2,3,4)) assertEquals(expected, moveTo(arrayOf(3, 4), arrayOf(1, 2))) return "OK" }