Add --incompatible_disable_data_transition for 'cfg = "data"' Skylark calls PiperOrigin-RevId: 202400312
diff --git a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java index 8d6e217..fc30103 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java +++ b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
@@ -124,6 +124,7 @@ "--incompatible_depset_is_not_iterable=" + rand.nextBoolean(), "--incompatible_depset_union=" + rand.nextBoolean(), "--incompatible_disable_objc_provider_resources=" + rand.nextBoolean(), + "--incompatible_disallow_data_transition=" + rand.nextBoolean(), "--incompatible_disallow_dict_plus=" + rand.nextBoolean(), "--incompatible_disallow_filetype=" + rand.nextBoolean(), "--incompatible_disallow_legacy_javainfo=" + rand.nextBoolean(), @@ -150,6 +151,7 @@ .incompatibleDepsetIsNotIterable(rand.nextBoolean()) .incompatibleDepsetUnion(rand.nextBoolean()) .incompatibleDisableObjcProviderResources(rand.nextBoolean()) + .incompatibleDisallowDataTransition(rand.nextBoolean()) .incompatibleDisallowDictPlus(rand.nextBoolean()) .incompatibleDisallowFileType(rand.nextBoolean()) .incompatibleDisallowLegacyJavaInfo(rand.nextBoolean())
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 1f75b1e..14d4de5 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
@@ -570,6 +570,20 @@ } @Test + public void incompatibleDataTransition() throws Exception { + ev = createEvaluationTestCase( + SkylarkSemantics.DEFAULT_SEMANTICS + .toBuilder() + .incompatibleDisallowDataTransition(true) + .build()); + ev.initialize(); + EvalException expected = + assertThrows(EvalException.class, () -> eval("attr.label(cfg = 'data')")); + assertThat(expected).hasMessageThat().contains( + "Using cfg = \"data\" on an attribute is a noop and no longer supported"); + } + + @Test public void testAttrValues() throws Exception { Attribute attr = buildAttribute("a1", "attr.string(values = ['ab', 'cd'])"); PredicateWithMessage<Object> predicate = attr.getAllowedValues();