[Test] Reproduce KT-58539

This commit is contained in:
Dmitriy Novozhilov
2023-06-23 14:40:50 +03:00
committed by Space Team
parent 1212128f04
commit d46f697cf8
3 changed files with 70 additions and 0 deletions
@@ -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), <L> = ExpectComposable@fun <anonymous>(it: R|@R|kotlin/ParameterName|(name = String(v)) kotlin/String|): R|kotlin/String| <inline=NoInline> {
^ R|<local>/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|<local>/content|.R|SubstitutionOverride<some/MyComposableFunction1.invoke: R|kotlin/String|>|(R|<local>/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), <L> = ExpectComposable@fun <anonymous>(it: R|@R|kotlin/ParameterName|(name = String(v)) kotlin/String|): R|kotlin/String| <inline=NoInline> {
^ R|<local>/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|<local>/content|.R|SubstitutionOverride<some/MyComposableFunction1.invoke: R|kotlin/String|>|(R|<local>/value|)
}
public final fun box(): R|kotlin/String| {
^box R|/commonBox|()
}
@@ -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()
}
@@ -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 {