diff --git a/build.gradle.kts b/build.gradle.kts index 60b284eee8d..bbd55aba030 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -111,6 +111,7 @@ extra["JDK_16"] = jdkPath("1.6") extra["JDK_17"] = jdkPath("1.7") extra["JDK_18"] = jdkPath("1.8") extra["JDK_9"] = jdkPathIfFound("9") +extra["JDK_10"] = jdkPathIfFound("10") rootProject.apply { from(rootProject.file("versions.gradle.kts")) diff --git a/buildSrc/src/main/kotlin/jdksFinder.kt b/buildSrc/src/main/kotlin/jdksFinder.kt index ae4607a1a2d..3b1812185c0 100644 --- a/buildSrc/src/main/kotlin/jdksFinder.kt +++ b/buildSrc/src/main/kotlin/jdksFinder.kt @@ -9,7 +9,7 @@ import net.rubygrapefruit.platform.WindowsRegistry.Key.HKEY_LOCAL_MACHINE import org.gradle.internal.os.OperatingSystem enum class JdkMajorVersion { - JDK_16, JDK_17, JDK_18, JDK_9 + JDK_16, JDK_17, JDK_18, JDK_9, JDK_10 } val jdkAlternativeVarNames = mapOf(JdkMajorVersion.JDK_9 to listOf("JDK_19")) diff --git a/compiler/build.gradle.kts b/compiler/build.gradle.kts index 58bbb36f50d..9e2bac7cd6c 100644 --- a/compiler/build.gradle.kts +++ b/compiler/build.gradle.kts @@ -180,4 +180,9 @@ codegenTest(target = 9, jvm = 9) { systemProperty("kotlin.test.substitute.bytecode.1.8.to.1.9", "true") } +codegenTest(target = 10, jvm = 10) { + systemProperty("kotlin.test.default.jvm.target", "1.8") + systemProperty("kotlin.test.substitute.bytecode.1.8.to.10", "true") +} + val generateTests by generator("org.jetbrains.kotlin.generators.tests.GenerateCompilerTestsKt") diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/config/JvmTarget.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/config/JvmTarget.kt index 7c6ed945f01..b6440f7a24f 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/config/JvmTarget.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/config/JvmTarget.kt @@ -27,7 +27,11 @@ enum class JvmTarget(override val description: String) : TargetPlatformVersion { when (this) { JVM_1_6 -> Opcodes.V1_6 JVM_1_8 -> - if (java.lang.Boolean.valueOf(System.getProperty("kotlin.test.substitute.bytecode.1.8.to.1.9"))) Opcodes.V1_9 else Opcodes.V1_8 + when { + java.lang.Boolean.valueOf(System.getProperty("kotlin.test.substitute.bytecode.1.8.to.10")) -> Opcodes.V9 + 1 + java.lang.Boolean.valueOf(System.getProperty("kotlin.test.substitute.bytecode.1.8.to.1.9")) -> Opcodes.V9 + else -> Opcodes.V1_8 + } } }