Fixed NPEs when using built in functions as rule implementations
--
MOS_MIGRATED_REVID=132066368
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BuiltinFunction.java b/src/main/java/com/google/devtools/build/lib/syntax/BuiltinFunction.java
index 533928c..b3a763f 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BuiltinFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BuiltinFunction.java
@@ -122,9 +122,10 @@
public Object call(Object[] args,
FuncallExpression ast, Environment env)
throws EvalException, InterruptedException {
- Preconditions.checkNotNull(ast);
Preconditions.checkNotNull(env);
- Location loc = ast.getLocation();
+
+ // ast is null when called from Java (as there's no Skylark call site).
+ Location loc = ast == null ? Location.BUILTIN : ast.getLocation();
// Add extra arguments, if needed
if (extraArgs != null) {