Add MessageCollector#hasErrors, get rid of MessageSeverityCollector

Also fix duplicated wrapping of a message collector into a message severity
collector (in CLICompiler and in the beginning of doExecute in
K2JVMCompiler/K2JSCompiler)
This commit is contained in:
Alexander Udalov
2016-02-14 18:01:39 +03:00
parent c5e2f55ea7
commit 3c81bb4bfc
15 changed files with 107 additions and 111 deletions
@@ -687,11 +687,18 @@ private fun <T: Any> ExtraPropertiesExtension.getOrNull(id: String): T? {
}
class GradleMessageCollector(val logger: Logger, val outputCollector: OutputItemsCollector? = null) : MessageCollector {
private var hasErrors = false
override fun hasErrors() = hasErrors
override fun report(severity: CompilerMessageSeverity, message: String, location: CompilerMessageLocation) {
val text = with(StringBuilder()) {
append(when (severity) {
in CompilerMessageSeverity.VERBOSE -> "v"
in CompilerMessageSeverity.ERRORS -> "e"
in CompilerMessageSeverity.ERRORS -> {
hasErrors = true
"e"
}
CompilerMessageSeverity.INFO -> "i"
CompilerMessageSeverity.WARNING -> "w"
else -> throw IllegalArgumentException("Unknown CompilerMessageSeverity: $severity")
@@ -35,7 +35,6 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.repository.ComponentDependency;
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys;
import org.jetbrains.kotlin.cli.common.messages.MessageSeverityCollector;
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
@@ -158,7 +157,7 @@ public class ExecuteKotlinScriptMojo extends AbstractMojo {
CompilerConfiguration configuration = new CompilerConfiguration();
configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, new MessageSeverityCollector(messageCollector));
configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector);
List<File> deps = new ArrayList<File>();
@@ -24,11 +24,17 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector;
public class MavenPluginLogMessageCollector implements MessageCollector {
private final Log log;
private boolean hasErrors = false;
public MavenPluginLogMessageCollector(Log log) {
this.log = log;
}
@Override
public boolean hasErrors() {
return hasErrors;
}
@Override
public void report(@NotNull CompilerMessageSeverity severity, @NotNull String message, @NotNull CompilerMessageLocation location) {
String path = location.getPath();
@@ -39,6 +45,7 @@ public class MavenPluginLogMessageCollector implements MessageCollector {
if (CompilerMessageSeverity.VERBOSE.contains(severity)) {
log.debug(text);
} else if (CompilerMessageSeverity.ERRORS.contains(severity)) {
hasErrors = true;
log.error(text);
} else if (severity == CompilerMessageSeverity.INFO) {
log.info(text);