blob: a247c65914ffef5037b6ed3b89b4e573262389a9 [file]
// WITH_STDLIB
import kotlin.test.*
val sb = StringBuilder()
fun box(): String {
val lambda1 = bar("first")
val lambda2 = bar("second")
lambda1()
lambda2()
lambda1()
lambda2()
assertEquals("""
first
0
second
0
first
1
second
1
""".trimIndent(), sb.toString())
return "OK"
}
fun bar(str: String): () -> Unit {
var x = Integer(0)
return {
sb.appendLine(str)
sb.appendLine(x.toString())
x = x + 1
}
}
class Integer(val value: Int) {
override fun toString() = value.toString()
operator fun plus(other: Int) = Integer(value + other)
}