diff options
author | 2015-09-03 13:27:06 +0000 | |
---|---|---|
committer | 2015-09-03 14:42:05 +0000 | |
commit | 494eca9cf1ad0b1baeebb8a1f05cd0f9b69d03fb (patch) | |
tree | d3c3a39fc35f919c4f86da08108f212a34c006f8 /src/main/java/com/google/devtools/build/lib/syntax | |
parent | f1ac09940559008e0537ef35b0400093d17ea194 (diff) |
Fix a bug in SyntaxTreeVisitor to handle return statements.
--
MOS_MIGRATED_REVID=102237430
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/Parser.java | 8 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/SyntaxTreeVisitor.java | 4 |
2 files changed, 10 insertions, 2 deletions
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 bbed96e332..67c9ceb3fb 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.Iterator; 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 @@ class Parser { 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()) { diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SyntaxTreeVisitor.java b/src/main/java/com/google/devtools/build/lib/syntax/SyntaxTreeVisitor.java index 67690617cd..2e0f19d4ff 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/SyntaxTreeVisitor.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/SyntaxTreeVisitor.java @@ -117,6 +117,10 @@ public class SyntaxTreeVisitor { visitAll(node.getStatements()); } + public void visit(ReturnStatement node) { + visit(node.getReturnExpression()); + } + public void visit(DictionaryLiteral node) { visitAll(node.getEntries()); } |