diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 570fe2b4991..a12b85d3321 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -738,4 +738,19 @@ task lambda8(type: RunKonanTest) { task lambda9(type: RunKonanTest) { goldValue = "0\n0\n1\n0\n0\n1\n1\n1\n" source = "codegen/lambda/lambda9.kt" +} + +task lambda10(type: RunKonanTest) { + goldValue = "original\nchanged\n" + source = "codegen/lambda/lambda10.kt" +} + +task lambda11(type: RunKonanTest) { + goldValue = "first\nsecond\n" + source = "codegen/lambda/lambda11.kt" +} + +task lambda12(type: RunKonanTest) { + goldValue = "one\ntwo\n" + source = "codegen/lambda/lambda12.kt" } \ No newline at end of file diff --git a/backend.native/tests/codegen/lambda/lambda10.kt b/backend.native/tests/codegen/lambda/lambda10.kt new file mode 100644 index 00000000000..4c65f448a54 --- /dev/null +++ b/backend.native/tests/codegen/lambda/lambda10.kt @@ -0,0 +1,12 @@ +fun main(args : Array) { + var str = "original" + + val lambda = { + println(str) + } + + lambda() + + str = "changed" + lambda() +} \ No newline at end of file diff --git a/backend.native/tests/codegen/lambda/lambda11.kt b/backend.native/tests/codegen/lambda/lambda11.kt new file mode 100644 index 00000000000..ac6cfe05f38 --- /dev/null +++ b/backend.native/tests/codegen/lambda/lambda11.kt @@ -0,0 +1,13 @@ +fun main(args : Array) { + val first = "first" + val second = "second" + + run { + println(first) + println(second) + } +} + +fun run(f: () -> Unit) { + f() +} \ No newline at end of file diff --git a/backend.native/tests/codegen/lambda/lambda12.kt b/backend.native/tests/codegen/lambda/lambda12.kt new file mode 100644 index 00000000000..4bcbf55c4d8 --- /dev/null +++ b/backend.native/tests/codegen/lambda/lambda12.kt @@ -0,0 +1,8 @@ +fun main(args : Array) { + val lambda = { s1: String, s2: String -> + println(s1) + println(s2) + } + + lambda("one", "two") +} \ No newline at end of file