aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkCustomCommandLine.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleImplementationFunctions.java6
4 files changed, 21 insertions, 18 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
index 110e323a5b..3488dfd759 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
@@ -60,7 +60,7 @@ import com.google.devtools.build.lib.syntax.SkylarkDict;
import com.google.devtools.build.lib.syntax.SkylarkList;
import com.google.devtools.build.lib.syntax.SkylarkMutable;
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.SkylarkSignatureProcessor;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.nio.charset.StandardCharsets;
@@ -81,17 +81,17 @@ import javax.annotation.Nullable;
public class SkylarkActionFactory implements SkylarkValue {
private final SkylarkRuleContext context;
- private final SkylarkSemanticsOptions skylarkSemanticsOptions;
+ private final SkylarkSemantics skylarkSemantics;
private RuleContext ruleContext;
/** Counter for actions.run_shell helper scripts. Every script must have a unique name. */
private int runShellOutputCounter = 0;
public SkylarkActionFactory(
SkylarkRuleContext context,
- SkylarkSemanticsOptions skylarkSemanticsOptions,
+ SkylarkSemantics skylarkSemantics,
RuleContext ruleContext) {
this.context = context;
- this.skylarkSemanticsOptions = skylarkSemanticsOptions;
+ this.skylarkSemantics = skylarkSemantics;
this.ruleContext = ruleContext;
}
@@ -1106,7 +1106,7 @@ public class SkylarkActionFactory implements SkylarkValue {
private Args(
@Nullable Mutability mutability,
- SkylarkSemanticsOptions skylarkSemantics,
+ SkylarkSemantics skylarkSemantics,
EventHandler eventHandler) {
this.mutability = mutability != null ? mutability : Mutability.IMMUTABLE;
this.commandLine = new SkylarkCustomCommandLine.Builder(skylarkSemantics, eventHandler);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkCustomCommandLine.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkCustomCommandLine.java
index 166713e06e..7c9d5e249e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkCustomCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkCustomCommandLine.java
@@ -32,7 +32,7 @@ import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.Mutability;
import com.google.devtools.build.lib.syntax.Printer;
import com.google.devtools.build.lib.syntax.SkylarkList;
-import com.google.devtools.build.lib.syntax.SkylarkSemanticsOptions;
+import com.google.devtools.build.lib.syntax.SkylarkSemantics;
import java.util.ArrayList;
import java.util.IllegalFormatException;
import java.util.List;
@@ -40,7 +40,7 @@ import javax.annotation.Nullable;
/** Supports ctx.actions.args() from Skylark. */
class SkylarkCustomCommandLine extends CommandLine {
- private final SkylarkSemanticsOptions skylarkSemantics;
+ private final SkylarkSemantics skylarkSemantics;
private final EventHandler eventHandler;
private final ImmutableList<Object> arguments;
@@ -116,7 +116,7 @@ class SkylarkCustomCommandLine extends CommandLine {
List<Object> arguments,
int argi,
ImmutableList.Builder<String> builder,
- SkylarkSemanticsOptions skylarkSemantics,
+ SkylarkSemantics skylarkSemantics,
EventHandler eventHandler)
throws CommandLineExpansionException {
final List<Object> mutatedValues;
@@ -282,7 +282,7 @@ class SkylarkCustomCommandLine extends CommandLine {
List<Object> arguments,
int argi,
ImmutableList.Builder<String> builder,
- SkylarkSemanticsOptions skylarkSemantics,
+ SkylarkSemantics skylarkSemantics,
EventHandler eventHandler)
throws CommandLineExpansionException {
Object object = arguments.get(argi++);
@@ -348,11 +348,11 @@ class SkylarkCustomCommandLine extends CommandLine {
}
static class Builder {
- private final SkylarkSemanticsOptions skylarkSemantics;
+ private final SkylarkSemantics skylarkSemantics;
private final ImmutableList.Builder<Object> arguments = ImmutableList.builder();
private final EventHandler eventHandler;
- public Builder(SkylarkSemanticsOptions skylarkSemantics, EventHandler eventHandler) {
+ public Builder(SkylarkSemantics skylarkSemantics, EventHandler eventHandler) {
this.skylarkSemantics = skylarkSemantics;
this.eventHandler = eventHandler;
}
@@ -430,7 +430,7 @@ class SkylarkCustomCommandLine extends CommandLine {
BaseFunction mapFn,
Object arg,
Location location,
- SkylarkSemanticsOptions skylarkSemantics,
+ SkylarkSemantics skylarkSemantics,
EventHandler eventHandler)
throws CommandLineExpansionException {
ImmutableList<Object> args = ImmutableList.of(arg);
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 fc82668063..e242d46b67 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
@@ -68,6 +68,7 @@ import com.google.devtools.build.lib.syntax.Runtime;
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;
@@ -181,7 +182,7 @@ public final class SkylarkRuleContext implements SkylarkValue {
private FragmentCollection fragments;
private FragmentCollection hostFragments;
private AspectDescriptor aspectDescriptor;
- private final SkylarkSemanticsOptions skylarkSemantics;
+ private final SkylarkSemantics skylarkSemantics;
private SkylarkDict<String, String> makeVariables;
private SkylarkRuleAttributesCollection attributesCollection;
@@ -198,17 +199,19 @@ 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)
throws EvalException, InterruptedException {
- this.actionFactory = new SkylarkActionFactory(this, skylarkSemantics, ruleContext);
+ this.actionFactory = new SkylarkActionFactory(
+ this, skylarkSemantics.toSkylarkSemantics(), 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;
+ this.skylarkSemantics = skylarkSemantics.toSkylarkSemantics();
if (aspectDescriptor == null) {
this.isForAspect = false;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleImplementationFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleImplementationFunctions.java
index 81e0ea52ac..6d1e73883f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleImplementationFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleImplementationFunctions.java
@@ -41,7 +41,7 @@ import com.google.devtools.build.lib.syntax.SkylarkList;
import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.SkylarkList.Tuple;
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.SkylarkSignatureProcessor;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.syntax.Type.ConversionException;
@@ -268,9 +268,9 @@ public class SkylarkRuleImplementationFunctions {
};
static void checkDeprecated(
- String newApi, String oldApi, Location loc, SkylarkSemanticsOptions semantics)
+ String newApi, String oldApi, Location loc, SkylarkSemantics semantics)
throws EvalException {
- if (semantics.incompatibleNewActionsApi) {
+ if (semantics.incompatibleNewActionsApi()) {
throw new EvalException(
loc,
"Use " + newApi + " instead of " + oldApi + ". \n"