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;
}
}