blob: 2f69bc8835e23aa37e29474ecfabf6f616f81d81 [file]
// FILE: lib.kt
package foo
import kotlin.test.*
data class IntPair(public var fst: Int, public var snd: Int)
inline fun run(func: () -> Int): Int {
return func()
}
// FILE: main.kt
package foo
import kotlin.test.*
// CHECK_BREAKS_COUNT: function=bar count=0
// CHECK_LABELS_COUNT: function=bar name=$l$block count=0
fun bar(p: IntPair): Int {
var f = { -> p.fst++ }
var get0 = f
f = { -> ++p.snd }
var get1 = f
var get2 = get1
f = { -> ++p.fst }
get2 = f
return run(get0) + run(get1) + run(get2)
}
fun box(): String {
val p = IntPair(0, 0)
assertEquals(3, bar(p))
assertEquals(IntPair(2, 1), p)
return "OK"
}