Remove the ExecutionPlatformConstraintsAllowed enum entirely.
Fixes #8134.
Closes #10182.
PiperOrigin-RevId: 279141108
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
index 94764bf..451c3bd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java
@@ -40,9 +40,9 @@
import com.google.devtools.build.lib.packages.Attribute.LabelListLateBoundDefault;
import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault.Resolver;
import com.google.devtools.build.lib.packages.AttributeMap;
+import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
-import com.google.devtools.build.lib.packages.RuleClass.ExecutionPlatformConstraintsAllowed;
import com.google.devtools.build.lib.packages.TestSize;
import com.google.devtools.build.lib.packages.Type;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
@@ -423,8 +423,12 @@
attr("data", LABEL_LIST)
.allowedFileTypes(FileTypeSet.ANY_FILE)
.dontCheckConstraints())
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET)
.add(attr(RuleClass.EXEC_PROPERTIES, Type.STRING_DICT).value(ImmutableMap.of()))
+ .add(
+ attr(RuleClass.EXEC_COMPATIBLE_WITH_ATTR, BuildType.LABEL_LIST)
+ .allowedFileTypes()
+ .nonconfigurable("Used in toolchain resolution")
+ .value(ImmutableList.of()))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
index 8ea1427..0628a15 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
@@ -63,7 +63,6 @@
import com.google.devtools.build.lib.packages.Provider;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
-import com.google.devtools.build.lib.packages.RuleClass.ExecutionPlatformConstraintsAllowed;
import com.google.devtools.build.lib.packages.RuleFactory;
import com.google.devtools.build.lib.packages.RuleFactory.BuildLangTypedAttributeValuesMap;
import com.google.devtools.build.lib.packages.RuleFactory.InvalidRuleException;
@@ -139,6 +138,11 @@
.mandatoryProviders(ImmutableList.of(TemplateVariableInfo.PROVIDER.id()))
.dontCheckConstraints())
.add(attr(RuleClass.EXEC_PROPERTIES, Type.STRING_DICT).value(ImmutableMap.of()))
+ .add(
+ attr(RuleClass.EXEC_COMPATIBLE_WITH_ATTR, BuildType.LABEL_LIST)
+ .allowedFileTypes()
+ .nonconfigurable("Used in toolchain resolution")
+ .value(ImmutableList.of()))
.build();
/** Parent rule class for executable non-test Skylark rules. */
@@ -227,7 +231,6 @@
toolsRepository
+ BaseRuleClasses.DEFAULT_COVERAGE_REPORT_GENERATOR_VALUE))))
.add(attr(":run_under", LABEL).value(RUN_UNDER))
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET)
.build();
}
@@ -404,8 +407,6 @@
bazelContext.getRepoMapping()));
}
- builder.executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET);
-
return new SkylarkRuleFunction(builder, type, attributes, ast.getLocation());
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index f4e1d18..af803b0 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -221,44 +221,6 @@
}
/**
- * Describes in which way a rule implementation allows additional execution platform constraints.
- */
- public enum ExecutionPlatformConstraintsAllowed {
- /**
- * Allows additional execution platform constraints to be added in the rule definition, which
- * apply to all targets of that rule.
- */
- PER_RULE(1),
- /**
- * Users are allowed to specify additional execution platform constraints for each target, using
- * the 'exec_compatible_with' attribute. This also allows setting constraints in the rule
- * definition, like PER_RULE.
- */
- PER_TARGET(2);
-
- private final int priority;
-
- ExecutionPlatformConstraintsAllowed(int priority) {
- this.priority = priority;
- }
-
- public int priority() {
- return priority;
- }
-
- public static ExecutionPlatformConstraintsAllowed highestPriority(
- ExecutionPlatformConstraintsAllowed first, ExecutionPlatformConstraintsAllowed... rest) {
- ExecutionPlatformConstraintsAllowed result = first;
- for (ExecutionPlatformConstraintsAllowed value : rest) {
- if (result == null || result.priority() < value.priority()) {
- result = value;
- }
- }
- return result;
- }
- }
-
- /**
* For Bazel's constraint system: the attribute that declares the set of environments a rule
* supports, overriding the defaults for their respective groups.
*/
@@ -724,8 +686,6 @@
private final Map<String, Attribute> attributes = new LinkedHashMap<>();
private final Set<Label> requiredToolchains = new HashSet<>();
private boolean useToolchainResolution = true;
- private ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed =
- ExecutionPlatformConstraintsAllowed.PER_RULE;
private Set<Label> executionPlatformConstraints = new HashSet<>();
private OutputFile.Kind outputFileKind = OutputFile.Kind.FILE;
@@ -760,21 +720,10 @@
addRequiredToolchains(parent.getRequiredToolchains());
useToolchainResolution = parent.useToolchainResolution;
-
- // Make sure we use the highest priority value from all parents.
- executionPlatformConstraintsAllowed(
- ExecutionPlatformConstraintsAllowed.highestPriority(
- executionPlatformConstraintsAllowed, parent.executionPlatformConstraintsAllowed()));
addExecutionPlatformConstraints(parent.getExecutionPlatformConstraints());
for (Attribute attribute : parent.getAttributes()) {
String attrName = attribute.getName();
- // TODO(https://github.com/bazelbuild/bazel/issues/8134): Define the attribute on a
- // standard base class and remove this check entirely.
- if (attrName.equals(RuleClass.EXEC_COMPATIBLE_WITH_ATTR)) {
- // Don't inherit: this will be re-created
- continue;
- }
Preconditions.checkArgument(
!attributes.containsKey(attrName) || attributes.get(attrName).equals(attribute),
"Attribute %s is inherited multiple times in %s ruleclass",
@@ -832,14 +781,7 @@
if (type == RuleClassType.PLACEHOLDER) {
Preconditions.checkNotNull(ruleDefinitionEnvironmentHashCode, this.name);
}
- if (executionPlatformConstraintsAllowed == ExecutionPlatformConstraintsAllowed.PER_TARGET
- && !this.contains(EXEC_COMPATIBLE_WITH_ATTR)) {
- this.add(
- attr(EXEC_COMPATIBLE_WITH_ATTR, BuildType.LABEL_LIST)
- .allowedFileTypes()
- .nonconfigurable("Used in toolchain resolution")
- .value(ImmutableList.of()));
- }
+
if (buildSetting != null) {
Type<?> type = buildSetting.getType();
Attribute.Builder<?> attrBuilder =
@@ -888,7 +830,6 @@
thirdPartyLicenseExistencePolicy,
requiredToolchains,
useToolchainResolution,
- executionPlatformConstraintsAllowed,
executionPlatformConstraints,
outputFileKind,
attributes.values(),
@@ -1398,20 +1339,6 @@
}
/**
- * Specifies whether targets of this rule can add additional constraints on the execution
- * platform selected. If this is {@link ExecutionPlatformConstraintsAllowed#PER_TARGET}, there
- * will be an attribute named {@code exec_compatible_with} that can be used to add these
- * constraints.
- *
- * <p>Please note that this value is not inherited by child rules, and must be re-set on them if
- * the same behavior is required.
- */
- public Builder executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed value) {
- this.executionPlatformConstraintsAllowed = value;
- return this;
- }
-
- /**
* Adds additional execution platform constraints that apply for all targets from this rule.
*
* <p>Please note that this value is inherited by child rules.
@@ -1559,7 +1486,6 @@
private final ImmutableSet<Label> requiredToolchains;
private final boolean useToolchainResolution;
- private final ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed;
private final ImmutableSet<Label> executionPlatformConstraints;
/**
@@ -1614,7 +1540,6 @@
ThirdPartyLicenseExistencePolicy thirdPartyLicenseExistencePolicy,
Set<Label> requiredToolchains,
boolean useToolchainResolution,
- ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed,
Set<Label> executionPlatformConstraints,
OutputFile.Kind outputFileKind,
Collection<Attribute> attributes,
@@ -1653,7 +1578,6 @@
this.thirdPartyLicenseExistencePolicy = thirdPartyLicenseExistencePolicy;
this.requiredToolchains = ImmutableSet.copyOf(requiredToolchains);
this.useToolchainResolution = useToolchainResolution;
- this.executionPlatformConstraintsAllowed = executionPlatformConstraintsAllowed;
this.executionPlatformConstraints = ImmutableSet.copyOf(executionPlatformConstraints);
this.buildSetting = buildSetting;
@@ -2548,10 +2472,6 @@
return useToolchainResolution;
}
- public ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed() {
- return executionPlatformConstraintsAllowed;
- }
-
public ImmutableSet<Label> getExecutionPlatformConstraints() {
return executionPlatformConstraints;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
index 0228a7a..a7c6e7f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
@@ -64,7 +64,7 @@
A list of <code>constraint_value</code>s that must be satisfied by an execution platform in
order for this toolchain to be selected for a target building on that platform.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
- .add(
+ .override(
attr(EXEC_COMPATIBLE_WITH_ATTR, BuildType.LABEL_LIST)
.mandatoryProviders(ConstraintValueInfo.PROVIDER.id())
.allowedFileTypes()
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index b49880d..f248720 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -67,7 +67,6 @@
import com.google.devtools.build.lib.packages.RawAttributeMapper;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.RuleClass;
-import com.google.devtools.build.lib.packages.RuleClass.ExecutionPlatformConstraintsAllowed;
import com.google.devtools.build.lib.packages.RuleClassProvider;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.TargetUtils;
@@ -506,9 +505,8 @@
ImmutableSet.Builder<Label> execConstraintLabels = new ImmutableSet.Builder<>();
execConstraintLabels.addAll(rule.getRuleClassObject().getExecutionPlatformConstraints());
-
- if (rule.getRuleClassObject().executionPlatformConstraintsAllowed()
- == ExecutionPlatformConstraintsAllowed.PER_TARGET) {
+ if (rule.getRuleClassObject()
+ .hasAttr(RuleClass.EXEC_COMPATIBLE_WITH_ATTR, BuildType.LABEL_LIST)) {
execConstraintLabels.addAll(
mapper.get(RuleClass.EXEC_COMPATIBLE_WITH_ATTR, BuildType.LABEL_LIST));
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
index 1439691..fbc4177 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/RuleClassTest.java
@@ -54,7 +54,6 @@
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
import com.google.devtools.build.lib.packages.RuleClass.Builder.ThirdPartyLicenseExistencePolicy;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory;
-import com.google.devtools.build.lib.packages.RuleClass.ExecutionPlatformConstraintsAllowed;
import com.google.devtools.build.lib.packages.RuleFactory.BuildLangTypedAttributeValuesMap;
import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase;
import com.google.devtools.build.lib.syntax.BaseFunction;
@@ -921,7 +920,6 @@
ThirdPartyLicenseExistencePolicy.USER_CONTROLLABLE,
/*requiredToolchains=*/ ImmutableSet.of(),
/*useToolchainResolution=*/ true,
- ExecutionPlatformConstraintsAllowed.PER_RULE,
/* executionPlatformConstraints= */ ImmutableSet.of(),
OutputFile.Kind.FILE,
ImmutableList.copyOf(attributes),
@@ -1074,12 +1072,11 @@
}
@Test
- public void testExecutionPlatformConstraints_perRule() throws Exception {
+ public void testExecutionPlatformConstraints() throws Exception {
RuleClass.Builder ruleClassBuilder =
new RuleClass.Builder("ruleClass", RuleClassType.NORMAL, false)
.factory(DUMMY_CONFIGURED_TARGET_FACTORY)
- .add(attr("tags", STRING_LIST))
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_RULE);
+ .add(attr("tags", STRING_LIST));
ruleClassBuilder.addExecutionPlatformConstraints(
Label.parseAbsolute("//constraints:cv1", ImmutableMap.of()),
@@ -1091,24 +1088,6 @@
.containsExactly(
Label.parseAbsolute("//constraints:cv1", ImmutableMap.of()),
Label.parseAbsolute("//constraints:cv2", ImmutableMap.of()));
- assertThat(ruleClass.hasAttr("exec_compatible_with", LABEL_LIST)).isFalse();
- }
-
- @Test
- public void testExecutionPlatformConstraints_perTarget() {
- RuleClass.Builder ruleClassBuilder =
- new RuleClass.Builder("ruleClass", RuleClassType.NORMAL, false)
- .factory(DUMMY_CONFIGURED_TARGET_FACTORY)
- .add(attr("tags", STRING_LIST));
-
- ruleClassBuilder.executionPlatformConstraintsAllowed(
- ExecutionPlatformConstraintsAllowed.PER_TARGET);
-
- RuleClass ruleClass = ruleClassBuilder.build();
-
- assertThat(ruleClass.executionPlatformConstraintsAllowed())
- .isEqualTo(ExecutionPlatformConstraintsAllowed.PER_TARGET);
- assertThat(ruleClass.hasAttr("exec_compatible_with", LABEL_LIST)).isTrue();
}
@Test
@@ -1116,7 +1095,6 @@
RuleClass parentRuleClass =
new RuleClass.Builder("$parentRuleClass", RuleClassType.ABSTRACT, false)
.add(attr("tags", STRING_LIST))
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_RULE)
.addExecutionPlatformConstraints(
Label.parseAbsolute("//constraints:cv1", ImmutableMap.of()),
Label.parseAbsolute("//constraints:cv2", ImmutableMap.of()))
@@ -1131,7 +1109,6 @@
.containsExactly(
Label.parseAbsolute("//constraints:cv1", ImmutableMap.of()),
Label.parseAbsolute("//constraints:cv2", ImmutableMap.of()));
- assertThat(childRuleClass.hasAttr("exec_compatible_with", LABEL_LIST)).isFalse();
}
@Test
@@ -1144,7 +1121,6 @@
RuleClass.Builder childRuleClassBuilder =
new RuleClass.Builder("childRuleClass", RuleClassType.NORMAL, false, parentRuleClass)
.factory(DUMMY_CONFIGURED_TARGET_FACTORY)
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_RULE)
.addExecutionPlatformConstraints(
Label.parseAbsolute("//constraints:cv1", ImmutableMap.of()),
Label.parseAbsolute("//constraints:cv2", ImmutableMap.of()));
@@ -1155,92 +1131,6 @@
.containsExactly(
Label.parseAbsolute("//constraints:cv1", ImmutableMap.of()),
Label.parseAbsolute("//constraints:cv2", ImmutableMap.of()));
- assertThat(childRuleClass.hasAttr("exec_compatible_with", LABEL_LIST)).isFalse();
- }
-
- @Test
- public void testExecutionPlatformConstraints_inherit_parentAllowsPerTarget() {
- RuleClass parentRuleClass =
- new RuleClass.Builder("parentRuleClass", RuleClassType.NORMAL, false)
- .factory(DUMMY_CONFIGURED_TARGET_FACTORY)
- .add(attr("tags", STRING_LIST))
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET)
- .build();
-
- RuleClass.Builder childRuleClassBuilder =
- new RuleClass.Builder("childRuleClass", RuleClassType.NORMAL, false, parentRuleClass)
- .factory(DUMMY_CONFIGURED_TARGET_FACTORY);
-
- RuleClass childRuleClass = childRuleClassBuilder.build();
-
- assertThat(childRuleClass.executionPlatformConstraintsAllowed())
- .isEqualTo(ExecutionPlatformConstraintsAllowed.PER_TARGET);
- assertThat(childRuleClass.hasAttr("exec_compatible_with", LABEL_LIST)).isTrue();
- }
-
- @Test
- public void testExecutionPlatformConstraints_inherit_multipleParents() {
- RuleClass parentRuleClass1 =
- new RuleClass.Builder("parentRuleClass1", RuleClassType.NORMAL, false)
- .factory(DUMMY_CONFIGURED_TARGET_FACTORY)
- .add(attr("tags", STRING_LIST))
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET)
- .build();
- RuleClass parentRuleClass2 =
- new RuleClass.Builder("$parentRuleClass2", RuleClassType.ABSTRACT, false)
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_RULE)
- .build();
-
- RuleClass.Builder childRuleClassBuilder =
- new RuleClass.Builder(
- "childRuleClass", RuleClassType.NORMAL, false, parentRuleClass1, parentRuleClass2)
- .factory(DUMMY_CONFIGURED_TARGET_FACTORY);
-
- RuleClass childRuleClass = childRuleClassBuilder.build();
-
- assertThat(childRuleClass.executionPlatformConstraintsAllowed())
- .isEqualTo(ExecutionPlatformConstraintsAllowed.PER_TARGET);
- assertThat(childRuleClass.hasAttr("exec_compatible_with", LABEL_LIST)).isTrue();
- }
-
- @Test
- public void testExecutionPlatformConstraints_inherit_parentAllowsPerTarget_override() {
- RuleClass parentRuleClass =
- new RuleClass.Builder("parentRuleClass", RuleClassType.NORMAL, false)
- .factory(DUMMY_CONFIGURED_TARGET_FACTORY)
- .add(attr("tags", STRING_LIST))
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET)
- .build();
-
- RuleClass.Builder childRuleClassBuilder =
- new RuleClass.Builder("childRuleClass", RuleClassType.NORMAL, false, parentRuleClass)
- .factory(DUMMY_CONFIGURED_TARGET_FACTORY)
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_RULE);
-
- RuleClass childRuleClass = childRuleClassBuilder.build();
-
- assertThat(childRuleClass.executionPlatformConstraintsAllowed())
- .isEqualTo(ExecutionPlatformConstraintsAllowed.PER_RULE);
- }
-
- @Test
- public void testExecutionPlatformConstraints_inherit_childAllowsPerTarget() {
- RuleClass parentRuleClass =
- new RuleClass.Builder("$parentRuleClass", RuleClassType.ABSTRACT, false)
- .add(attr("tags", STRING_LIST))
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_RULE)
- .build();
-
- RuleClass.Builder childRuleClassBuilder =
- new RuleClass.Builder("childRuleClass", RuleClassType.NORMAL, false, parentRuleClass)
- .factory(DUMMY_CONFIGURED_TARGET_FACTORY)
- .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET);
-
- RuleClass childRuleClass = childRuleClassBuilder.build();
-
- assertThat(childRuleClass.executionPlatformConstraintsAllowed())
- .isEqualTo(ExecutionPlatformConstraintsAllowed.PER_TARGET);
- assertThat(childRuleClass.hasAttr("exec_compatible_with", LABEL_LIST)).isTrue();
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index 7691e75..bb29a57 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -36,7 +36,6 @@
import com.google.devtools.build.lib.packages.RequiredProviders;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
-import com.google.devtools.build.lib.packages.RuleClass.ExecutionPlatformConstraintsAllowed;
import com.google.devtools.build.lib.packages.SkylarkAspectClass;
import com.google.devtools.build.lib.packages.SkylarkDefinedAspect;
import com.google.devtools.build.lib.packages.SkylarkInfo;
@@ -1733,19 +1732,6 @@
}
@Test
- public void testTargetsCanAddExecutionPlatformConstraints() throws Exception {
- registerDummyStarlarkFunction();
- scratch.file("test/BUILD", "toolchain_type(name = 'my_toolchain_type')");
- evalAndExport(
- "r1 = rule(impl, ",
- " toolchains=['//test:my_toolchain_type'],",
- ")");
- RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass();
- assertThat(c.executionPlatformConstraintsAllowed())
- .isEqualTo(ExecutionPlatformConstraintsAllowed.PER_TARGET);
- }
-
- @Test
public void testRuleFunctionReturnsNone() throws Exception {
scratch.file("test/rule.bzl",
"def _impl(ctx):",
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
index f8b72ac..f5a2a8f 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java
@@ -620,8 +620,7 @@
"executable",
"stamp",
"heuristic_label_expansion",
- "kind",
- "exec_compatible_with");
+ "kind");
}
@Test