Reduce differences between Skylark and Build evaluation
Add some functions to Build, allow method calls.
--
MOS_MIGRATED_REVID=110835163
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 64ce78a..ec05688 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
@@ -602,8 +602,7 @@
function = (BaseFunction) fieldValue;
return function.call(
positionalArgs, ImmutableMap.<String, Object>copyOf(keyWordArgs), call, env);
- } else if (env.isSkylark()) {
- // Only allow native Java calls when using Skylark
+ } else {
// When calling a Java method, the name is not in the Environment,
// so evaluating 'func' would fail.
Class<?> objClass;
@@ -627,13 +626,6 @@
EvalUtils.getDataTypeNameFromClass(objClass)));
}
return callMethod(methodDescriptor, method, obj, positionalArgs.toArray(), location, env);
- } else {
- throw new EvalException(
- location,
- String.format(
- "%s is not defined on object of type '%s'",
- call.functionName(),
- EvalUtils.getDataTypeName(value)));
}
}