Fixed bug in inliner + test
This commit is contained in:
@@ -2373,6 +2373,11 @@ task inline_returnLocalClassFromBlock(type: RunKonanTest) {
|
||||
source = "codegen/inline/returnLocalClassFromBlock.kt"
|
||||
}
|
||||
|
||||
task inline_changingCapturedLocal(type: RunKonanTest) {
|
||||
goldValue = "OK\n"
|
||||
source = "codegen/inline/changingCapturedLocal.kt"
|
||||
}
|
||||
|
||||
task deserialized_inline0(type: RunKonanTest) {
|
||||
source = "serialization/deserialized_inline0.kt"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package codegen.inline.changingCapturedLocal
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
var log = ""
|
||||
|
||||
inline fun foo(x: Int, action: (Int) -> Unit) = action(x)
|
||||
|
||||
fun box(): String {
|
||||
var x = 23
|
||||
foo(x) {
|
||||
log += "$it;"
|
||||
x++
|
||||
log += "$it;"
|
||||
}
|
||||
|
||||
if (log != "23;23;") return "fail1: $log"
|
||||
if (x != 24) return "fail2: $x"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@Test fun runTest() {
|
||||
println(box())
|
||||
}
|
||||
Reference in New Issue
Block a user