diff --git a/plugins/fir-plugin-prototype/testData/box/expectComposableFunction.fir.txt b/plugins/fir-plugin-prototype/testData/box/expectComposableFunction.fir.txt new file mode 100644 index 00000000000..5cc26580caf --- /dev/null +++ b/plugins/fir-plugin-prototype/testData/box/expectComposableFunction.fir.txt @@ -0,0 +1,32 @@ +Module: common +FILE: module_common_expectComposableFunction.kt + @R|org/jetbrains/kotlin/fir/plugin/MyComposable|() public final expect fun ExpectComposable(value: R|kotlin/String|, content: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(v)) kotlin/String, kotlin/String>|): R|kotlin/String| + public final fun commonBox(): R|kotlin/String| { + ^commonBox R|/ExpectComposable|(String(O), = ExpectComposable@fun (it: R|@R|kotlin/ParameterName|(name = String(v)) kotlin/String|): R|kotlin/String| { + ^ R|/it|.R|kotlin/String.plus|(String(K)) + } + ) + } +FILE: module_platform_expectComposableFunction.kt + @R|org/jetbrains/kotlin/fir/plugin/MyComposable|() public final actual fun ExpectComposable(value: R|kotlin/String|, content: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(v)) kotlin/String, kotlin/String>|): R|kotlin/String| { + ^ExpectComposable R|/content|.R|SubstitutionOverride|(R|/value|) + } + public final fun box(): R|kotlin/String| { + ^box R|/commonBox|() + } +Module: platform +FILE: module_common_expectComposableFunction.kt + @R|org/jetbrains/kotlin/fir/plugin/MyComposable|() public final expect fun ExpectComposable(value: R|kotlin/String|, content: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(v)) kotlin/String, kotlin/String>|): R|kotlin/String| + public final fun commonBox(): R|kotlin/String| { + ^commonBox R|/ExpectComposable|(String(O), = ExpectComposable@fun (it: R|@R|kotlin/ParameterName|(name = String(v)) kotlin/String|): R|kotlin/String| { + ^ R|/it|.R|kotlin/String.plus|(String(K)) + } + ) + } +FILE: module_platform_expectComposableFunction.kt + @R|org/jetbrains/kotlin/fir/plugin/MyComposable|() public final actual fun ExpectComposable(value: R|kotlin/String|, content: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(v)) kotlin/String, kotlin/String>|): R|kotlin/String| { + ^ExpectComposable R|/content|.R|SubstitutionOverride|(R|/value|) + } + public final fun box(): R|kotlin/String| { + ^box R|/commonBox|() + } diff --git a/plugins/fir-plugin-prototype/testData/box/expectComposableFunction.kt b/plugins/fir-plugin-prototype/testData/box/expectComposableFunction.kt new file mode 100644 index 00000000000..896aebb18eb --- /dev/null +++ b/plugins/fir-plugin-prototype/testData/box/expectComposableFunction.kt @@ -0,0 +1,32 @@ +// FIR_DISABLE_LAZY_RESOLVE_CHECKS +// IGNORE_BACKEND: JVM_IR +// LANGUAGE: +MultiPlatformProjects +// ISSUE: KT-58539 + +// MODULE: common +import org.jetbrains.kotlin.fir.plugin.MyComposable + +@MyComposable +expect fun ExpectComposable( + value: String, + content: @MyComposable (v: String) -> String +): String + +fun commonBox(): String { + return ExpectComposable("O") { it + "K" } +} + +// MODULE: platform()()(common) +import org.jetbrains.kotlin.fir.plugin.MyComposable + +@MyComposable +actual fun ExpectComposable( + value: String, + content: @MyComposable (v: String) -> String +): String { + return content(value) +} + +fun box(): String { + return commonBox() +} diff --git a/plugins/fir-plugin-prototype/tests-gen/org/jetbrains/kotlin/fir/plugin/runners/FirLightTreePluginBlackBoxCodegenTestGenerated.java b/plugins/fir-plugin-prototype/tests-gen/org/jetbrains/kotlin/fir/plugin/runners/FirLightTreePluginBlackBoxCodegenTestGenerated.java index fbbe6332178..7c14feb9874 100644 --- a/plugins/fir-plugin-prototype/tests-gen/org/jetbrains/kotlin/fir/plugin/runners/FirLightTreePluginBlackBoxCodegenTestGenerated.java +++ b/plugins/fir-plugin-prototype/tests-gen/org/jetbrains/kotlin/fir/plugin/runners/FirLightTreePluginBlackBoxCodegenTestGenerated.java @@ -49,6 +49,12 @@ public class FirLightTreePluginBlackBoxCodegenTestGenerated extends AbstractFirL runTest("plugins/fir-plugin-prototype/testData/box/composableFunction.kt"); } + @Test + @TestMetadata("expectComposableFunction.kt") + public void testExpectComposableFunction() throws Exception { + runTest("plugins/fir-plugin-prototype/testData/box/expectComposableFunction.kt"); + } + @Test @TestMetadata("generatedClassWithMembersAndNestedClasses.kt") public void testGeneratedClassWithMembersAndNestedClasses() throws Exception {