Warn when running the compiler under Java 6 or 7
(cherry picked from commit 5537800) (cherry picked from commit 5614874)
This commit is contained in:
+3
@@ -79,6 +79,9 @@ public abstract class CommonCompilerArguments implements Serializable {
|
||||
@Argument(value = "Xno-check-impl", description = "Do not check presence of 'impl' modifier in multi-platform projects")
|
||||
public boolean noCheckImpl;
|
||||
|
||||
@Argument(value = "Xskip-java-check", description = "Do not warn when running the compiler under Java 6 or 7")
|
||||
public boolean noJavaVersionWarning;
|
||||
|
||||
@Argument(value = "Xcoroutines=warn")
|
||||
public boolean coroutinesWarn;
|
||||
|
||||
|
||||
@@ -155,6 +155,7 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
||||
}
|
||||
|
||||
reportUnknownExtraFlags(messageCollector, arguments);
|
||||
reportUnsupportedJavaVersion(messageCollector, arguments);
|
||||
|
||||
GroupingMessageCollector groupingCollector = new GroupingMessageCollector(messageCollector);
|
||||
|
||||
@@ -350,6 +351,16 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
||||
}
|
||||
}
|
||||
|
||||
private void reportUnsupportedJavaVersion(MessageCollector collector, A arguments) {
|
||||
if (!SystemInfo.isJavaVersionAtLeast("1.8") && !arguments.noJavaVersionWarning) {
|
||||
collector.report(
|
||||
CompilerMessageSeverity.STRONG_WARNING,
|
||||
"Running the Kotlin compiler under Java 6 or 7 is unsupported and will no longer be possible in a future update.",
|
||||
CompilerMessageLocation.NO_LOCATION
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected abstract ExitCode doExecute(
|
||||
@NotNull A arguments,
|
||||
|
||||
+2
-1
@@ -7,7 +7,8 @@ where advanced options include:
|
||||
-Xplugin <path> Load plugins from the given classpath
|
||||
-Xmulti-platform Enable experimental language support for multi-platform projects
|
||||
-Xno-check-impl Do not check presence of 'impl' modifier in multi-platform projects
|
||||
-Xskip-java-check Do not warn when running the compiler under Java 6 or 7
|
||||
-Xcoroutines={enable|warn|error} Enable coroutines or report warnings or errors on declarations and use sites of 'suspend' modifier
|
||||
|
||||
Advanced options are non-standard and may be changed or removed without any notice.
|
||||
OK
|
||||
OK
|
||||
|
||||
Vendored
+1
@@ -1,2 +1,3 @@
|
||||
info: Kotlin Compiler version $VERSION$
|
||||
warning: running the Kotlin compiler under Java 6 or 7 is unsupported and will no longer be possible in a future update.
|
||||
OK
|
||||
|
||||
+1
@@ -18,6 +18,7 @@ where advanced options include:
|
||||
-Xplugin <path> Load plugins from the given classpath
|
||||
-Xmulti-platform Enable experimental language support for multi-platform projects
|
||||
-Xno-check-impl Do not check presence of 'impl' modifier in multi-platform projects
|
||||
-Xskip-java-check Do not warn when running the compiler under Java 6 or 7
|
||||
-Xcoroutines={enable|warn|error} Enable coroutines or report warnings or errors on declarations and use sites of 'suspend' modifier
|
||||
|
||||
Advanced options are non-standard and may be changed or removed without any notice.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
warning: flag is not supported by this version of the compiler: -Xabcdefghijklm
|
||||
warning: flag is not supported by this version of the compiler: -Xnopqrstuvwxyz
|
||||
warning: flag is not supported by this version of the compiler: -XXxxxxxxxxxxxx
|
||||
warning: running the Kotlin compiler under Java 6 or 7 is unsupported and will no longer be possible in a future update.
|
||||
OK
|
||||
|
||||
+1
@@ -1,2 +1,3 @@
|
||||
info: Kotlin Compiler version $VERSION$
|
||||
warning: running the Kotlin compiler under Java 6 or 7 is unsupported and will no longer be possible in a future update.
|
||||
OK
|
||||
|
||||
@@ -87,6 +87,9 @@ public abstract class KotlinIntegrationTestBase extends TestCaseWithTmpdir {
|
||||
content = normalizePath(content, getKotlinProjectHome(), "[KotlinProjectHome]");
|
||||
content = content.replaceAll(Pattern.quote(KotlinCompilerVersion.VERSION), "[KotlinVersion]");
|
||||
content = StringUtil.convertLineSeparators(content);
|
||||
content = Pattern.compile("^.+running the Kotlin compiler under Java 6 or 7 is unsupported and will no longer be possible in a future update\\.\n", Pattern.MULTILINE)
|
||||
.matcher(content)
|
||||
.replaceAll("");
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
@@ -74,12 +74,13 @@ public abstract class AbstractCliTest extends TestCaseWithTmpdir {
|
||||
@NotNull BinaryVersion version
|
||||
) {
|
||||
String testDataAbsoluteDir = new File(testDataDir).getAbsolutePath();
|
||||
String normalizedOutputWithoutExitCode = pureOutput
|
||||
String normalizedOutputWithoutExitCode = StringUtil.convertLineSeparators(pureOutput)
|
||||
.replace(testDataAbsoluteDir, "$TESTDATA_DIR$")
|
||||
.replace(FileUtil.toSystemIndependentName(testDataAbsoluteDir), "$TESTDATA_DIR$")
|
||||
.replace(PathUtil.getKotlinPathsForDistDirectory().getHomePath().getAbsolutePath(), "$PROJECT_DIR$")
|
||||
.replace("expected version is " + version, "expected version is $ABI_VERSION$")
|
||||
.replace("\\", "/")
|
||||
.replaceAll("^.+running the Kotlin compiler under Java 6 or 7 is unsupported and will no longer be possible in a future update\\.\n", "")
|
||||
.replace(KotlinCompilerVersion.VERSION, "$VERSION$");
|
||||
|
||||
return normalizedOutputWithoutExitCode + exitCode;
|
||||
|
||||
@@ -43,6 +43,7 @@ public abstract class CompilerSmokeTestBase extends KotlinIntegrationTestBase {
|
||||
javaArgs.add("org.jetbrains.kotlin.cli.jvm.K2JVMCompiler");
|
||||
|
||||
Collections.addAll(javaArgs, arguments);
|
||||
javaArgs.add("-Xskip-java-check");
|
||||
|
||||
return run(logName, ArrayUtil.toStringArray(javaArgs));
|
||||
}
|
||||
|
||||
+3
-3
@@ -39,7 +39,7 @@ abstract class AbstractMultiPlatformIntegrationTest : KtUsefulTestCase() {
|
||||
|
||||
val result = buildString {
|
||||
val (commonOutput, commonExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2MetadataCompiler(), listOf(
|
||||
commonSrc.absolutePath, "-d", commonDest.absolutePath
|
||||
commonSrc.absolutePath, "-d", commonDest.absolutePath, "-Xskip-java-check"
|
||||
))
|
||||
appendln("-- Common --")
|
||||
appendln("Exit code: $commonExitCode")
|
||||
@@ -50,7 +50,7 @@ abstract class AbstractMultiPlatformIntegrationTest : KtUsefulTestCase() {
|
||||
val (jvmOutput, jvmExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2JVMCompiler(), listOf(
|
||||
jvmSrc.absolutePath, commonSrc.absolutePath,
|
||||
"-d", jvmDest.absolutePath,
|
||||
"-Xmulti-platform"
|
||||
"-Xmulti-platform", "-Xskip-java-check"
|
||||
))
|
||||
appendln("-- JVM --")
|
||||
appendln("Exit code: $jvmExitCode")
|
||||
@@ -62,7 +62,7 @@ abstract class AbstractMultiPlatformIntegrationTest : KtUsefulTestCase() {
|
||||
val (jsOutput, jsExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2JSCompiler(), listOf(
|
||||
jsSrc.absolutePath, commonSrc.absolutePath,
|
||||
"-output", jsDest.absolutePath,
|
||||
"-Xmulti-platform"
|
||||
"-Xmulti-platform", "-Xskip-java-check"
|
||||
))
|
||||
appendln("-- JS --")
|
||||
appendln("Exit code: $jsExitCode")
|
||||
|
||||
Reference in New Issue
Block a user