aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Package.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java6
3 files changed, 13 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 8296c36f49..a7482bbb60 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -1509,12 +1509,14 @@ public class Package {
private static String conflictsWith(Target target) {
String message = "conflicts with existing ";
if (target instanceof OutputFile) {
- return message + "generated file from rule '"
- + ((OutputFile) target).getGeneratingRule().getName()
- + "'";
+ message +=
+ "generated file from rule '"
+ + ((OutputFile) target).getGeneratingRule().getName()
+ + "'";
} else {
- return message + target.getTargetKind();
+ message += target.getTargetKind();
}
+ return message + ", defined at " + target.getLocation();
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index e3468da0ea..dfbf43a025 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -580,12 +580,13 @@ public final class FuncallExpression extends Expression {
if (!(items instanceof Map<?, ?>)) {
throw new EvalException(
location,
- "argument after ** must be a dictionary, not " + EvalUtils.getDataTypeName(items));
+ "argument after ** must be a dictionary, not '" + EvalUtils.getDataTypeName(items) + "'");
}
for (Map.Entry<?, ?> entry : ((Map<?, ?>) items).entrySet()) {
if (!(entry.getKey() instanceof String)) {
throw new EvalException(
- location, "keywords must be strings, not " + EvalUtils.getDataTypeName(entry.getKey()));
+ location,
+ "keywords must be strings, not '" + EvalUtils.getDataTypeName(entry.getKey()) + "'");
}
addKeywordArg(kwargs, (String) entry.getKey(), entry.getValue(), duplicates);
}
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java b/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java
index 464e81cae4..2f29dfd1d4 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/FunctionTest.java
@@ -325,13 +325,15 @@ public class FunctionTest extends EvaluationTestCase {
@Test
public void testKwargsBadKey() throws Exception {
checkEvalError(
- "keywords must be strings, not int", "def func(a, b): return a + b", "func('a', **{3: 1})");
+ "keywords must be strings, not 'int'",
+ "def func(a, b): return a + b",
+ "func('a', **{3: 1})");
}
@Test
public void testKwargsIsNotDict() throws Exception {
checkEvalError(
- "argument after ** must be a dictionary, not int",
+ "argument after ** must be a dictionary, not 'int'",
"def func(a, b): return a + b",
"func('a', **42)");
}