WIP: Test to reproduce composable function call error with named argument
diff --git a/plugins/fir-plugin-prototype/testData/box/composableFunctionNamedArgument.fir.txt b/plugins/fir-plugin-prototype/testData/box/composableFunctionNamedArgument.fir.txt new file mode 100644 index 0000000..a4df76a --- /dev/null +++ b/plugins/fir-plugin-prototype/testData/box/composableFunctionNamedArgument.fir.txt
@@ -0,0 +1,27 @@ +FILE: main.kt + public abstract interface IFoo : R|kotlin/Any| { + public abstract var callFoo: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>| + public get(): R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>| + public set(value: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>|): R|kotlin/Unit| + + } + public final data class Foo : R|IFoo| { + public constructor(callFoo: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>|): R|Foo| { + super<R|kotlin/Any|>() + } + + public open override var callFoo: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>| = R|<local>/callFoo| + public get(): R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>| + public set(value: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>|): R|kotlin/Unit| + + public final operator fun component1(): R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>| + + public final fun copy(callFoo: R|@R|org/jetbrains/kotlin/fir/plugin/MyComposable|() some/MyComposableFunction1<@R|kotlin/ParameterName|(name = String(task)) kotlin/String, kotlin/Unit>| = this@R|/Foo|.R|/Foo.callFoo|): R|Foo| + + } + @R|org/jetbrains/kotlin/fir/plugin/MyComposable|() public final fun runFoo(f: R|IFoo|): R|kotlin/Unit| { + R|<local>/f|.R|/IFoo.callFoo|.R|SubstitutionOverride<some/MyComposableFunction1.invoke: R|kotlin/Unit|><Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): some/MyComposableFunction1.invoke>#|(String(Task1)) + } + public final fun box(): R|kotlin/String| { + ^box String(OK) + }
diff --git a/plugins/fir-plugin-prototype/testData/box/composableFunctionNamedArgument.kt b/plugins/fir-plugin-prototype/testData/box/composableFunctionNamedArgument.kt new file mode 100644 index 0000000..9b30a32 --- /dev/null +++ b/plugins/fir-plugin-prototype/testData/box/composableFunctionNamedArgument.kt
@@ -0,0 +1,18 @@ +// DUMP_IR + +// FILE: main.kt + +import org.jetbrains.kotlin.fir.plugin.MyComposable + +interface IFoo { + var callFoo: @MyComposable (task: String) -> Unit +} + +data class Foo(override var callFoo: @MyComposable (task: String) -> Unit): IFoo + +@MyComposable +fun runFoo(f: IFoo) { + f.callFoo(task = "Task1") +} + +fun box(): String = "OK" \ No newline at end of file
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 598b9e6..3cddec97 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
@@ -73,6 +73,12 @@ } @Test + @TestMetadata("composableFunctionNamedArgument.kt") + public void testComposableFunctionNamedArgument() { + runTest("plugins/fir-plugin-prototype/testData/box/composableFunctionNamedArgument.kt"); + } + + @Test @TestMetadata("expectComposableFunction.kt") public void testExpectComposableFunction() { runTest("plugins/fir-plugin-prototype/testData/box/expectComposableFunction.kt");