diff options
author | 2016-02-05 22:32:08 +0000 | |
---|---|---|
committer | 2016-02-07 11:33:27 +0000 | |
commit | 5e95a46074fa011461f58cb04521e4b7c2a5f3d5 (patch) | |
tree | b5f601749a3bb0efd6e07a30d1965628c82f7805 /src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java | |
parent | bc8b5e09ff667c7d0bf7186a7a207629e6d7bad5 (diff) |
WorkspaceASTFunction returns a list of ASTs so we can split the AST before load statements
Issue #824 Step 2.
--
MOS_MIGRATED_REVID=113986176
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java index fd948ee6f6..305d2e89fc 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java @@ -54,9 +54,10 @@ public class WorkspaceFileFunction implements SkyFunction { public SkyValue compute(SkyKey skyKey, Environment env) throws WorkspaceFileFunctionException, InterruptedException { - RootedPath workspaceRoot = ((WorkspaceFileKey) skyKey.argument()).getPath(); + WorkspaceFileKey key = (WorkspaceFileKey) skyKey.argument(); + RootedPath workspaceRoot = key.getPath(); WorkspaceASTValue workspaceASTValue = - (WorkspaceASTValue) env.getValue(new SkyKey(SkyFunctions.WORKSPACE_AST, workspaceRoot)); + (WorkspaceASTValue) env.getValue(WorkspaceASTValue.key(workspaceRoot)); if (workspaceASTValue == null) { return null; } @@ -75,14 +76,15 @@ public class WorkspaceFileFunction implements SkyFunction { directories.getEmbeddedBinariesRoot(), directories.getWorkspace()); try { - BuildFileAST ast = workspaceASTValue.getAST(); - PackageFunction.SkylarkImportResult importResult = - PackageFunction.fetchImportsFromBuildFile( - repoWorkspace, Label.EXTERNAL_PACKAGE_IDENTIFIER, ast, env, null); - if (importResult != null) { - parser.execute(ast, importResult.importMap); - } else { - return null; + for (BuildFileAST ast : workspaceASTValue.getASTs()) { + PackageFunction.SkylarkImportResult importResult = + PackageFunction.fetchImportsFromBuildFile( + repoWorkspace, Label.EXTERNAL_PACKAGE_IDENTIFIER, ast, env, null); + if (importResult != null) { + parser.execute(ast, importResult.importMap); + } else { + return null; + } } } catch (PackageFunctionException e) { throw new WorkspaceFileFunctionException(e, Transience.PERSISTENT); |