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()) {