Disable the items parameter of the depset() contructor.
This is an incompatible change attached to new flag --incompatible_disable_depset_items.
See https://github.com/bazelbuild/bazel/issues/9017 for details.
RELNOTES: New incompatible flag --incompatible_disable_depset_items disables the "items" parameter in the Starlark depset constructor. Use "direct" and "transitive" parameters instead.
PiperOrigin-RevId: 263597718
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 14933b3..10718d6 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
@@ -136,6 +136,7 @@
"--incompatible_depset_union=" + rand.nextBoolean(),
"--incompatible_disable_target_provider_fields=" + rand.nextBoolean(),
"--incompatible_disable_deprecated_attr_params=" + rand.nextBoolean(),
+ "--incompatible_disable_depset_items=" + rand.nextBoolean(),
"--incompatible_disable_third_party_license_checking=" + rand.nextBoolean(),
"--incompatible_disallow_dict_plus=" + rand.nextBoolean(),
"--incompatible_disallow_empty_glob=" + rand.nextBoolean(),
@@ -192,6 +193,7 @@
.incompatibleDepsetUnion(rand.nextBoolean())
.incompatibleDisableTargetProviderFields(rand.nextBoolean())
.incompatibleDisableDeprecatedAttrParams(rand.nextBoolean())
+ .incompatibleDisableDepsetItems(rand.nextBoolean())
.incompatibleDisableThirdPartyLicenseChecking(rand.nextBoolean())
.incompatibleDisallowDictPlus(rand.nextBoolean())
.incompatibleDisallowEmptyGlob(rand.nextBoolean())
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
index 62875a7..5ea4cdd 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
@@ -766,4 +766,27 @@
new SkylarkTest("--incompatible_string_join_requires_strings=false")
.testEval("', '.join(['foo', 2])", "'foo, 2'");
}
+
+ @Test
+ public void testDepsetItemsKeywordAndPositional() throws Exception {
+ new SkylarkTest("--incompatible_disable_depset_items=false")
+ .testIfErrorContains(
+ "parameter 'items' cannot be specified both positionally and by keyword",
+ "depset([0, 1], 'default', items=[0,1])");
+ }
+
+ @Test
+ public void testDisableDepsetItems() throws Exception {
+ new SkylarkTest("--incompatible_disable_depset_items")
+ .setUp("x = depset([0])", "y = depset(direct = [1])")
+ .testEval("depset([2, 3], transitive = [x, y]).to_list()", "[0, 1, 2, 3]")
+ .testIfErrorContains(
+ "parameter 'direct' cannot be specified both positionally and by keyword",
+ "depset([0, 1], 'default', direct=[0,1])")
+ .testIfErrorContains(
+ "parameter 'items' is deprecated and will be removed soon. "
+ + "It may be temporarily re-enabled by setting "
+ + "--incompatible_disable_depset_inputs=false",
+ "depset(items=[0,1])");
+ }
}
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkNestedSetTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkNestedSetTest.java
index 3a106da..e085738 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkNestedSetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkNestedSetTest.java
@@ -268,9 +268,7 @@
public void testTooManyPositionals() throws Exception {
new BothModesTest()
.testIfErrorContains(
- "expected no more than 2 positional arguments, but got 3, for call to function "
- + "depset(items = [], order = \"default\", direct = None, transitive = None)",
- "depset([], 'default', [])");
+ "expected no more than 2 positional arguments, but got 3", "depset([], 'default', [])");
}