diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/expectActualLv14.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/expectActualLv14.kt new file mode 100644 index 00000000000..1584cbb7b84 --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/expectActualLv14.kt @@ -0,0 +1,10 @@ +package test + +@Suppress("INLINE_CLASS_DEPRECATED", "EXPERIMENTAL_FEATURE_WARNING") +expect inline class ExpectInlineActualInline(val value: Int) + +@Suppress("INLINE_CLASS_DEPRECATED", "EXPERIMENTAL_FEATURE_WARNING") +expect inline class ExpectInlineActualValue(val value: Int) + +actual typealias ExpectInlineActualInline = lib.InlineClass +actual typealias ExpectInlineActualValue = lib.ValueClass diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/expectActualLv15.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/expectActualLv15.kt new file mode 100644 index 00000000000..fd0a542f705 --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/expectActualLv15.kt @@ -0,0 +1,10 @@ +package test + +@kotlin.jvm.JvmInline +expect value class ExpectValueActualInline(val value: Int) + +@kotlin.jvm.JvmInline +expect value class ExpectValueActualValue(val value: Int) + +actual typealias ExpectValueActualInline = lib.InlineClass +actual typealias ExpectValueActualValue = lib.ValueClass diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/library14/inlineClass.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/library14/inlineClass.kt new file mode 100644 index 00000000000..10048971681 --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/library14/inlineClass.kt @@ -0,0 +1,4 @@ +package lib + +@Suppress("INLINE_CLASS_DEPRECATED", "EXPERIMENTAL_FEATURE_WARNING") +inline class InlineClass(val value: Int) diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/library15/inlineClass.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/library15/inlineClass.kt new file mode 100644 index 00000000000..6c3d25321be --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/library15/inlineClass.kt @@ -0,0 +1,4 @@ +package lib + +@kotlin.jvm.JvmInline +value class ValueClass(val value: Int) diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/output14.txt b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/output14.txt new file mode 100644 index 00000000000..ff56c81a988 --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/output14.txt @@ -0,0 +1,13 @@ +compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/expectActualLv14.kt:9:1: error: actual typealias 'ExpectInlineActualInline' has no corresponding expected declaration +The following declaration is incompatible because modifiers are different (companion, inner, inline): + public final expect inline class ExpectInlineActualInline + +actual typealias ExpectInlineActualInline = lib.InlineClass +^ +compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/expectActualLv14.kt:10:1: error: actual typealias 'ExpectInlineActualValue' has no corresponding expected declaration +The following declaration is incompatible because modifiers are different (companion, inner, inline): + public final expect inline class ExpectInlineActualValue + +actual typealias ExpectInlineActualValue = lib.ValueClass +^ +COMPILATION_ERROR diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/output15.txt b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/output15.txt new file mode 100644 index 00000000000..a0aba9318ad --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/actualTypealiasToCompiledInlineClass/output15.txt @@ -0,0 +1 @@ +OK \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt index 684b240d6c3..e8230b478c4 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt @@ -751,6 +751,31 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration listOf("-Xexpect-actual-linker") ) } + + fun testActualTypealiasToCompiledInlineClass() { + val library14 = compileLibrary( + "library14", + additionalOptions = listOf("-language-version", "1.4") + ) + val library15 = compileLibrary( + "library15", + additionalOptions = listOf("-language-version", "1.5") + ) + compileKotlin( + "expectActualLv14.kt", + output = tmpdir, + classpath = listOf(library14, library15), + additionalOptions = listOf("-language-version", "1.4", "-Xmulti-platform"), + expectedFileName = "output14.txt", + ) + compileKotlin( + "expectActualLv15.kt", + output = tmpdir, + classpath = listOf(library14, library15), + additionalOptions = listOf("-language-version", "1.5", "-Xmulti-platform"), + expectedFileName = "output15.txt", + ) + } private fun loadClassFile(className: String, dir: File, library: File) { val classLoader = URLClassLoader(arrayOf(dir.toURI().toURL(), library.toURI().toURL()))