diff options
author | Laurent Le Brun <laurentlb@google.com> | 2015-12-23 13:31:44 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2015-12-28 19:43:53 +0000 |
commit | 88df1f5d274b20f60bfecbc776044b72aa5acc64 (patch) | |
tree | 817289d16d4779d3e57cd90be98e608a5e8ee761 /src/main/java/com/google/devtools/build/lib/syntax | |
parent | 4be58936360371f5c340c8cb12cad128dd1bf0fd (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.java | 10 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java | 6 |
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(); /** |