aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools
diff options
context:
space:
mode:
authorGravatar cushon <cushon@google.com>2018-07-25 17:41:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-25 17:43:03 -0700
commitd424dee0ea34bb0b80803581d3234be84b3ccb1d (patch)
tree486527133cf740ddb2175eeefd032ec315fbcacb /src/java_tools
parentdc6f1cbe811fbd7f24dfa355e198a6bf8d173327 (diff)
Internal change
PiperOrigin-RevId: 206085005
Diffstat (limited to 'src/java_tools')
-rw-r--r--src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
index f4bb407975..e03a3f584f 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/BlazeJavacMain.java
@@ -17,6 +17,7 @@ package com.google.devtools.build.buildjar.javac;
import static com.google.common.collect.ImmutableList.toImmutableList;
import static com.google.common.collect.Iterables.getOnlyElement;
import static java.nio.charset.StandardCharsets.UTF_8;
+import static java.util.Comparator.comparing;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
@@ -130,7 +131,7 @@ public class BlazeJavacMain {
}
errWriter.flush();
return new BlazeJavacResult(
- ok, filterDiagnostics(ok, diagnostics.build()), errOutput.toString(), compiler);
+ ok, filterDiagnostics(diagnostics.build()), errOutput.toString(), compiler);
}
private static final ImmutableSet<String> IGNORED_DIAGNOSTIC_CODES =
@@ -148,19 +149,23 @@ public class BlazeJavacMain {
"compiler.warn.sun.proprietary");
private static ImmutableList<FormattedDiagnostic> filterDiagnostics(
- boolean ok, ImmutableList<FormattedDiagnostic> diagnostics) {
+ ImmutableList<FormattedDiagnostic> diagnostics) {
+ boolean werror =
+ diagnostics.stream().anyMatch(d -> d.getCode().equals("compiler.err.warnings.and.werror"));
return diagnostics
.stream()
- .filter(d -> shouldReportDiagnostic(ok, d))
+ .filter(d -> shouldReportDiagnostic(werror, d))
+ // Print errors last to make them more visible.
+ .sorted(comparing(FormattedDiagnostic::getKind).reversed())
.collect(toImmutableList());
}
- private static boolean shouldReportDiagnostic(boolean ok, FormattedDiagnostic diagnostic) {
+ private static boolean shouldReportDiagnostic(boolean werror, FormattedDiagnostic diagnostic) {
if (!IGNORED_DIAGNOSTIC_CODES.contains(diagnostic.getCode())) {
return true;
}
- if (!ok && diagnostic.getKind() != Diagnostic.Kind.NOTE) {
- // show compiler.warn.sun.proprietary in case we're running with -Werror
+ // show compiler.warn.sun.proprietary if we're running with -Werror
+ if (werror && diagnostic.getKind() != Diagnostic.Kind.NOTE) {
return true;
}
return false;