diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 10fb8c9c11b..ec2deed2ef3 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -1027,3 +1027,18 @@ task inline9(type: RunKonanTest) { task vararg0(type: RunKonanTest) { source = "lower/vararg.kt" } + +task inline6(type: RunKonanTest) { + goldValue = "hello1\nhello2\nhello3\nhello4\n" + source = "codegen/inline/inline6.kt" +} + +task inline7(type: RunKonanTest) { + goldValue = "1\n2\n3\n" + source = "codegen/inline/inline7.kt" +} + +task inline8(type: RunKonanTest) { + goldValue = "5\n" + source = "codegen/inline/inline8.kt" +} diff --git a/backend.native/tests/codegen/inline/inline6.kt b/backend.native/tests/codegen/inline/inline6.kt index e8f0c62a633..4f6efa66604 100644 --- a/backend.native/tests/codegen/inline/inline6.kt +++ b/backend.native/tests/codegen/inline/inline6.kt @@ -1,12 +1,14 @@ -//@Suppress("NOTHING_TO_INLINE") -//inline fun foo(body: () -> Unit) { -fun foo(body: () -> Unit) { +@Suppress("NOTHING_TO_INLINE") +inline fun foo(body: () -> Unit) { + println("hello1") body() + println("hello4") } fun bar() { foo { - println("hello") + println("hello2") + println("hello3") } } diff --git a/backend.native/tests/codegen/inline/inline7.kt b/backend.native/tests/codegen/inline/inline7.kt new file mode 100644 index 00000000000..6bb5dd067c2 --- /dev/null +++ b/backend.native/tests/codegen/inline/inline7.kt @@ -0,0 +1,14 @@ +@Suppress("NOTHING_TO_INLINE") +inline fun foo(vararg args: Int) { + for (a in args) { + println(a.toString()) + } +} + +fun bar() { + foo(1, 2, 3) +} + +fun main(args: Array) { + bar() +} diff --git a/backend.native/tests/codegen/inline/inline8.kt b/backend.native/tests/codegen/inline/inline8.kt new file mode 100644 index 00000000000..714ae940700 --- /dev/null +++ b/backend.native/tests/codegen/inline/inline8.kt @@ -0,0 +1,12 @@ +@Suppress("NOTHING_TO_INLINE") +inline fun foo(i3: Int, i4: Int) : Int { + return i3 + i3 + i4 +} + +fun bar(i1: Int, i2: Int) : Int { + return foo(i1 + i2, 2) +} + +fun main(args: Array) { + println(bar(1, 2).toString()) +}