diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt index 1d8150f1560..c40c0636de1 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt @@ -75,7 +75,7 @@ class K2JVMCompilerArguments : CommonCompilerArguments() { @Argument( value = "-jvm-target", valueDescription = "", - description = "Target version of the generated JVM bytecode (1.8, 9, 10, ..., 18), default is 1.8" + description = "Target version of the generated JVM bytecode (${JvmTarget.SUPPORTED_VERSIONS_DESCRIPTION}), default is 1.8" ) var jvmTarget: String? by NullableStringFreezableVar(null) @@ -378,7 +378,7 @@ default: `indy-with-constants` for JVM target 9 or greater, `inline` otherwise"" value = "-Xjdk-release", valueDescription = "", description = """Compile against the specified JDK API version, similarly to javac's `-release`. Requires JDK 9 or newer. -Supported versions depend on the used JDK; for JDK 17+ supported versions are 1.8, 9, 10, ..., 17. +Supported versions depend on the used JDK; for JDK 17+ supported versions are ${JvmTarget.SUPPORTED_VERSIONS_DESCRIPTION}. Also sets `-jvm-target` value equal to the selected JDK version""" ) var jdkRelease: String? by NullableStringFreezableVar(null) 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 50c154e5300..7ce8378b4e2 100644 --- a/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmTarget.kt +++ b/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmTarget.kt @@ -58,5 +58,14 @@ enum class JvmTarget( fun supportedValues(): List = values().asList() - JVM_1_6 + + const val SUPPORTED_VERSIONS_DESCRIPTION = + "1.8, 9, 10, ..., 18" + + init { + check(SUPPORTED_VERSIONS_DESCRIPTION == "1.8, 9, 10, ..., ${values().last().description}") { + "Please update the value of the constant JvmTarget.SUPPORTED_VERSIONS_DESCRIPTION." + } + } } } diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index e3eaaff842c..db0ecfc323d 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -39,7 +39,7 @@ where advanced options include: -Xjava-source-roots= Paths to directories with Java source files -Xjavac-arguments= Java compiler arguments -Xjdk-release= Compile against the specified JDK API version, similarly to javac's `-release`. Requires JDK 9 or newer. - Supported versions depend on the used JDK; for JDK 17+ supported versions are 1.8, 9, 10, ..., 17. + Supported versions depend on the used JDK; for JDK 17+ supported versions are 1.8, 9, 10, ..., 18. Also sets `-jvm-target` value equal to the selected JDK version -Xjspecify-annotations=ignore|strict|warn Specify behavior for jspecify annotations.