From 617f8ff0f502e911bba61d0c33390413bef9250c Mon Sep 17 00:00:00 2001 From: brandjon Date: Fri, 6 Oct 2017 06:07:13 +0200 Subject: Pass SkylarkSemantics through Skyframe instead of the options class Also remove the use of the @UsesOnlyCoreTypes annotation on SkylarkSemanticsOptions. It was only there to help mark that the options class was safe to put in Skyframe. RELNOTES: None PiperOrigin-RevId: 171248504 --- .../lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java | 4 ++-- .../devtools/build/lib/analysis/skylark/SkylarkRuleContext.java | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/analysis/skylark') diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java index 077b499795..d993620ff8 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleConfiguredTargetUtil.java @@ -47,7 +47,7 @@ import com.google.devtools.build.lib.syntax.Mutability; import com.google.devtools.build.lib.syntax.Runtime; import com.google.devtools.build.lib.syntax.SkylarkList; import com.google.devtools.build.lib.syntax.SkylarkNestedSet; -import com.google.devtools.build.lib.syntax.SkylarkSemanticsOptions; +import com.google.devtools.build.lib.syntax.SkylarkSemantics; import com.google.devtools.build.lib.syntax.SkylarkType; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.FileType; @@ -75,7 +75,7 @@ public final class SkylarkRuleConfiguredTargetUtil { public static ConfiguredTarget buildRule( RuleContext ruleContext, BaseFunction ruleImplementation, - SkylarkSemanticsOptions skylarkSemantics) + SkylarkSemantics skylarkSemantics) throws InterruptedException { String expectFailure = ruleContext.attributes().get("expect_failure", Type.STRING); SkylarkRuleContext skylarkRuleContext = null; diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java index e242d46b67..13dd231759 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java @@ -69,7 +69,6 @@ import com.google.devtools.build.lib.syntax.SkylarkDict; import com.google.devtools.build.lib.syntax.SkylarkIndexable; import com.google.devtools.build.lib.syntax.SkylarkList; import com.google.devtools.build.lib.syntax.SkylarkSemantics; -import com.google.devtools.build.lib.syntax.SkylarkSemanticsOptions; import com.google.devtools.build.lib.syntax.SkylarkType; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.syntax.Type.LabelClass; @@ -199,19 +198,17 @@ public final class SkylarkRuleContext implements SkylarkValue { * if it is for a rule. * @throws InterruptedException */ - // TODO(brandjon): Take in SkylarkSemantics instead of SkylarkSemanticsOptions. public SkylarkRuleContext(RuleContext ruleContext, @Nullable AspectDescriptor aspectDescriptor, - SkylarkSemanticsOptions skylarkSemantics) + SkylarkSemantics skylarkSemantics) throws EvalException, InterruptedException { - this.actionFactory = new SkylarkActionFactory( - this, skylarkSemantics.toSkylarkSemantics(), ruleContext); + this.actionFactory = new SkylarkActionFactory(this, skylarkSemantics, ruleContext); this.ruleContext = Preconditions.checkNotNull(ruleContext); this.ruleLabelCanonicalName = ruleContext.getLabel().getCanonicalForm(); this.fragments = new FragmentCollection(ruleContext, ConfigurationTransition.NONE); this.hostFragments = new FragmentCollection(ruleContext, ConfigurationTransition.HOST); this.aspectDescriptor = aspectDescriptor; - this.skylarkSemantics = skylarkSemantics.toSkylarkSemantics(); + this.skylarkSemantics = skylarkSemantics; if (aspectDescriptor == null) { this.isForAspect = false; -- cgit v1.2.3