diff options
author | 2017-10-05 05:06:05 +0200 | |
---|---|---|
committer | 2017-10-06 19:46:18 +0200 | |
commit | 3c16191b63a4c184982c7416a04158f09f225517 (patch) | |
tree | f40b68e65010aa2a58969870dc45508d449ff11a | |
parent | 9ae2adc3e756ceab641930e79518b40364cb0bc3 (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
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); } |