Introduce language version 2.0 and associate K2 compiler with it

This commit is contained in:
Mikhail Glukhikh
2022-11-28 18:20:10 +01:00
parent afe1150aec
commit 3dc05f4ec5
84 changed files with 233 additions and 151 deletions
@@ -406,7 +406,7 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
// Starting from Kotlin 1.4, major.minor version of JVM metadata must be equal to the language version.
// From Kotlin 1.0 to 1.4, we used JVM metadata version 1.1.*.
val expectedMajor = 1
val expectedMajor = if (languageVersion.usesK2) 2 else 1
val expectedMinor = if (languageVersion < LanguageVersion.KOTLIN_1_4) 1 else languageVersion.minor
val topLevelClass = LocalFileKotlinClass.create(File(tmpdir.absolutePath, "Foo.class"))!!
@@ -563,7 +563,7 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
fun testInternalFromFriendModuleFir() {
val library = compileLibrary("library")
compileKotlin("source.kt", tmpdir, listOf(library), additionalOptions = listOf("-Xfriend-paths=${library.path}", "-Xuse-k2"))
compileKotlin("source.kt", tmpdir, listOf(library), additionalOptions = listOf("-Xfriend-paths=${library.path}", "-language-version", "2.0"))
}
fun testJvmDefaultClashWithOld() {
@@ -642,20 +642,20 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
}
fun testFirAgainstFir() {
val library = compileLibrary("library", additionalOptions = listOf("-Xuse-k2"))
compileKotlin("source.kt", tmpdir, listOf(library), additionalOptions = listOf("-Xuse-k2"))
val library = compileLibrary("library", additionalOptions = listOf("-language-version", "2.0"))
compileKotlin("source.kt", tmpdir, listOf(library), additionalOptions = listOf("-language-version", "2.0"))
}
fun testFirAgainstOldJvm() {
val library = compileLibrary("library")
compileKotlin("source.kt", tmpdir, listOf(library), additionalOptions = listOf("-Xuse-k2"))
compileKotlin("source.kt", tmpdir, listOf(library), additionalOptions = listOf("-language-version", "2.0"))
}
fun testFirIncorrectJavaSignature() {
compileKotlin(
"source.kt", tmpdir,
listOf(),
additionalOptions = listOf("-Xuse-k2"),
additionalOptions = listOf("-language-version", "2.0"),
additionalSources = listOf("A.java", "B.java"),
)
}
@@ -664,7 +664,7 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
compileKotlin(
"source.kt", tmpdir,
listOf(),
additionalOptions = listOf("-Xuse-k2"),
additionalOptions = listOf("-language-version", "2.0"),
additionalSources = listOf("A.java", "B.java"),
)
}
@@ -678,10 +678,10 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
}
fun testOldJvmAgainstFir() {
val library = compileLibrary("library", additionalOptions = listOf("-Xuse-k2"))
val library = compileLibrary("library", additionalOptions = listOf("-language-version", "2.0"))
compileKotlin("source.kt", tmpdir, listOf(library))
val library2 = compileLibrary("library", additionalOptions = listOf("-Xuse-k2", "-Xabi-stability=unstable"))
val library2 = compileLibrary("library", additionalOptions = listOf("-language-version", "2.0", "-Xabi-stability=unstable"))
compileKotlin("source.kt", tmpdir, listOf(library2))
}
@@ -691,13 +691,13 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
}
fun testOldJvmAgainstFirWithStableAbi() {
val library = compileLibrary("library", additionalOptions = listOf("-Xuse-k2", "-Xabi-stability=stable"))
val library = compileLibrary("library", additionalOptions = listOf("-language-version", "2.0", "-Xabi-stability=stable"))
compileKotlin("source.kt", tmpdir, listOf(library))
}
fun testOldJvmAgainstFirWithAllowUnstableDependencies() {
val library = compileLibrary("library", additionalOptions = listOf("-Xuse-k2"))
compileKotlin("source.kt", tmpdir, listOf(library), additionalOptions = listOf("-Xallow-unstable-dependencies"))
val library = compileLibrary("library", additionalOptions = listOf("-language-version", "2.0"))
compileKotlin("source.kt", tmpdir, listOf(library), additionalOptions = listOf("-Xallow-unstable-dependencies", "-Xskip-metadata-version-check"))
}
fun testSealedClassesAndInterfaces() {