Use null instead of CompilerMessageLocation.NO_LOCATION in MessageCollector

This commit is contained in:
Alexander Udalov
2017-03-31 17:39:03 +03:00
parent 411a8dc206
commit 861d9a1620
46 changed files with 279 additions and 390 deletions
@@ -33,10 +33,10 @@ internal open class GradleCompilerServicesFacadeImpl(
when (reportCategory) {
ReportCategory.OUTPUT_MESSAGE -> {
compilerMessageCollector.report(CompilerMessageSeverity.OUTPUT, message!!, CompilerMessageLocation.NO_LOCATION)
compilerMessageCollector.report(CompilerMessageSeverity.OUTPUT, message!!)
}
ReportCategory.EXCEPTION -> {
compilerMessageCollector.report(CompilerMessageSeverity.EXCEPTION, message!!, CompilerMessageLocation.NO_LOCATION)
compilerMessageCollector.report(CompilerMessageSeverity.EXCEPTION, message!!)
}
ReportCategory.COMPILER_MESSAGE -> {
val compilerSeverity = when (ReportSeverity.fromCode(severity)) {
@@ -46,7 +46,7 @@ internal open class GradleCompilerServicesFacadeImpl(
ReportSeverity.DEBUG -> CompilerMessageSeverity.LOGGING
else -> throw IllegalStateException("Unexpected compiler message report severity $severity")
}
if (message != null && attachment is CompilerMessageLocation) {
if (message != null && attachment is CompilerMessageLocation?) {
compilerMessageCollector.report(compilerSeverity, message, attachment)
}
else {
@@ -117,4 +117,4 @@ internal class GradleIncrementalCompilerServicesFacadeImpl(
registry.add(artifactFile, ArtifactDifference(timestamp, DirtyData()))
}
}
}
}
@@ -402,8 +402,8 @@ internal class GradleMessageCollector(val logger: Logger) : MessageCollector {
// Do nothing
}
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation) {
val text = with(StringBuilder()) {
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation?) {
val text = buildString {
append(when (severity) {
in CompilerMessageSeverity.VERBOSE -> "v"
in CompilerMessageSeverity.ERRORS -> {
@@ -416,18 +416,18 @@ internal class GradleMessageCollector(val logger: Logger) : MessageCollector {
})
append(": ")
val (path, line, column) = location
if (path != null) {
append(path)
append(": ")
if (line > 0 && column > 0) {
append("($line, $column): ")
if (location != null) {
val (path, line, column) = location
if (path != null) {
append(path)
append(": ")
if (line > 0 && column > 0) {
append("($line, $column): ")
}
}
}
append(message)
toString()
}
when (severity) {
in CompilerMessageSeverity.VERBOSE -> logger.debug(text)
@@ -35,7 +35,7 @@ class TestKotlinPluginRegistrar : ComponentRegistrar {
val collector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)!!
val option = configuration.get(TestPluginKeys.TestOption)!!
collector.report(CompilerMessageSeverity.INFO, "Plugin applied", CompilerMessageLocation.NO_LOCATION)
collector.report(CompilerMessageSeverity.INFO, "Option value: $option", CompilerMessageLocation.NO_LOCATION)
collector.report(CompilerMessageSeverity.INFO, "Plugin applied")
collector.report(CompilerMessageSeverity.INFO, "Option value: $option")
}
}
}
@@ -22,6 +22,7 @@ import kotlin.jvm.functions.Function1;
import org.apache.maven.plugin.logging.Log;
import org.codehaus.plexus.compiler.CompilerMessage;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation;
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity;
import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
@@ -56,9 +57,8 @@ public class MavenPluginLogMessageCollector implements MessageCollector {
}
@Override
public void report(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location) {
String path = location.getPath();
String position = path == null ? "" : path + ": (" + (location.getLine() + ", " + location.getColumn()) + ") ";
public void report(@NotNull CompilerMessageSeverity severity, @NotNull String message, @Nullable CompilerMessageLocation location) {
String position = location == null ? "" : location.getPath() + ": (" + (location.getLine() + ", " + location.getColumn()) + ") ";
String text = position + message;
@@ -81,6 +81,10 @@ public class MavenPluginLogMessageCollector implements MessageCollector {
public CompilerMessage invoke(Pair<CompilerMessageLocation, String> pair) {
CompilerMessageLocation location = pair.getFirst();
String message = pair.getSecond();
if (location == null) {
return new CompilerMessage(null, CompilerMessage.Kind.ERROR, 0, 0, 0, 0, message);
}
String lineContent = location.getLineContent();
int lineContentLength = lineContent == null ? 0 : lineContent.length();
@@ -13,7 +13,7 @@ public class KotlinCompilationFailureExceptionTest {
@Test
public void testNoLocation() throws Exception {
MavenPluginLogMessageCollector collector = new MavenPluginLogMessageCollector(new SilentLog());
collector.report(CompilerMessageSeverity.ERROR, "Something went wrong", CompilerMessageLocation.NO_LOCATION);
collector.report(CompilerMessageSeverity.ERROR, "Something went wrong", null);
try {
collector.throwKotlinCompilerException();