diff options
author | Jon Brandvein <brandjon@google.com> | 2017-03-01 16:01:39 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2017-03-01 16:17:01 +0000 |
commit | 34ffc4cab1b6cdde54e5945427b79c24fff39aa5 (patch) | |
tree | 21d7369043d9e0e1e6b7820a47851d32f7751a7a /src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java | |
parent | 9f15d156cf977c57ec0c88f4aed44b13053768fb (diff) |
Rollback of commit 01120026dc313ee7ad9ea95069a29252eb19173b.
--
PiperOrigin-RevId: 148888469
MOS_MIGRATED_REVID=148888469
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java | 45 |
1 files changed, 7 insertions, 38 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java index 08c6cf5395..fb68cb2fe6 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunction.java @@ -27,21 +27,18 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.events.Event; -import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.events.StoredEventHandler; import com.google.devtools.build.lib.packages.BuildFileNotFoundException; import com.google.devtools.build.lib.packages.PackageFactory; import com.google.devtools.build.lib.packages.RuleClassProvider; -import com.google.devtools.build.lib.packages.SkylarkExportable; +import com.google.devtools.build.lib.rules.SkylarkRuleClassFunctions; import com.google.devtools.build.lib.skyframe.SkylarkImportLookupValue.SkylarkImportLookupKey; -import com.google.devtools.build.lib.syntax.AssignmentStatement; import com.google.devtools.build.lib.syntax.BuildFileAST; import com.google.devtools.build.lib.syntax.Environment.Extension; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.LoadStatement; import com.google.devtools.build.lib.syntax.Mutability; import com.google.devtools.build.lib.syntax.SkylarkImport; -import com.google.devtools.build.lib.syntax.Statement; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.SkyFunction; @@ -370,7 +367,12 @@ public class SkylarkImportLookupFunction implements SkyFunction { .createSkylarkRuleClassEnvironment( extensionLabel, mutability, eventHandler, ast.getContentHashCode(), importMap) .setupOverride("native", packageFactory.getNativeModule(inWorkspace)); - execAndExport(ast, extensionLabel, eventHandler, extensionEnv); + ast.exec(extensionEnv, eventHandler); + try { + SkylarkRuleClassFunctions.exportRuleFunctionsAndAspects(extensionEnv, extensionLabel); + } catch (EvalException e) { + eventHandler.handle(Event.error(e.getLocation(), e.getMessage())); + } Event.replayEventsOn(env.getListener(), eventHandler.getEvents()); if (eventHandler.hasErrors()) { @@ -380,39 +382,6 @@ public class SkylarkImportLookupFunction implements SkyFunction { } } - public static void execAndExport(BuildFileAST ast, Label extensionLabel, - EventHandler eventHandler, - com.google.devtools.build.lib.syntax.Environment extensionEnv) throws InterruptedException { - ImmutableList<Statement> statements = ast.getStatements(); - for (Statement statement : statements) { - ast.execTopLevelStatement(statement, extensionEnv, eventHandler); - possiblyExport(statement, extensionLabel, eventHandler, extensionEnv); - } - } - - private static void possiblyExport(Statement statement, Label extensionLabel, - EventHandler eventHandler, - com.google.devtools.build.lib.syntax.Environment extensionEnv) { - if (!(statement instanceof AssignmentStatement)) { - return; - } - AssignmentStatement assignmentStatement = (AssignmentStatement) statement; - ImmutableSet<String> boundNames = assignmentStatement.getLValue().boundNames(); - for (String name : boundNames) { - Object lookup = extensionEnv.lookup(name); - if (lookup instanceof SkylarkExportable) { - try { - SkylarkExportable exportable = (SkylarkExportable) lookup; - if (!exportable.isExported()) { - exportable.export(extensionLabel, name); - } - } catch (EvalException e) { - eventHandler.handle(Event.error(e.getLocation(), e.getMessage())); - } - } - } - } - @Override public String extractTag(SkyKey skyKey) { return null; |