From 1bc08fc5b8734a4acb198428b5a05ebdcb7bbebc Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 14 Feb 2024 15:44:49 +0100 Subject: [PATCH] JVM: report error on -Xjdk-release=6 without -jvm-target #KT-59098 --- .../src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt | 10 +++++++++- .../cli/jvm/jdkRelease6WithoutExplicitJvmTarget.args | 4 ++++ .../cli/jvm/jdkRelease6WithoutExplicitJvmTarget.out | 2 ++ .../org/jetbrains/kotlin/cli/CliTestGenerated.java | 5 +++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.args create mode 100644 compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.out diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt index 4e981930a79..217c25802f7 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/jvmArguments.kt @@ -52,7 +52,15 @@ fun CompilerConfiguration.setupJvmSpecificArguments(arguments: K2JVMCompilerArgu } val jvmTargetValue = when (releaseTargetArg) { - "6" -> "1.6" + "6", "1.6" -> { + if (jvmTargetArg == null) { + messageCollector.report( + ERROR, + "'-Xjdk-release=$releaseTargetArg' option requires explicit JVM target. Please specify the '-jvm-target' option" + ) + } + jvmTargetArg + } "8" -> "1.8" null -> jvmTargetArg else -> releaseTargetArg diff --git a/compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.args b/compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.args new file mode 100644 index 00000000000..175624a0f6b --- /dev/null +++ b/compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.args @@ -0,0 +1,4 @@ +-Xjdk-release=1.6 +$TESTDATA_DIR$/jdkRelease.kt +-d +$TEMP_DIR$ diff --git a/compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.out b/compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.out new file mode 100644 index 00000000000..ec15deca066 --- /dev/null +++ b/compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.out @@ -0,0 +1,2 @@ +error: '-Xjdk-release=1.6' option requires explicit JVM target. Please specify the '-jvm-target' option +COMPILATION_ERROR diff --git a/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java index f4d4cc897b9..68306d82c10 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java @@ -755,6 +755,11 @@ public class CliTestGenerated extends AbstractCliTest { runTest("compiler/testData/cli/jvm/jdkRelease.args"); } + @TestMetadata("jdkRelease6WithoutExplicitJvmTarget.args") + public void testJdkRelease6WithoutExplicitJvmTarget() { + runTest("compiler/testData/cli/jvm/jdkRelease6WithoutExplicitJvmTarget.args"); + } + @TestMetadata("jdkRelease8.args") public void testJdkRelease8() { runTest("compiler/testData/cli/jvm/jdkRelease8.args");