blob: dc715a3dca3e241a340acd137109638cd2422af2 [file]
// FILE: lib.kt
package foo
private var LOG = ""
fun log(string: String) {
LOG += "$string;"
}
fun pullLog(): String {
val string = LOG
LOG = ""
return string
}
inline fun bar(predicate: (Int) -> Boolean) {
var i = -1
outer@do {
i++
if (i == 1) continue
var j = -1
do {
++j
if (j == 1) {
if (i == 3) continue@outer else continue
}
log("i$j")
} while (j < 3)
log("o$i")
} while (predicate(i))
}
// FILE: main.kt
package foo
import kotlin.test.*
fun <T> fizz(x: T): T {
log("fizz($x)")
return x
}
fun box(): String {
bar {
log("p$it")
it < 5
}
assertEquals("i0;i2;i3;o0;p0;p1;i0;i2;i3;o2;p2;i0;p3;i0;i2;i3;o4;p4;i0;i2;i3;o5;p5;", pullLog())
return "OK"
}