Skylark, JS: nicer error message when a source file has an unknown type. -- MOS_MIGRATED_REVID=112766003
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java b/src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java index 8ccdf64..fe5ac87 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java +++ b/src/main/java/com/google/devtools/build/lib/packages/AnalysisIssues.java
@@ -13,7 +13,6 @@ // limitations under the License. package com.google.devtools.build.lib.packages; -import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.util.Preconditions; @@ -57,6 +56,15 @@ } } + private void reportTo(StringBuilder sb) { + String msg = String.format(messageTemplate, arguments); + if (attribute == null) { + sb.append("ERROR: ").append(msg); + } else { + sb.append("ERROR: in attribute \"").append(attribute).append("\": ").append(msg); + } + } + @Override public String toString() { if (attribute == null) { @@ -102,8 +110,27 @@ } } + @Nullable + private String asString() { + if (entries == null) { + return null; + } + + StringBuilder sb = new StringBuilder(); + for (Entry e : entries) { + e.reportTo(sb); + } + return sb.toString(); + } + + @Override + public String getMessage() { + return asString(); + } + @Override public String toString() { - return "Errors during analysis:\n" + Joiner.on("\n").join(entries); + String s = asString(); + return s == null ? "" : s; } }