From d5988297b1eba302e1e1dfe928a8cb4245742957 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Fri, 20 Jan 2017 13:04:35 +0700 Subject: [PATCH] backend/tests: add objectExpression{1,2,3} --- backend.native/tests/build.gradle | 15 +++++++++++++++ .../tests/codegen/objectExpression/1.kt | 13 +++++++++++++ .../tests/codegen/objectExpression/2.kt | 17 +++++++++++++++++ .../tests/codegen/objectExpression/3.kt | 17 +++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 backend.native/tests/codegen/objectExpression/1.kt create mode 100644 backend.native/tests/codegen/objectExpression/2.kt create mode 100644 backend.native/tests/codegen/objectExpression/3.kt diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 0a436dd72f3..00ed3811ce4 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -814,6 +814,21 @@ task lambda13(type: RunKonanTest) { source = "codegen/lambda/lambda13.kt" } +task objectExpression1(type: RunKonanTest) { + goldValue = "aabb\n" + source = "codegen/objectExpression/1.kt" +} + +task objectExpression2(type: RunKonanTest) { + goldValue = "a\n" + source = "codegen/objectExpression/2.kt" +} + +task objectExpression3(type: RunKonanTest) { + goldValue = "\n1\n2\n" + source = "codegen/objectExpression/3.kt" +} + task initializers2(type: RunKonanTest) { goldValue = "init globalValue2\n" + "init globalValue3\n" + diff --git a/backend.native/tests/codegen/objectExpression/1.kt b/backend.native/tests/codegen/objectExpression/1.kt new file mode 100644 index 00000000000..60ca50c6ab7 --- /dev/null +++ b/backend.native/tests/codegen/objectExpression/1.kt @@ -0,0 +1,13 @@ +fun main(args: Array) { + val a = "a" + + val x = object { + override fun toString(): String { + return foo(a) + foo("b") + } + + fun foo(s: String) = s + s + } + + println(x.toString()) +} \ No newline at end of file diff --git a/backend.native/tests/codegen/objectExpression/2.kt b/backend.native/tests/codegen/objectExpression/2.kt new file mode 100644 index 00000000000..f6050b7496f --- /dev/null +++ b/backend.native/tests/codegen/objectExpression/2.kt @@ -0,0 +1,17 @@ +fun main(args: Array) { + val a = "a" + + val x = object { + override fun toString(): String { + return foo { + a + } + } + + fun foo(lambda: () -> String) = lambda() + } + + print(x) +} + +fun print(x: Any) = println(x.toString()) \ No newline at end of file diff --git a/backend.native/tests/codegen/objectExpression/3.kt b/backend.native/tests/codegen/objectExpression/3.kt new file mode 100644 index 00000000000..36f5ee881d9 --- /dev/null +++ b/backend.native/tests/codegen/objectExpression/3.kt @@ -0,0 +1,17 @@ +fun main(args: Array) { + var cnt = 0 + + var x: Any = "" + + for (i in 0 .. 1) { + print(x) + cnt++ + val y = object { + override fun toString() = cnt.toString() + } + x = y + } + print(x) +} + +fun print(x: Any) = println(x.toString()) \ No newline at end of file