aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2015-12-23 13:31:44 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-12-28 19:43:53 +0000
commit88df1f5d274b20f60bfecbc776044b72aa5acc64 (patch)
tree817289d16d4779d3e57cd90be98e608a5e8ee761 /src/main/java/com/google/devtools/build/lib/syntax
parent4be58936360371f5c340c8cb12cad128dd1bf0fd (diff)
Reduce differences between Skylark and Build evaluation
Add some functions to Build, allow method calls. -- MOS_MIGRATED_REVID=110835163
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java6
2 files changed, 4 insertions, 12 deletions
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 64ce78a7be..ec05688f86 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 @@ public final class FuncallExpression extends Expression {
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 @@ public final class FuncallExpression extends Expression {
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)));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
index a603502416..50d85a9067 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
@@ -2089,13 +2089,13 @@ public class MethodLibrary {
static final List<BaseFunction> buildGlobalFunctions =
ImmutableList.<BaseFunction>of(
- bool, dict, enumerate, int_, len, list, minus, range, repr, reversed, select, sorted, str,
- zip);
+ all, any, bool, dict, enumerate, int_, len, list, max, min, minus, range, repr, reversed,
+ select, set, sorted, str, zip);
static final List<BaseFunction> skylarkGlobalFunctions =
ImmutableList.<BaseFunction>builder()
.addAll(buildGlobalFunctions)
- .add(all, any, dir, fail, getattr, hasattr, max, min, print, set, struct, type)
+ .add(dir, fail, getattr, hasattr, print, struct, type)
.build();
/**