Skylark error messages now include a stack trace.
This means that some tests had to be changed from using exact equality of error messages to working with contains() / startsWith().
--
MOS_MIGRATED_REVID=100923593
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
index 1b98a27..e6ae8a0 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
@@ -70,8 +70,12 @@
*/
public static Object eval(Object objValue, String name, Location loc) throws EvalException {
if (objValue instanceof ClassObject) {
- Object result = ((ClassObject) objValue).getValue(name);
-
+ Object result = null;
+ try {
+ result = ((ClassObject) objValue).getValue(name);
+ } catch (IllegalArgumentException ex) {
+ throw new EvalException(loc, ex);
+ }
// ClassObjects may have fields that are annotated with @SkylarkCallable.
// Since getValue() does not know about those, we cannot expect that result is a valid object.
if (result != null) {