diff --git a/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmTarget.kt b/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmTarget.kt index 28dd3296a6a..e9f61674f66 100644 --- a/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmTarget.kt +++ b/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmTarget.kt @@ -19,7 +19,11 @@ package org.jetbrains.kotlin.config import org.jetbrains.kotlin.platform.TargetPlatformVersion import org.jetbrains.org.objectweb.asm.Opcodes -enum class JvmTarget(override val description: String) : TargetPlatformVersion { +enum class JvmTarget( + override val description: String, + val descriptionForJavacArgument: String = description, + val isPreview: Boolean = false, +) : TargetPlatformVersion { JVM_1_6("1.6"), JVM_1_8("1.8"), JVM_9("9"), @@ -29,7 +33,7 @@ enum class JvmTarget(override val description: String) : TargetPlatformVersion { JVM_13("13"), JVM_14("14"), JVM_15("15"), - JVM_15_PREVIEW("15_PREVIEW"), + JVM_15_PREVIEW("15_PREVIEW", descriptionForJavacArgument = "15", isPreview = true), ; val bytecodeVersion: Int by lazy { diff --git a/compiler/testData/codegen/java15/box/records/recordDifferentPropertyOverride.kt b/compiler/testData/codegen/java15/box/records/recordDifferentPropertyOverride.kt index 2752ede043d..894b37db7cf 100644 --- a/compiler/testData/codegen/java15/box/records/recordDifferentPropertyOverride.kt +++ b/compiler/testData/codegen/java15/box/records/recordDifferentPropertyOverride.kt @@ -1,3 +1,4 @@ +// JVM_TARGET: 15_PREVIEW // FILE: MyRec.java public record MyRec(String name) implements KI { public String getName() { diff --git a/compiler/testData/codegen/java15/box/records/recordDifferentSyntheticProperty.kt b/compiler/testData/codegen/java15/box/records/recordDifferentSyntheticProperty.kt index 80b39f384aa..8b68537f4aa 100644 --- a/compiler/testData/codegen/java15/box/records/recordDifferentSyntheticProperty.kt +++ b/compiler/testData/codegen/java15/box/records/recordDifferentSyntheticProperty.kt @@ -1,3 +1,4 @@ +// JVM_TARGET: 15_PREVIEW // FILE: MyRec.java public record MyRec(String name) { public String getName() { diff --git a/compiler/testData/codegen/java15/box/records/recordPropertyAccess.kt b/compiler/testData/codegen/java15/box/records/recordPropertyAccess.kt index 05939f3dea5..8b10b44304a 100644 --- a/compiler/testData/codegen/java15/box/records/recordPropertyAccess.kt +++ b/compiler/testData/codegen/java15/box/records/recordPropertyAccess.kt @@ -1,3 +1,4 @@ +// JVM_TARGET: 15_PREVIEW // FILE: MyRec.java public record MyRec(String name) {} @@ -7,4 +8,4 @@ fun box(): String { if (r.name() != "OK") return "fail 1" return r.name -} \ No newline at end of file +} diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCustomJDKBlackBoxCodegenTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCustomJDKBlackBoxCodegenTest.kt index e53093e5d2e..50855f28539 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCustomJDKBlackBoxCodegenTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCustomJDKBlackBoxCodegenTest.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.codegen import org.jetbrains.kotlin.cli.common.output.writeAll import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime -import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils import org.jetbrains.kotlin.test.ConfigurationKind import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestJdkKind @@ -36,7 +35,9 @@ abstract class AbstractCustomJDKBlackBoxCodegenTest : AbstractBlackBoxCodegenTes } override fun runJavacTask(files: MutableCollection, options: List) { - KotlinTestUtils.compileJavaFilesExternally(files, options + getAdditionalJavacArgs(), getJdkHome()) + assert(KotlinTestUtils.compileJavaFilesExternally(files, options, getJdkHome())) { + "Javac failed: $options on $files" + } } override fun getTestJdkKind(files: List): TestJdkKind { @@ -46,7 +47,6 @@ abstract class AbstractCustomJDKBlackBoxCodegenTest : AbstractBlackBoxCodegenTes abstract fun getTestJdkKind(): TestJdkKind abstract fun getJdkHome(): File - open fun getAdditionalJavacArgs(): List = emptyList() open fun getAdditionalJvmArgs(): List = emptyList() abstract override fun getPrefix(): String @@ -78,4 +78,4 @@ abstract class AbstractCustomJDKBlackBoxCodegenTest : AbstractBlackBoxCodegenTes process.waitFor(1, TimeUnit.MINUTES) assertEquals(0, process.exitValue()) } -} \ No newline at end of file +} diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractJdk15BlackBoxCodegenTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractJdk15BlackBoxCodegenTest.kt index b46c6b1f3cd..ade7bd2b4b8 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractJdk15BlackBoxCodegenTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractJdk15BlackBoxCodegenTest.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.codegen -import org.jetbrains.kotlin.jvm.compiler.ADDITIONAL_JAVAC_ARGS_FOR_15 import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestJdkKind import java.io.File @@ -15,7 +14,6 @@ abstract class AbstractJdk15BlackBoxCodegenTest : AbstractCustomJDKBlackBoxCodeg override fun getJdkHome(): File = KotlinTestUtils.getJdk15Home() override fun getPrefix(): String = "java15/box" - override fun getAdditionalJavacArgs(): List = ADDITIONAL_JAVAC_ARGS_FOR_15 override fun getAdditionalJvmArgs(): List = listOf("--enable-preview") override fun verifyWithDex(): Boolean = false diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java index 60072773ce9..5c46f1b1baf 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java @@ -556,6 +556,14 @@ public abstract class CodegenTestCase extends KotlinBaseTest 0) - return kotlinTarget.getDescription(); + return kotlinTarget.getDescriptionForJavacArgument(); if (IS_SOURCE_6_STILL_SUPPORTED) return "1.6"; return null;