From b92fbe7f427d74d374e7d8b3d54d4cbade93a04f Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Fri, 8 Jun 2018 17:18:10 +0300 Subject: [PATCH] Fixed bug in inliner + test --- .../backend/konan/lower/FunctionInlining.kt | 14 +++++++++-- backend.native/tests/build.gradle | 5 ++++ .../codegen/inline/changingCapturedLocal.kt | 25 +++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 backend.native/tests/codegen/inline/changingCapturedLocal.kt diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt index c20ce131513..6663e0bec3d 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt @@ -275,6 +275,11 @@ private class Inliner(val globalSubstituteMap: MutableMap 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()) +} \ No newline at end of file