Introduce CompilerMessageSeverity.STRONG_WARNING
This is a severity for mandatory warnings, i.e. those which should be reported in any case, even if there are compilation errors
This commit is contained in:
+27
-3
@@ -16,13 +16,16 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.cli.common.messages;
|
package org.jetbrains.kotlin.cli.common.messages;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
|
|
||||||
public enum CompilerMessageSeverity {
|
public enum CompilerMessageSeverity {
|
||||||
INFO,
|
|
||||||
ERROR,
|
|
||||||
WARNING,
|
|
||||||
EXCEPTION,
|
EXCEPTION,
|
||||||
|
ERROR,
|
||||||
|
STRONG_WARNING,
|
||||||
|
WARNING,
|
||||||
|
INFO,
|
||||||
LOGGING,
|
LOGGING,
|
||||||
OUTPUT;
|
OUTPUT;
|
||||||
|
|
||||||
@@ -32,4 +35,25 @@ public enum CompilerMessageSeverity {
|
|||||||
public boolean isError() {
|
public boolean isError() {
|
||||||
return ERRORS.contains(this);
|
return ERRORS.contains(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public String getPresentableName() {
|
||||||
|
switch (this) {
|
||||||
|
case EXCEPTION:
|
||||||
|
return "exception";
|
||||||
|
case ERROR:
|
||||||
|
return "error";
|
||||||
|
case STRONG_WARNING:
|
||||||
|
case WARNING:
|
||||||
|
return "warning";
|
||||||
|
case INFO:
|
||||||
|
return "info";
|
||||||
|
case LOGGING:
|
||||||
|
return "logging";
|
||||||
|
case OUTPUT:
|
||||||
|
return "output";
|
||||||
|
default:
|
||||||
|
throw new UnsupportedOperationException("Unknown severity: " + this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -68,7 +68,7 @@ public class GroupingMessageCollector implements MessageCollector {
|
|||||||
|
|
||||||
for (String path : sortedKeys()) {
|
for (String path : sortedKeys()) {
|
||||||
for (Message message : groupedMessages.get(path)) {
|
for (Message message : groupedMessages.get(path)) {
|
||||||
if (!hasErrors || message.severity.isError()) {
|
if (!hasErrors || message.severity.isError() || message.severity == CompilerMessageSeverity.STRONG_WARNING) {
|
||||||
delegate.report(message.severity, message.message, message.location);
|
delegate.report(message.severity, message.message, message.location);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-3
@@ -49,7 +49,7 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
|||||||
|
|
||||||
private static final String LINE_SEPARATOR = LineSeparator.getSystemLineSeparator().getSeparatorString();
|
private static final String LINE_SEPARATOR = LineSeparator.getSystemLineSeparator().getSeparatorString();
|
||||||
|
|
||||||
private static final Set<CompilerMessageSeverity> IMPORTANT_MESSAGE_SEVERITIES = EnumSet.of(EXCEPTION, ERROR, WARNING);
|
private static final Set<CompilerMessageSeverity> IMPORTANT_MESSAGE_SEVERITIES = EnumSet.of(EXCEPTION, ERROR, STRONG_WARNING, WARNING);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String renderPreamble() {
|
public String renderPreamble() {
|
||||||
@@ -83,7 +83,7 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
|||||||
Ansi ansi = Ansi.ansi()
|
Ansi ansi = Ansi.ansi()
|
||||||
.bold()
|
.bold()
|
||||||
.fg(severityColor(severity))
|
.fg(severityColor(severity))
|
||||||
.a(severity.name().toLowerCase())
|
.a(severity.getPresentableName())
|
||||||
.a(": ")
|
.a(": ")
|
||||||
.reset();
|
.reset();
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result.append(severity.name().toLowerCase());
|
result.append(severity.getPresentableName());
|
||||||
result.append(": ");
|
result.append(": ");
|
||||||
result.append(decapitalizeIfNeeded(message));
|
result.append(decapitalizeIfNeeded(message));
|
||||||
}
|
}
|
||||||
@@ -141,6 +141,8 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
|||||||
return Ansi.Color.RED;
|
return Ansi.Color.RED;
|
||||||
case ERROR:
|
case ERROR:
|
||||||
return Ansi.Color.RED;
|
return Ansi.Color.RED;
|
||||||
|
case STRONG_WARNING:
|
||||||
|
return Ansi.Color.YELLOW;
|
||||||
case WARNING:
|
case WARNING:
|
||||||
return Ansi.Color.YELLOW;
|
return Ansi.Color.YELLOW;
|
||||||
case INFO:
|
case INFO:
|
||||||
|
|||||||
@@ -28,7 +28,8 @@ public class XmlMessageRenderer implements MessageRenderer {
|
|||||||
@Override
|
@Override
|
||||||
public String render(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location) {
|
public String render(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location) {
|
||||||
StringBuilder out = new StringBuilder();
|
StringBuilder out = new StringBuilder();
|
||||||
out.append("<").append(severity.toString());
|
String tagName = severity.getPresentableName();
|
||||||
|
out.append("<").append(tagName);
|
||||||
if (location.getPath() != null) {
|
if (location.getPath() != null) {
|
||||||
out.append(" path=\"").append(e(location.getPath())).append("\"");
|
out.append(" path=\"").append(e(location.getPath())).append("\"");
|
||||||
out.append(" line=\"").append(location.getLine()).append("\"");
|
out.append(" line=\"").append(location.getLine()).append("\"");
|
||||||
@@ -38,11 +39,11 @@ public class XmlMessageRenderer implements MessageRenderer {
|
|||||||
|
|
||||||
out.append(e(message));
|
out.append(e(message));
|
||||||
|
|
||||||
out.append("</").append(severity.toString()).append(">\n");
|
out.append("</").append(tagName).append(">\n");
|
||||||
return out.toString();
|
return out.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String e(String str) {
|
private static String e(String str) {
|
||||||
return StringUtil.escapeXml(str);
|
return StringUtil.escapeXml(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -46,7 +46,7 @@ internal class CompileServicesFacadeMessageCollector(
|
|||||||
else -> {
|
else -> {
|
||||||
val reportSeverity = when (severity) {
|
val reportSeverity = when (severity) {
|
||||||
CompilerMessageSeverity.ERROR -> ReportSeverity.ERROR
|
CompilerMessageSeverity.ERROR -> ReportSeverity.ERROR
|
||||||
CompilerMessageSeverity.WARNING -> ReportSeverity.WARNING
|
CompilerMessageSeverity.WARNING, CompilerMessageSeverity.STRONG_WARNING -> ReportSeverity.WARNING
|
||||||
CompilerMessageSeverity.INFO -> ReportSeverity.INFO
|
CompilerMessageSeverity.INFO -> ReportSeverity.INFO
|
||||||
else -> ReportSeverity.DEBUG
|
else -> ReportSeverity.DEBUG
|
||||||
}
|
}
|
||||||
@@ -57,7 +57,7 @@ internal class CompileServicesFacadeMessageCollector(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hasErrors = hasErrors || severity == CompilerMessageSeverity.ERROR || severity == CompilerMessageSeverity.EXCEPTION
|
hasErrors = hasErrors || severity.isError
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun hasErrors(): Boolean = hasErrors
|
override fun hasErrors(): Boolean = hasErrors
|
||||||
|
|||||||
@@ -37,14 +37,20 @@ import org.jetbrains.jps.model.JpsProject
|
|||||||
import org.jetbrains.jps.model.java.JpsJavaClasspathKind
|
import org.jetbrains.jps.model.java.JpsJavaClasspathKind
|
||||||
import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||||
import org.jetbrains.jps.model.module.JpsModule
|
import org.jetbrains.jps.model.module.JpsModule
|
||||||
import org.jetbrains.kotlin.build.*
|
import org.jetbrains.kotlin.build.GeneratedFile
|
||||||
|
import org.jetbrains.kotlin.build.GeneratedJvmClass
|
||||||
|
import org.jetbrains.kotlin.build.JvmBuildMetaInfo
|
||||||
|
import org.jetbrains.kotlin.build.isModuleMappingFile
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil
|
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil
|
||||||
import org.jetbrains.kotlin.compilerRunner.*
|
import org.jetbrains.kotlin.compilerRunner.JpsCompilerEnvironment
|
||||||
|
import org.jetbrains.kotlin.compilerRunner.JpsKotlinCompilerRunner
|
||||||
|
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollector
|
||||||
|
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl
|
||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.config.CompilerRunnerConstants.INTERNAL_ERROR_PREFIX
|
import org.jetbrains.kotlin.config.CompilerRunnerConstants.INTERNAL_ERROR_PREFIX
|
||||||
import org.jetbrains.kotlin.daemon.common.isDaemonEnabled
|
import org.jetbrains.kotlin.daemon.common.isDaemonEnabled
|
||||||
@@ -58,8 +64,9 @@ import org.jetbrains.kotlin.modules.TargetId
|
|||||||
import org.jetbrains.kotlin.preloading.ClassCondition
|
import org.jetbrains.kotlin.preloading.ClassCondition
|
||||||
import org.jetbrains.kotlin.progress.CompilationCanceledException
|
import org.jetbrains.kotlin.progress.CompilationCanceledException
|
||||||
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
|
import org.jetbrains.kotlin.progress.CompilationCanceledStatus
|
||||||
import org.jetbrains.kotlin.build.JvmBuildMetaInfo
|
import org.jetbrains.kotlin.utils.JsLibraryUtils
|
||||||
import org.jetbrains.kotlin.utils.*
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
|
import org.jetbrains.kotlin.utils.keysToMap
|
||||||
import org.jetbrains.org.objectweb.asm.ClassReader
|
import org.jetbrains.org.objectweb.asm.ClassReader
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -766,7 +773,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) {
|
|||||||
return when (severity) {
|
return when (severity) {
|
||||||
INFO -> BuildMessage.Kind.INFO
|
INFO -> BuildMessage.Kind.INFO
|
||||||
ERROR, EXCEPTION -> BuildMessage.Kind.ERROR
|
ERROR, EXCEPTION -> BuildMessage.Kind.ERROR
|
||||||
WARNING -> BuildMessage.Kind.WARNING
|
WARNING, STRONG_WARNING -> BuildMessage.Kind.WARNING
|
||||||
LOGGING -> BuildMessage.Kind.PROGRESS
|
LOGGING -> BuildMessage.Kind.PROGRESS
|
||||||
else -> throw IllegalArgumentException("Unsupported severity: " + severity)
|
else -> throw IllegalArgumentException("Unsupported severity: " + severity)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -382,7 +382,7 @@ internal class GradleMessageCollector(val logger: Logger) : MessageCollector {
|
|||||||
"e"
|
"e"
|
||||||
}
|
}
|
||||||
CompilerMessageSeverity.INFO -> "i"
|
CompilerMessageSeverity.INFO -> "i"
|
||||||
CompilerMessageSeverity.WARNING -> "w"
|
CompilerMessageSeverity.WARNING, CompilerMessageSeverity.STRONG_WARNING -> "w"
|
||||||
else -> throw IllegalArgumentException("Unknown CompilerMessageSeverity: $severity")
|
else -> throw IllegalArgumentException("Unknown CompilerMessageSeverity: $severity")
|
||||||
})
|
})
|
||||||
append(": ")
|
append(": ")
|
||||||
@@ -404,7 +404,7 @@ internal class GradleMessageCollector(val logger: Logger) : MessageCollector {
|
|||||||
in CompilerMessageSeverity.VERBOSE -> logger.debug(text)
|
in CompilerMessageSeverity.VERBOSE -> logger.debug(text)
|
||||||
in CompilerMessageSeverity.ERRORS -> logger.error(text)
|
in CompilerMessageSeverity.ERRORS -> logger.error(text)
|
||||||
CompilerMessageSeverity.INFO -> logger.info(text)
|
CompilerMessageSeverity.INFO -> logger.info(text)
|
||||||
CompilerMessageSeverity.WARNING -> logger.warn(text)
|
CompilerMessageSeverity.WARNING, CompilerMessageSeverity.STRONG_WARNING -> logger.warn(text)
|
||||||
else -> throw IllegalArgumentException("Unknown CompilerMessageSeverity: $severity")
|
else -> throw IllegalArgumentException("Unknown CompilerMessageSeverity: $severity")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-1
@@ -47,10 +47,14 @@ class KotlinMessager(private val messageCollector: MessageCollector) : Messager
|
|||||||
errorCount++
|
errorCount++
|
||||||
CompilerMessageSeverity.ERROR
|
CompilerMessageSeverity.ERROR
|
||||||
}
|
}
|
||||||
Kind.WARNING, Kind.MANDATORY_WARNING -> {
|
Kind.WARNING -> {
|
||||||
warningCount++
|
warningCount++
|
||||||
CompilerMessageSeverity.WARNING
|
CompilerMessageSeverity.WARNING
|
||||||
}
|
}
|
||||||
|
Kind.MANDATORY_WARNING -> {
|
||||||
|
warningCount++
|
||||||
|
CompilerMessageSeverity.STRONG_WARNING
|
||||||
|
}
|
||||||
else -> CompilerMessageSeverity.LOGGING
|
else -> CompilerMessageSeverity.LOGGING
|
||||||
}
|
}
|
||||||
messageCollector.report(severity, msg.toString(), CompilerMessageLocation.NO_LOCATION)
|
messageCollector.report(severity, msg.toString(), CompilerMessageLocation.NO_LOCATION)
|
||||||
|
|||||||
Reference in New Issue
Block a user