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")
|
@Argument(value = "Xno-check-impl", description = "Do not check presence of 'impl' modifier in multi-platform projects")
|
||||||
public boolean noCheckImpl;
|
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")
|
@Argument(value = "Xcoroutines=warn")
|
||||||
public boolean coroutinesWarn;
|
public boolean coroutinesWarn;
|
||||||
|
|
||||||
|
|||||||
@@ -155,6 +155,7 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
reportUnknownExtraFlags(messageCollector, arguments);
|
reportUnknownExtraFlags(messageCollector, arguments);
|
||||||
|
reportUnsupportedJavaVersion(messageCollector, arguments);
|
||||||
|
|
||||||
GroupingMessageCollector groupingCollector = new GroupingMessageCollector(messageCollector);
|
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
|
@NotNull
|
||||||
protected abstract ExitCode doExecute(
|
protected abstract ExitCode doExecute(
|
||||||
@NotNull A arguments,
|
@NotNull A arguments,
|
||||||
|
|||||||
+2
-1
@@ -7,7 +7,8 @@ where advanced options include:
|
|||||||
-Xplugin <path> Load plugins from the given classpath
|
-Xplugin <path> Load plugins from the given classpath
|
||||||
-Xmulti-platform Enable experimental language support for multi-platform projects
|
-Xmulti-platform Enable experimental language support for multi-platform projects
|
||||||
-Xno-check-impl Do not check presence of 'impl' modifier in 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
|
-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.
|
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$
|
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
|
OK
|
||||||
|
|||||||
+1
@@ -18,6 +18,7 @@ where advanced options include:
|
|||||||
-Xplugin <path> Load plugins from the given classpath
|
-Xplugin <path> Load plugins from the given classpath
|
||||||
-Xmulti-platform Enable experimental language support for multi-platform projects
|
-Xmulti-platform Enable experimental language support for multi-platform projects
|
||||||
-Xno-check-impl Do not check presence of 'impl' modifier in 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
|
-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.
|
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: -Xabcdefghijklm
|
||||||
warning: flag is not supported by this version of the compiler: -Xnopqrstuvwxyz
|
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: 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
|
OK
|
||||||
|
|||||||
+1
@@ -1,2 +1,3 @@
|
|||||||
info: Kotlin Compiler version $VERSION$
|
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
|
OK
|
||||||
|
|||||||
@@ -87,6 +87,9 @@ public abstract class KotlinIntegrationTestBase extends TestCaseWithTmpdir {
|
|||||||
content = normalizePath(content, getKotlinProjectHome(), "[KotlinProjectHome]");
|
content = normalizePath(content, getKotlinProjectHome(), "[KotlinProjectHome]");
|
||||||
content = content.replaceAll(Pattern.quote(KotlinCompilerVersion.VERSION), "[KotlinVersion]");
|
content = content.replaceAll(Pattern.quote(KotlinCompilerVersion.VERSION), "[KotlinVersion]");
|
||||||
content = StringUtil.convertLineSeparators(content);
|
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;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,12 +74,13 @@ public abstract class AbstractCliTest extends TestCaseWithTmpdir {
|
|||||||
@NotNull BinaryVersion version
|
@NotNull BinaryVersion version
|
||||||
) {
|
) {
|
||||||
String testDataAbsoluteDir = new File(testDataDir).getAbsolutePath();
|
String testDataAbsoluteDir = new File(testDataDir).getAbsolutePath();
|
||||||
String normalizedOutputWithoutExitCode = pureOutput
|
String normalizedOutputWithoutExitCode = StringUtil.convertLineSeparators(pureOutput)
|
||||||
.replace(testDataAbsoluteDir, "$TESTDATA_DIR$")
|
.replace(testDataAbsoluteDir, "$TESTDATA_DIR$")
|
||||||
.replace(FileUtil.toSystemIndependentName(testDataAbsoluteDir), "$TESTDATA_DIR$")
|
.replace(FileUtil.toSystemIndependentName(testDataAbsoluteDir), "$TESTDATA_DIR$")
|
||||||
.replace(PathUtil.getKotlinPathsForDistDirectory().getHomePath().getAbsolutePath(), "$PROJECT_DIR$")
|
.replace(PathUtil.getKotlinPathsForDistDirectory().getHomePath().getAbsolutePath(), "$PROJECT_DIR$")
|
||||||
.replace("expected version is " + version, "expected version is $ABI_VERSION$")
|
.replace("expected version is " + version, "expected version is $ABI_VERSION$")
|
||||||
.replace("\\", "/")
|
.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$");
|
.replace(KotlinCompilerVersion.VERSION, "$VERSION$");
|
||||||
|
|
||||||
return normalizedOutputWithoutExitCode + exitCode;
|
return normalizedOutputWithoutExitCode + exitCode;
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ public abstract class CompilerSmokeTestBase extends KotlinIntegrationTestBase {
|
|||||||
javaArgs.add("org.jetbrains.kotlin.cli.jvm.K2JVMCompiler");
|
javaArgs.add("org.jetbrains.kotlin.cli.jvm.K2JVMCompiler");
|
||||||
|
|
||||||
Collections.addAll(javaArgs, arguments);
|
Collections.addAll(javaArgs, arguments);
|
||||||
|
javaArgs.add("-Xskip-java-check");
|
||||||
|
|
||||||
return run(logName, ArrayUtil.toStringArray(javaArgs));
|
return run(logName, ArrayUtil.toStringArray(javaArgs));
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -39,7 +39,7 @@ abstract class AbstractMultiPlatformIntegrationTest : KtUsefulTestCase() {
|
|||||||
|
|
||||||
val result = buildString {
|
val result = buildString {
|
||||||
val (commonOutput, commonExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2MetadataCompiler(), listOf(
|
val (commonOutput, commonExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2MetadataCompiler(), listOf(
|
||||||
commonSrc.absolutePath, "-d", commonDest.absolutePath
|
commonSrc.absolutePath, "-d", commonDest.absolutePath, "-Xskip-java-check"
|
||||||
))
|
))
|
||||||
appendln("-- Common --")
|
appendln("-- Common --")
|
||||||
appendln("Exit code: $commonExitCode")
|
appendln("Exit code: $commonExitCode")
|
||||||
@@ -50,7 +50,7 @@ abstract class AbstractMultiPlatformIntegrationTest : KtUsefulTestCase() {
|
|||||||
val (jvmOutput, jvmExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2JVMCompiler(), listOf(
|
val (jvmOutput, jvmExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2JVMCompiler(), listOf(
|
||||||
jvmSrc.absolutePath, commonSrc.absolutePath,
|
jvmSrc.absolutePath, commonSrc.absolutePath,
|
||||||
"-d", jvmDest.absolutePath,
|
"-d", jvmDest.absolutePath,
|
||||||
"-Xmulti-platform"
|
"-Xmulti-platform", "-Xskip-java-check"
|
||||||
))
|
))
|
||||||
appendln("-- JVM --")
|
appendln("-- JVM --")
|
||||||
appendln("Exit code: $jvmExitCode")
|
appendln("Exit code: $jvmExitCode")
|
||||||
@@ -62,7 +62,7 @@ abstract class AbstractMultiPlatformIntegrationTest : KtUsefulTestCase() {
|
|||||||
val (jsOutput, jsExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2JSCompiler(), listOf(
|
val (jsOutput, jsExitCode) = AbstractCliTest.executeCompilerGrabOutput(K2JSCompiler(), listOf(
|
||||||
jsSrc.absolutePath, commonSrc.absolutePath,
|
jsSrc.absolutePath, commonSrc.absolutePath,
|
||||||
"-output", jsDest.absolutePath,
|
"-output", jsDest.absolutePath,
|
||||||
"-Xmulti-platform"
|
"-Xmulti-platform", "-Xskip-java-check"
|
||||||
))
|
))
|
||||||
appendln("-- JS --")
|
appendln("-- JS --")
|
||||||
appendln("Exit code: $jsExitCode")
|
appendln("Exit code: $jsExitCode")
|
||||||
|
|||||||
Reference in New Issue
Block a user