diff options
author | Miguel Alcon Pinto <malcon@google.com> | 2016-08-22 14:21:30 +0000 |
---|---|---|
committer | Philipp Wollermann <philwo@google.com> | 2016-08-22 14:49:42 +0000 |
commit | 927f3b280f1a37d6cbbae3ac69eb147b90358d54 (patch) | |
tree | 38cb211c9f5fc3fc49f8b4bc22a3da9bc0bda2de /src/main/java/com/google/devtools/build/lib/syntax/Environment.java | |
parent | 1a86d556e97622fd23fd217eafecbc2f562c1538 (diff) |
Move SkylarkImport from LoadStatement to BuildFileAST
This allow us to skip the import validation in non-build usages.
--
MOS_MIGRATED_REVID=130936612
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/Environment.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/Environment.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java index ec504a06ec..f7ea9f98ca 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java @@ -927,14 +927,18 @@ public final class Environment implements Freezable { @VisibleForTesting public List<Statement> parseFile(String... inputLines) { ParserInputSource input = ParserInputSource.create(Joiner.on("\n").join(inputLines), null); + List<Statement> statements; if (isSkylark) { Parser.ParseResult result = Parser.parseFileForSkylark(input, eventHandler); ValidationEnvironment valid = new ValidationEnvironment(this); valid.validateAst(result.statements, eventHandler); - return result.statements; + statements = result.statements; + } else { + statements = Parser.parseFile(input, eventHandler, /*parsePython=*/false).statements; } - - return Parser.parseFile(input, eventHandler, /*parsePython=*/ false).statements; + // Force the validation of imports + BuildFileAST.fetchLoads(statements, eventHandler); + return statements; } /** |