Fix a bug in SyntaxTreeVisitor to handle return statements.

--
MOS_MIGRATED_REVID=102237430
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
index bbed96e..67c9ceb 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
@@ -43,6 +43,8 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.annotation.Nullable;
+
 /**
  * Recursive descent parser for LL(2) BUILD language.
  * Loosely based on Python 2 grammar.
@@ -208,12 +210,14 @@
       Lexer lexer,
       EventHandler eventHandler,
       CachingPackageLocator locator,
-      ValidationEnvironment validationEnvironment) {
+      @Nullable ValidationEnvironment validationEnvironment) {
     Parser parser = new Parser(lexer, eventHandler, locator, SKYLARK);
     List<Statement> statements = parser.parseFileInput();
     boolean hasSemanticalErrors = false;
     try {
-      validationEnvironment.validateAst(statements);
+      if (validationEnvironment != null) {
+        validationEnvironment.validateAst(statements);
+      }
     } catch (EvalException e) {
       // Do not report errors caused by a previous parsing error, as it has already been reported.
       if (!e.isDueToIncompleteAST()) {