aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar brandjon <brandjon@google.com>2017-10-05 05:06:05 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-10-06 19:46:18 +0200
commit3c16191b63a4c184982c7416a04158f09f225517 (patch)
treef40b68e65010aa2a58969870dc45508d449ff11a
parent9ae2adc3e756ceab641930e79518b40364cb0bc3 (diff)
Use SkylarkSemantics in place of options class in the interpreter
Mainly this just means using getters instead of fields to access option values. RELNOTES: None PiperOrigin-RevId: 171101597
-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
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/AbstractComprehension.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Environment.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Eval.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Printer.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java8
15 files changed, 57 insertions, 47 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"
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/AbstractComprehension.java b/src/main/java/com/google/devtools/build/lib/syntax/AbstractComprehension.java
index 9c0b4959e6..7bdac4d93e 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/AbstractComprehension.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/AbstractComprehension.java
@@ -279,7 +279,7 @@ public abstract class AbstractComprehension extends Expression {
evalStep(env, collector, 0);
Object result = collector.getResult(env);
- if (!env.getSemantics().incompatibleComprehensionVariablesDoNotLeak) {
+ if (!env.getSemantics().incompatibleComprehensionVariablesDoNotLeak()) {
return result;
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java b/src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java
index 5c493ffde6..cef1d1d947 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BazelLibrary.java
@@ -129,7 +129,8 @@ public class BazelLibrary {
throws EvalException {
Order order;
try {
- order = Order.parse(orderString, env.getSemantics().incompatibleDisallowSetConstructor);
+ order = Order.parse(
+ orderString, env.getSemantics().incompatibleDisallowSetConstructor());
} catch (IllegalArgumentException ex) {
throw new EvalException(loc, ex);
}
@@ -204,7 +205,7 @@ public class BazelLibrary {
new BuiltinFunction("set") {
public SkylarkNestedSet invoke(Object items, String order, Location loc, Environment env)
throws EvalException {
- if (env.getSemantics().incompatibleDisallowSetConstructor) {
+ if (env.getSemantics().incompatibleDisallowSetConstructor()) {
throw new EvalException(
loc,
"The `set` constructor for depsets is deprecated and will be removed. Please use "
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
index bd416a77b4..920ef9a5f1 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
@@ -85,7 +85,7 @@ public final class BinaryOperatorExpression extends Expression {
/** Implements the "in" operator. */
private static boolean in(Object lval, Object rval, Environment env, Location location)
throws EvalException {
- if (env.getSemantics().incompatibleDepsetIsNotIterable && rval instanceof SkylarkNestedSet) {
+ if (env.getSemantics().incompatibleDepsetIsNotIterable() && rval instanceof SkylarkNestedSet) {
throw new EvalException(
location,
"argument of type '"
@@ -270,7 +270,7 @@ public final class BinaryOperatorExpression extends Expression {
throws EvalException {
// int + int
if (lval instanceof Integer && rval instanceof Integer) {
- if (env.getSemantics().incompatibleCheckedArithmetic) {
+ if (env.getSemantics().incompatibleCheckedArithmetic()) {
return Math.addExact((Integer) lval, (Integer) rval);
} else {
return ((Integer) lval).intValue() + ((Integer) rval).intValue();
@@ -293,7 +293,7 @@ public final class BinaryOperatorExpression extends Expression {
}
if ((lval instanceof MutableList) && (rval instanceof MutableList)) {
- if (isAugmented && env.getSemantics().incompatibleListPlusEqualsInplace) {
+ if (isAugmented && env.getSemantics().incompatibleListPlusEqualsInplace()) {
@SuppressWarnings("unchecked")
MutableList<Object> list = (MutableList) lval;
list.addAll((MutableList<?>) rval, location, env.mutability());
@@ -304,7 +304,7 @@ public final class BinaryOperatorExpression extends Expression {
}
if (lval instanceof SkylarkDict && rval instanceof SkylarkDict) {
- if (env.getSemantics().incompatibleDisallowDictPlus) {
+ if (env.getSemantics().incompatibleDisallowDictPlus()) {
throw new EvalException(
location,
"The `+` operator for dicts is deprecated and no longer supported. Please use the "
@@ -344,7 +344,7 @@ public final class BinaryOperatorExpression extends Expression {
private static Object minus(Object lval, Object rval, Environment env, Location location)
throws EvalException {
if (lval instanceof Integer && rval instanceof Integer) {
- if (env.getSemantics().incompatibleCheckedArithmetic) {
+ if (env.getSemantics().incompatibleCheckedArithmetic()) {
return Math.subtractExact((Integer) lval, (Integer) rval);
} else {
return ((Integer) lval).intValue() - ((Integer) rval).intValue();
@@ -369,7 +369,7 @@ public final class BinaryOperatorExpression extends Expression {
if (number != null) {
if (otherFactor instanceof Integer) {
- if (env.getSemantics().incompatibleCheckedArithmetic) {
+ if (env.getSemantics().incompatibleCheckedArithmetic()) {
return Math.multiplyExact(number, (Integer) otherFactor);
} else {
return number * ((Integer) otherFactor);
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java
index 2cecb1110c..815c7bda4a 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/DictionaryLiteral.java
@@ -73,7 +73,7 @@ public final class DictionaryLiteral extends Expression {
for (DictionaryEntryLiteral entry : entries) {
Object key = entry.key.eval(env);
Object val = entry.value.eval(env);
- if (env.getSemantics().incompatibleDictLiteralHasNoDuplicates && dict.containsKey(key)) {
+ if (env.getSemantics().incompatibleDictLiteralHasNoDuplicates() && dict.containsKey(key)) {
throw new EvalException(
loc, "Duplicated key " + Printer.repr(key) + " when creating dictionary");
}
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 8abf9428fd..967f4b52d2 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
@@ -28,7 +28,6 @@ import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.util.SpellChecker;
-import com.google.devtools.common.options.Options;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -421,7 +420,7 @@ public final class Environment implements Freezable {
/**
* The semantics options that affect how Skylark code is evaluated.
*/
- private final SkylarkSemanticsOptions semantics;
+ private final SkylarkSemantics semantics;
/**
* An EventHandler for errors and warnings. This is not used in the BUILD language,
@@ -593,7 +592,7 @@ public final class Environment implements Freezable {
private Environment(
Frame globalFrame,
Frame dynamicFrame,
- SkylarkSemanticsOptions semantics,
+ SkylarkSemantics semantics,
EventHandler eventHandler,
Map<String, Extension> importedExtensions,
@Nullable String fileContentHashCode,
@@ -619,7 +618,7 @@ public final class Environment implements Freezable {
private final Mutability mutability;
private Phase phase = Phase.ANALYSIS;
@Nullable private Frame parent;
- @Nullable private SkylarkSemanticsOptions semantics;
+ @Nullable private SkylarkSemantics semantics;
@Nullable private EventHandler eventHandler;
@Nullable private Map<String, Extension> importedExtensions;
@Nullable private String fileContentHashCode;
@@ -651,7 +650,13 @@ public final class Environment implements Freezable {
return this;
}
+ // TODO(brandjon): Remove this overload.
public Builder setSemantics(SkylarkSemanticsOptions semantics) {
+ this.semantics = semantics.toSkylarkSemantics();
+ return this;
+ }
+
+ public Builder setSemantics(SkylarkSemantics semantics) {
this.semantics = semantics;
return this;
}
@@ -685,7 +690,7 @@ public final class Environment implements Freezable {
Frame globalFrame = new Frame(mutability, parent);
Frame dynamicFrame = new Frame(mutability, null);
if (semantics == null) {
- semantics = Options.getDefaults(SkylarkSemanticsOptions.class);
+ semantics = SkylarkSemantics.DEFAULT_SEMANTICS;
}
if (importedExtensions == null) {
importedExtensions = ImmutableMap.of();
@@ -864,7 +869,7 @@ public final class Environment implements Freezable {
return knownGlobalVariables != null && knownGlobalVariables.contains(varname);
}
- public SkylarkSemanticsOptions getSemantics() {
+ public SkylarkSemantics getSemantics() {
return semantics;
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Eval.java b/src/main/java/com/google/devtools/build/lib/syntax/Eval.java
index 6fd1f281d1..e0fdbff39e 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Eval.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Eval.java
@@ -98,7 +98,7 @@ public class Eval {
}
FunctionSignature sig = node.getSignature().getSignature();
- if (env.getSemantics().incompatibleDisallowKeywordOnlyArgs
+ if (env.getSemantics().incompatibleDisallowKeywordOnlyArgs()
&& sig.getShape().getMandatoryNamedOnly() > 0) {
throw new EvalException(
node.getLocation(),
@@ -129,7 +129,7 @@ public class Eval {
}
void execLoad(LoadStatement node) throws EvalException, InterruptedException {
- if (env.getSemantics().incompatibleLoadArgumentIsLabel) {
+ if (env.getSemantics().incompatibleLoadArgumentIsLabel()) {
String s = node.getImport().getValue();
if (!s.startsWith("//") && !s.startsWith(":") && !s.startsWith("@")) {
throw new EvalException(
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java b/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
index 0e8a49f559..8dfe097abf 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/EvalUtils.java
@@ -334,7 +334,7 @@ public final class EvalUtils {
private static Collection<?> nestedSetToCollection(
SkylarkNestedSet set, Location loc, @Nullable Environment env) throws EvalException {
- if (env != null && env.getSemantics().incompatibleDepsetIsNotIterable) {
+ if (env != null && env.getSemantics().incompatibleDepsetIsNotIterable()) {
throw new EvalException(
loc,
"type 'depset' is not iterable. Use the `to_list()` method to get a list. Use "
@@ -403,7 +403,7 @@ public final class EvalUtils {
private static ImmutableList<String> split(String value, Location loc, @Nullable Environment env)
throws EvalException {
- if (env != null && env.getSemantics().incompatibleStringIsNotIterable) {
+ if (env != null && env.getSemantics().incompatibleStringIsNotIterable()) {
throw new EvalException(
loc,
"type 'string' is not iterable. You may still use `len` and string indexing. Use "
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
index 162cd2bfbb..ffe702686e 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/MethodLibrary.java
@@ -1616,7 +1616,8 @@ public class MethodLibrary {
private static final BuiltinFunction len =
new BuiltinFunction("len") {
public Integer invoke(Object x, Location loc, Environment env) throws EvalException {
- if (env.getSemantics().incompatibleDepsetIsNotIterable && x instanceof SkylarkNestedSet) {
+ if (env.getSemantics().incompatibleDepsetIsNotIterable()
+ && x instanceof SkylarkNestedSet) {
throw new EvalException(
loc,
EvalUtils.getDataTypeName(x)
@@ -2154,7 +2155,7 @@ public class MethodLibrary {
// As part of the integration test "skylark_flag_test.sh", if the
// "--internal_skylark_flag_test_canary" flag is enabled, append an extra marker string to
// the output.
- if (env.getSemantics().internalSkylarkFlagTestCanary) {
+ if (env.getSemantics().internalSkylarkFlagTestCanary()) {
msg += "<== skylark flag test ==>";
}
env.handleEvent(Event.debug(loc, msg));
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Printer.java b/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
index 1c902a6c2d..69d929e994 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Printer.java
@@ -77,7 +77,7 @@ public class Printer {
* @return new BasePrinter
*/
static BasePrinter getPrinter(Environment env, Appendable buffer) {
- if (env.getSemantics().incompatibleDescriptiveStringRepresentations) {
+ if (env.getSemantics().incompatibleDescriptiveStringRepresentations()) {
return new BasePrinter(buffer);
} else {
return new LegacyPrinter(buffer);
@@ -91,7 +91,7 @@ public class Printer {
* @return new BasePrinter
*/
static BasePrinter getPrinter(Environment env) {
- if (env.getSemantics().incompatibleDescriptiveStringRepresentations) {
+ if (env.getSemantics().incompatibleDescriptiveStringRepresentations()) {
return new BasePrinter();
} else {
return new LegacyPrinter();
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java
index 6ca614b397..f67643497e 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/UnaryOperatorExpression.java
@@ -74,7 +74,7 @@ public final class UnaryOperatorExpression extends Expression {
String.format(
"unsupported operand type for -: '%s'", EvalUtils.getDataTypeName(value)));
}
- if (env.getSemantics().incompatibleCheckedArithmetic) {
+ if (env.getSemantics().incompatibleCheckedArithmetic()) {
try {
return Math.negateExact((Integer) value);
} catch (ArithmeticException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java b/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java
index 95a1c84021..07e3e3bc71 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java
@@ -56,7 +56,7 @@ public final class ValidationEnvironment extends SyntaxTreeVisitor {
}
}
- private final SkylarkSemanticsOptions semantics;
+ private final SkylarkSemantics semantics;
private Block block;
private int loopCount;
@@ -137,7 +137,7 @@ public final class ValidationEnvironment extends SyntaxTreeVisitor {
@Override
public void visit(AbstractComprehension node) {
- if (semantics.incompatibleComprehensionVariablesDoNotLeak) {
+ if (semantics.incompatibleComprehensionVariablesDoNotLeak()) {
openBlock();
super.visit(node);
closeBlock();
@@ -165,7 +165,7 @@ public final class ValidationEnvironment extends SyntaxTreeVisitor {
@Override
public void visit(IfStatement node) {
- if (semantics.incompatibleDisallowToplevelIfStatement && isTopLevel()) {
+ if (semantics.incompatibleDisallowToplevelIfStatement() && isTopLevel()) {
throw new ValidationException(
node.getLocation(),
"if statements are not allowed at the top level. You may move it inside a function "
@@ -257,7 +257,7 @@ public final class ValidationEnvironment extends SyntaxTreeVisitor {
/** Validates the AST and runs static checks. */
private void validateAst(List<Statement> statements) {
// Check that load() statements are on top.
- if (semantics.incompatibleBzlDisallowLoadAfterStatement) {
+ if (semantics.incompatibleBzlDisallowLoadAfterStatement()) {
checkLoadAfterStatement(statements);
}