aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
diff options
context:
space:
mode:
authorGravatar Miguel Alcon Pinto <malcon@google.com>2016-08-22 14:21:30 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-08-22 14:49:42 +0000
commit927f3b280f1a37d6cbbae3ac69eb147b90358d54 (patch)
tree38cb211c9f5fc3fc49f8b4bc22a3da9bc0bda2de /src/main/java/com/google/devtools/build/lib/syntax/Environment.java
parent1a86d556e97622fd23fd217eafecbc2f562c1538 (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.java10
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;
}
/**