From bb8da65188588a7473e5065a25234be792bfb5d9 Mon Sep 17 00:00:00 2001 From: Alexander Korepanov Date: Wed, 27 Jul 2022 09:33:51 +0200 Subject: [PATCH] [Common IR] Do inlining of callable references of inline functions ^KT-52805 Fixed --- ...FirBlackBoxInlineCodegenTestGenerated.java | 6 +++ ...reeBlackBoxInlineCodegenTestGenerated.java | 6 +++ ...otlinAgainstInlineKotlinTestGenerated.java | 6 +++ .../common/lower/inline/FunctionInlining.kt | 2 +- .../inlineCallableReference.kt | 22 ++++++++++ .../BlackBoxInlineCodegenTestGenerated.java | 6 +++ ...otlinAgainstInlineKotlinTestGenerated.java | 6 +++ .../IrBlackBoxInlineCodegenTestGenerated.java | 6 +++ ...otlinAgainstInlineKotlinTestGenerated.java | 6 +++ ...otlinAgainstInlineKotlinTestGenerated.java | 6 +++ ...JvmIrAgainstOldBoxInlineTestGenerated.java | 6 +++ ...JvmOldAgainstIrBoxInlineTestGenerated.java | 6 +++ .../kotlin/js/test/BoxJsTestGenerated.java | 6 +++ .../js/test/JsCodegenInlineTestGenerated.java | 6 +++ .../kotlin/js/test/ir/FirJsTestGenerated.java | 6 +++ .../js/test/ir/IrBoxJsTestGenerated.java | 6 +++ .../ir/IrJsCodegenInlineTestGenerated.java | 6 +++ .../IrCodegenBoxInlineWasmTestGenerated.java | 5 +++ .../inline/callableReferenceClassMethod.kt | 41 +++++++++++++++++++ .../inlineMultiModule/callableReference.kt | 5 +-- .../NativeCodegenBoxTestGenerated.java | 6 +++ 21 files changed, 166 insertions(+), 5 deletions(-) create mode 100644 compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt create mode 100644 js/js.translator/testData/box/inline/callableReferenceClassMethod.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxInlineCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxInlineCodegenTestGenerated.java index b8ee304a3d6..9d89a4b2dd4 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxInlineCodegenTestGenerated.java @@ -1060,6 +1060,12 @@ public class FirBlackBoxInlineCodegenTestGenerated extends AbstractFirBlackBoxIn runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenTestGenerated.java index 7d3aac7f1b8..13497fb84a1 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenTestGenerated.java @@ -1060,6 +1060,12 @@ public class FirLightTreeBlackBoxInlineCodegenTestGenerated extends AbstractFirL runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java index fb61c72a737..26af2874d21 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1060,6 +1060,12 @@ public class FirSerializeCompileKotlinAgainstInlineKotlinTestGenerated extends A runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/FunctionInlining.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/FunctionInlining.kt index 664577b0dbf..316d1886863 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/FunctionInlining.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/FunctionInlining.kt @@ -395,7 +395,7 @@ class FunctionInlining( for (index in 0 until irFunctionReference.typeArgumentsCount) putTypeArgument(index, irFunctionReference.getTypeArgument(index)) }.implicitCastIfNeededTo(irCall.type) - return this@FunctionInlining.visitExpression(super.visitExpression(immediateCall)) + return super.visitExpression(immediateCall).transform(this@FunctionInlining, null) } override fun visitElement(element: IrElement) = element.accept(this, null) diff --git a/compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt b/compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt new file mode 100644 index 00000000000..f68f06ceb29 --- /dev/null +++ b/compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt @@ -0,0 +1,22 @@ +// MODULE: lib +// FILE: lib.kt + +package utils + +inline public fun composition(x0: T, x1: T, x2: T, fn: (T, T) -> T): T = fn(fn(x0, x1), x2) + +// MODULE: main(lib) +// FILE: main.kt + +import utils.* + +public fun nonInlinableConcat(x: String, y: String): String = "$x$y" + +inline fun appendTo(target: String, suffix: String): String = nonInlinableConcat(target, suffix) + +// CHECK_CONTAINS_NO_CALLS: test except=nonInlinableConcat +internal fun test(x: String): String = composition("", "O", "K", ::appendTo) + +fun box(): String { + return test("O") +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxInlineCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxInlineCodegenTestGenerated.java index cbd91decf34..83f86442184 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxInlineCodegenTestGenerated.java @@ -1060,6 +1060,12 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java index b8eed14f519..ca5e68d6cfa 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1060,6 +1060,12 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenTestGenerated.java index 89c02d5fe12..957430f5581 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenTestGenerated.java @@ -1060,6 +1060,12 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrCompileKotlinAgainstInlineKotlinTestGenerated.java index 4f774d71cb9..769ebf08547 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrCompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrCompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1060,6 +1060,12 @@ public class IrCompileKotlinAgainstInlineKotlinTestGenerated extends AbstractIrC runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java index 3a4dca59acf..60d6a51dae0 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1060,6 +1060,12 @@ public class IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated extends Ab runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmIrAgainstOldBoxInlineTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmIrAgainstOldBoxInlineTestGenerated.java index 6b7cc905d63..49d671297e3 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmIrAgainstOldBoxInlineTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmIrAgainstOldBoxInlineTestGenerated.java @@ -1060,6 +1060,12 @@ public class JvmIrAgainstOldBoxInlineTestGenerated extends AbstractJvmIrAgainstO runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmOldAgainstIrBoxInlineTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmOldAgainstIrBoxInlineTestGenerated.java index e0995a1fdf8..f4f1b7e1cb1 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmOldAgainstIrBoxInlineTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmOldAgainstIrBoxInlineTestGenerated.java @@ -1060,6 +1060,12 @@ public class JvmOldAgainstIrBoxInlineTestGenerated extends AbstractJvmOldAgainst runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/BoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/BoxJsTestGenerated.java index 4622023eb21..cdb2cb7865c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/BoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/BoxJsTestGenerated.java @@ -4622,6 +4622,12 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { runTest("js/js.translator/testData/box/inline/callableReference.kt"); } + @Test + @TestMetadata("callableReferenceClassMethod.kt") + public void testCallableReferenceClassMethod() throws Exception { + runTest("js/js.translator/testData/box/inline/callableReferenceClassMethod.kt"); + } + @Test @TestMetadata("callableReferenceOfLocalFun.kt") public void testCallableReferenceOfLocalFun() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenInlineTestGenerated.java index b23cba2f5b3..409d09962c9 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenInlineTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenInlineTestGenerated.java @@ -868,6 +868,12 @@ public class JsCodegenInlineTestGenerated extends AbstractJsCodegenInlineTest { runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/FirJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/FirJsTestGenerated.java index 8d827a28ef7..604c65eade5 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/FirJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/FirJsTestGenerated.java @@ -5070,6 +5070,12 @@ public class FirJsTestGenerated extends AbstractFirJsTest { runTest("js/js.translator/testData/box/inline/callableReference.kt"); } + @Test + @TestMetadata("callableReferenceClassMethod.kt") + public void testCallableReferenceClassMethod() throws Exception { + runTest("js/js.translator/testData/box/inline/callableReferenceClassMethod.kt"); + } + @Test @TestMetadata("callableReferenceOfLocalFun.kt") public void testCallableReferenceOfLocalFun() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrBoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrBoxJsTestGenerated.java index 48f78582fea..a436e93805c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrBoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrBoxJsTestGenerated.java @@ -5070,6 +5070,12 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { runTest("js/js.translator/testData/box/inline/callableReference.kt"); } + @Test + @TestMetadata("callableReferenceClassMethod.kt") + public void testCallableReferenceClassMethod() throws Exception { + runTest("js/js.translator/testData/box/inline/callableReferenceClassMethod.kt"); + } + @Test @TestMetadata("callableReferenceOfLocalFun.kt") public void testCallableReferenceOfLocalFun() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenInlineTestGenerated.java index 7844fa774ce..3c7f418fb7d 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenInlineTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenInlineTestGenerated.java @@ -868,6 +868,12 @@ public class IrJsCodegenInlineTestGenerated extends AbstractIrJsCodegenInlineTes runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxInlineWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxInlineWasmTestGenerated.java index 5e4ff8a7423..d240bea3afe 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxInlineWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/testOld/wasm/semantics/IrCodegenBoxInlineWasmTestGenerated.java @@ -793,6 +793,11 @@ public class IrCodegenBoxInlineWasmTestGenerated extends AbstractIrCodegenBoxInl runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception { runTest("compiler/testData/codegen/boxInline/callableReference/innerGenericConstuctor.kt"); diff --git a/js/js.translator/testData/box/inline/callableReferenceClassMethod.kt b/js/js.translator/testData/box/inline/callableReferenceClassMethod.kt new file mode 100644 index 00000000000..f56f73a7e68 --- /dev/null +++ b/js/js.translator/testData/box/inline/callableReferenceClassMethod.kt @@ -0,0 +1,41 @@ +typealias Callback = () -> Unit + +class CallbackComposer { + inline fun addTo(noinline block: Callback) { + asDynamic().push(block) + } +} + +inline fun CallbackComposer.addToExtension(noinline block: Callback) { + asDynamic().push(block) +} + +fun createCallbackBuilder(builder: CallbackComposer.() -> Unit): () -> Callback = { + val callbacks = arrayOf() + builder(callbacks.unsafeCast()) + + val composed: Callback = { + for (cb in callbacks) { + cb() + } + } + composed +} + +var retVal = "" + +fun appendToRetVal(c: String): () -> Unit = { + retVal += c +} + +fun box(): String { + val callbackBuilder = createCallbackBuilder { + appendToRetVal("O").also(::addTo) + appendToRetVal("K").also(::addToExtension) + } + + val callback = callbackBuilder() + callback() + + return retVal +} diff --git a/js/js.translator/testData/box/inlineMultiModule/callableReference.kt b/js/js.translator/testData/box/inlineMultiModule/callableReference.kt index 07aad6f5984..ba087fed267 100644 --- a/js/js.translator/testData/box/inlineMultiModule/callableReference.kt +++ b/js/js.translator/testData/box/inlineMultiModule/callableReference.kt @@ -14,10 +14,7 @@ public fun apply(x: T, fn: (T)->R): R = import utils.* -// CHECK_CONTAINS_NO_CALLS: test except=imul TARGET_BACKENDS=JS - -// FIXME: Not inlined on IR BE -// CHECK_CONTAINS_NO_CALLS: test except=multiplyBy2 IGNORED_BACKENDS=JS +// CHECK_CONTAINS_NO_CALLS: test except=imul internal inline fun multiplyBy2(x: Int): Int = x * 2 diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java index 009cc4c8307..55208e02bb1 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java @@ -40862,6 +40862,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/boxInline/callableReference/constructor.kt"); } + @Test + @TestMetadata("inlineCallableReference.kt") + public void testInlineCallableReference() throws Exception { + runTest("compiler/testData/codegen/boxInline/callableReference/inlineCallableReference.kt"); + } + @Test @TestMetadata("innerGenericConstuctor.kt") public void testInnerGenericConstuctor() throws Exception {