From 1956fcb14fae7af26b6d4113942e3e31b95f95ac Mon Sep 17 00:00:00 2001 From: Pavel Kunyavskiy Date: Thu, 16 Dec 2021 18:36:53 +0300 Subject: [PATCH] [K/N] Add test for inlining of adopted function reference ^KT-48179 --- .../backend.native/tests/build.gradle | 4 ++++ .../filecheck/adopted_function_reference.kt | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 kotlin-native/backend.native/tests/filecheck/adopted_function_reference.kt diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index 89ce349e5c1..151c3f8f29a 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -6033,6 +6033,10 @@ fileCheckTest("filecheck_bce") { annotatedSource = project.file('filecheck/bce.kt') } +fileCheckTest("filecheck_adopted_function_reference") { + annotatedSource = project.file('filecheck/adopted_function_reference.kt') +} + fileCheckTest("filecheck_signext_zeroext0") { annotatedSource = project.file('filecheck/signext_zeroext0.kt') if (project.testTarget == 'mingw_x64') { diff --git a/kotlin-native/backend.native/tests/filecheck/adopted_function_reference.kt b/kotlin-native/backend.native/tests/filecheck/adopted_function_reference.kt new file mode 100644 index 00000000000..1334f9070b8 --- /dev/null +++ b/kotlin-native/backend.native/tests/filecheck/adopted_function_reference.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +inline fun foo(x: () -> Unit): String { + x() + return "OK" +} + +fun String.id(s: String = this, vararg xs: Int): String = s + +// CHECK-LABEL: "kfun:#main(){}" +fun main() { + // CHECK-LABEL: entry + // CHECK-NOT: call %struct.ObjHeader* @AllocInstance + // CHECK-NOT: alloca + val x = foo("Fail"::id) + println(x) + // CHECK-LABEL: epilogue +} \ No newline at end of file