JVM: use metadata version 1.9 for .kotlin_module if LV=2.0

See the comment in the code for more info.

No proper test added because the compiler test infrastructure lacks the
ability to run old compiler versions, however I've verified manually
that the change fixes the issue.

 #KT-62531 Fixed
This commit is contained in:
Alexander Udalov
2023-10-12 10:42:20 +02:00
committed by Space Team
parent d5540ff035
commit 9fd1445631
2 changed files with 35 additions and 3 deletions
@@ -387,8 +387,12 @@ abstract class AbstractCompileKotlinAgainstCustomBinariesTest : AbstractKotlinCo
val moduleFile = File(tmpdir.absolutePath, "META-INF/main.kotlin_module").readBytes()
val versionNumber = ModuleMapping.readVersionNumber(DataInputStream(ByteArrayInputStream(moduleFile)))!!
val moduleVersion = JvmMetadataVersion(*versionNumber)
assertEquals("Actual version: $moduleVersion", expectedMajor, moduleVersion.major)
assertEquals("Actual version: $moduleVersion", expectedMinor, moduleVersion.minor)
if (languageVersion == LanguageVersion.KOTLIN_2_0) {
assertEquals("Actual version: $moduleVersion", JvmMetadataVersion(1, 9, 9999), moduleVersion)
} else {
assertEquals("Actual version: $moduleVersion", expectedMajor, moduleVersion.major)
assertEquals("Actual version: $moduleVersion", expectedMinor, moduleVersion.minor)
}
}
}