Flip incompatible_disable_depset_items to true.

The flag was introduced in August 2019 (before Bazel 1.0).

Next steps:
- update the bazelrc files that refer to the file
- remove the flag and simplify the depset code

Fixes https://github.com/bazelbuild/bazel/issues/9017

RELNOTES: incompatible_disable_depset_items is flipped
PiperOrigin-RevId: 400196736
diff --git a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
index a92fd0f..3cabd59 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
@@ -324,7 +324,7 @@
 
   @Option(
       name = "incompatible_disable_depset_items",
-      defaultValue = "false",
+      defaultValue = "true",
       documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
       effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
       metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
@@ -683,7 +683,7 @@
   public static final String INCOMPATIBLE_DEPSET_FOR_LIBRARIES_TO_LINK_GETTER =
       "+incompatible_depset_for_libraries_to_link_getter";
   public static final String INCOMPATIBLE_DISABLE_DEPSET_ITEMS =
-      "-incompatible_disable_depset_items";
+      "+incompatible_disable_depset_items";
   public static final String INCOMPATIBLE_DISABLE_TARGET_PROVIDER_FIELDS =
       "-incompatible_disable_target_provider_fields";
   public static final String INCOMPATIBLE_DISABLE_THIRD_PARTY_LICENSE_CHECKING =
diff --git a/src/test/java/com/google/devtools/build/lib/collect/nestedset/DepsetTest.java b/src/test/java/com/google/devtools/build/lib/collect/nestedset/DepsetTest.java
index 92637fe..c96c3a2 100644
--- a/src/test/java/com/google/devtools/build/lib/collect/nestedset/DepsetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/collect/nestedset/DepsetTest.java
@@ -103,6 +103,7 @@
 
   @Test
   public void testGetSetItems() throws Exception {
+    ev.setSemantics("--incompatible_disable_depset_items=false");
     ev.exec("s = depset(items = ['a', 'b'])");
     assertThat(get("s").getSet(String.class).toList()).containsExactly("a", "b").inOrder();
     assertThat(get("s").getSet(Object.class).toList()).containsExactly("a", "b").inOrder();
@@ -129,6 +130,7 @@
 
   @Test
   public void testToListItems() throws Exception {
+    ev.setSemantics("--incompatible_disable_depset_items=false");
     ev.exec("s = depset(items = ['a', 'b'])");
     assertThat(get("s").toList(String.class)).containsExactly("a", "b").inOrder();
     assertThat(get("s").toList(Object.class)).containsExactly("a", "b").inOrder();
@@ -150,6 +152,7 @@
 
   @Test
   public void testOrderItems() throws Exception {
+    ev.setSemantics("--incompatible_disable_depset_items=false");
     ev.exec("s = depset(items = ['a', 'b'], order='postorder')");
     assertThat(get("s").getSet(String.class).getOrder()).isEqualTo(Order.COMPILE_ORDER);
   }
@@ -169,7 +172,7 @@
 
   @Test
   public void testBadOrderItems() throws Exception {
-    ev.new Scenario()
+    ev.new Scenario("--incompatible_disable_depset_items=false")
         .testIfExactError(
             "Invalid order: non_existing", "depset(items = ['a'], order='non_existing')");
   }
@@ -182,25 +185,26 @@
 
   @Test
   public void testHomogeneousGenericType() throws Exception {
-    ev.exec("s = depset(['a', 'b', 'c'])");
+    ev.exec("s = depset(direct = ['a', 'b', 'c'])");
     assertThat(get("s").getElementType()).isEqualTo(ElementType.STRING);
   }
 
   @Test
   public void testHomogeneousGenericTypeDirect() throws Exception {
-    ev.exec("s = depset(['a', 'b', 'c'], transitive = [])");
+    ev.exec("s = depset(direct = ['a', 'b', 'c'], transitive = [])");
     assertThat(get("s").getElementType()).isEqualTo(ElementType.STRING);
   }
 
   @Test
   public void testHomogeneousGenericTypeItems() throws Exception {
+    ev.setSemantics("--incompatible_disable_depset_items=false");
     ev.exec("s = depset(items = ['a', 'b', 'c'], transitive = [])");
     assertThat(get("s").getElementType()).isEqualTo(ElementType.STRING);
   }
 
   @Test
   public void testHomogeneousGenericTypeTransitive() throws Exception {
-    ev.exec("s = depset(['a', 'b', 'c'], transitive = [depset(['x'])])");
+    ev.exec("s = depset(direct = ['a', 'b', 'c'], transitive = [depset(['x'])])");
     assertThat(get("s").getElementType()).isEqualTo(ElementType.STRING);
   }
 
@@ -208,7 +212,7 @@
   public void testTransitiveIncompatibleOrder() throws Exception {
     ev.checkEvalError(
         "Order 'postorder' is incompatible with order 'topological'",
-        "depset(['a', 'b'], order='postorder',",
+        "depset(direct = ['a', 'b'], order='postorder',",
         "       transitive = [depset(['c', 'd'], order='topological')])");
   }
 
@@ -229,7 +233,7 @@
 
   @Test
   public void testBadGenericTypeItems() throws Exception {
-    ev.new Scenario()
+    ev.new Scenario("--incompatible_disable_depset_items=false")
         .testIfExactError(
             "cannot add an item of type 'int' to a depset of 'string'", "depset(items = ['a', 5])");
   }
@@ -244,7 +248,7 @@
 
   @Test
   public void testLegacyAndNewApi() throws Exception {
-    ev.new Scenario()
+    ev.new Scenario("--incompatible_disable_depset_items=false")
         .testIfExactError(
             "Do not pass both 'direct' and 'items' argument to depset constructor.",
             "depset(['a', 'b'], direct = ['c', 'd'])");
@@ -252,7 +256,7 @@
 
   @Test
   public void testItemsAndTransitive() throws Exception {
-    ev.new Scenario()
+    ev.new Scenario("--incompatible_disable_depset_items=false")
         .testIfExactError(
             "for items, got depset, want sequence",
             "depset(items = depset(), transitive = [depset()])");
@@ -269,6 +273,7 @@
 
   @Test
   public void testTransitiveOrder() throws Exception {
+    ev.setSemantics("--incompatible_disable_depset_items=false");
     assertContainsInOrder("depset([], transitive=[depset(['a', 'b', 'c'])])", "a", "b", "c");
     assertContainsInOrder("depset(['a'], transitive = [depset(['b', 'c'])])", "b", "c", "a");
     assertContainsInOrder("depset(['a', 'b'], transitive = [depset(['c'])])", "c", "a", "b");
@@ -277,6 +282,7 @@
 
   @Test
   public void testTransitiveOrderItems() throws Exception {
+    ev.setSemantics("--incompatible_disable_depset_items=false");
     assertContainsInOrder("depset(items=[], transitive=[depset(['a', 'b', 'c'])])", "a", "b", "c");
     assertContainsInOrder("depset(items=['a'], transitive = [depset(['b', 'c'])])", "b", "c", "a");
     assertContainsInOrder("depset(items=['a', 'b'], transitive = [depset(['c'])])", "c", "a", "b");
@@ -385,7 +391,9 @@
   @Test
   public void testMutableDepsetElementsLegacyBehavior() throws Exception {
     // See b/144992997 and github.com/bazelbuild/bazel/issues/10313.
-    ev.setSemantics("--incompatible_always_check_depset_elements=false");
+    ev.setSemantics(
+        "--incompatible_always_check_depset_elements=false",
+        "--incompatible_disable_depset_items=false");
 
     // Test legacy depset(...) and new depset(direct=...) constructors.
 
diff --git a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkIntegrationTest.java
index beef56d..ff3d00d 100644
--- a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkIntegrationTest.java
@@ -371,7 +371,7 @@
         "test/starlark/extension.bzl",
         "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "def _impl(ctx):",
-        "  g = depset(ctx.attr.dep.output_groups['_hidden_top_level" + INTERNAL_SUFFIX + "'])",
+        "  g = ctx.attr.dep.output_groups['_hidden_top_level" + INTERNAL_SUFFIX + "']",
         "  return [MyInfo(result = g),",
         "      OutputGroupInfo(my_group = g)]",
         "my_rule = rule(implementation = _impl,",
diff --git a/src/test/shell/integration/py_args_escaping_test.sh b/src/test/shell/integration/py_args_escaping_test.sh
index af9e919..b4c91be 100755
--- a/src/test/shell/integration/py_args_escaping_test.sh
+++ b/src/test/shell/integration/py_args_escaping_test.sh
@@ -298,7 +298,7 @@
         use_default_shell_env = True,
         input_manifests = tool_input_mfs,
     )
-    return DefaultInfo(files = depset(items = [ctx.outputs.out]))
+    return DefaultInfo(files = depset(direct = [ctx.outputs.out]))
 
 run_host_configured = rule(
     implementation = _impl,