Add test for KT-44926

This commit is contained in:
Pavel Kirpichenkov
2021-02-26 16:52:21 +03:00
committed by TeamCityServer
parent 373d0ac660
commit c8c44da061
7 changed files with 67 additions and 0 deletions
@@ -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
@@ -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
@@ -0,0 +1,4 @@
package lib
@Suppress("INLINE_CLASS_DEPRECATED", "EXPERIMENTAL_FEATURE_WARNING")
inline class InlineClass(val value: Int)
@@ -0,0 +1,4 @@
package lib
@kotlin.jvm.JvmInline
value class ValueClass(val value: Int)
@@ -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
@@ -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()))