Update tests to avoid implicit depset iteration

Progress towards https://github.com/bazelbuild/bazel/issues/5816

RELNOTES: None.
PiperOrigin-RevId: 249341642
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
index 1533fdb..1b8065d 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkDefinedAspectsTest.java
@@ -494,7 +494,7 @@
         "test/aspect.bzl",
         "def _impl(target, ctx):",
         "   g = target.output_group('_hidden_top_level" + INTERNAL_SUFFIX + "')",
-        "   return struct(output_groups = { 'my_result' : [ f for f in g] })",
+        "   return struct(output_groups = { 'my_result' : g.to_list() })",
         "",
         "MyAspect = aspect(",
         "   implementation=_impl,",
@@ -526,7 +526,7 @@
         "test/aspect.bzl",
         "def _impl(target, ctx):",
         "   g = target[OutputGroupInfo]._hidden_top_level" + INTERNAL_SUFFIX,
-        "   return [OutputGroupInfo(my_result= [ f for f in g])]",
+        "   return [OutputGroupInfo(my_result=g.to_list())]",
         "",
         "MyAspect = aspect(",
         "   implementation=_impl,",
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
index 7d1b2c8..c0b6ca4 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
@@ -332,7 +332,7 @@
         "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "def _impl(ctx):",
         "  f = ctx.attr.dep.output_group('_hidden_top_level" + INTERNAL_SUFFIX + "')",
-        "  g = list(f)",
+        "  g = f.to_list()",
         "  return [MyInfo(result = f),",
         "      OutputGroupInfo(my_group = g, my_empty_group = [])]",
         "my_rule = rule(implementation = _impl,",
@@ -361,7 +361,7 @@
         "load('//myinfo:myinfo.bzl', 'MyInfo')",
         "def _impl(ctx):",
         "  f = ctx.attr.dep[OutputGroupInfo]._hidden_top_level" + INTERNAL_SUFFIX,
-        "  g = list(f)",
+        "  g = f.to_list()",
         "  return [MyInfo(result = f),",
         "      OutputGroupInfo(my_group = g, my_empty_group = [])]",
         "my_rule = rule(implementation = _impl,",
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 9cac217..566e25c 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
@@ -1530,13 +1530,14 @@
     SkylarkRuleContext ruleContext = createRuleContext("//test:foo");
     Object filenames =
         evalRuleContextCode(
-            ruleContext, "[f.short_path for f in ruleContext.attr.dep.default_runfiles.files]");
+            ruleContext,
+            "[f.short_path for f in ruleContext.attr.dep.default_runfiles.files.to_list()]");
     assertThat(filenames).isInstanceOf(SkylarkList.class);
     SkylarkList filenamesList = (SkylarkList) filenames;
     assertThat(filenamesList).containsAtLeast("test/lib.py", "test/lib2.py");
     Object emptyFilenames =
         evalRuleContextCode(
-            ruleContext, "list(ruleContext.attr.dep.default_runfiles.empty_filenames)");
+            ruleContext, "ruleContext.attr.dep.default_runfiles.empty_filenames.to_list()");
     assertThat(emptyFilenames).isInstanceOf(SkylarkList.class);
     SkylarkList emptyFilenamesList = (SkylarkList) emptyFilenames;
     assertThat(emptyFilenamesList).containsExactly("test/__init__.py");
@@ -1544,7 +1545,7 @@
     SkylarkRuleContext ruleWithInitContext = createRuleContext("//test:foo_with_init");
     Object noEmptyFilenames =
         evalRuleContextCode(
-            ruleWithInitContext, "list(ruleContext.attr.dep.default_runfiles.empty_filenames)");
+            ruleWithInitContext, "ruleContext.attr.dep.default_runfiles.empty_filenames.to_list()");
     assertThat(noEmptyFilenames).isInstanceOf(SkylarkList.class);
     SkylarkList noEmptyFilenamesList = (SkylarkList) noEmptyFilenames;
     assertThat(noEmptyFilenamesList).isEmpty();
@@ -1587,7 +1588,7 @@
         evalRuleContextCode(
             ruleWithSymlinkContext,
             "[s.path for s in",
-            "ruleContext.attr.data[0].data_runfiles.symlinks]");
+            "ruleContext.attr.data[0].data_runfiles.symlinks.to_list()]");
     assertThat(symlinkPaths).isInstanceOf(SkylarkList.class);
     SkylarkList<String> symlinkPathsList = (SkylarkList<String>) symlinkPaths;
     assertThat(symlinkPathsList).containsExactly("symlink_test/a.py").inOrder();
@@ -1595,7 +1596,7 @@
         evalRuleContextCode(
             ruleWithSymlinkContext,
             "[s.target_file.short_path for s in",
-            "ruleContext.attr.data[0].data_runfiles.symlinks]");
+            "ruleContext.attr.data[0].data_runfiles.symlinks.to_list()]");
     assertThat(symlinkFilenames).isInstanceOf(SkylarkList.class);
     SkylarkList<String> symlinkFilenamesList = (SkylarkList<String>) symlinkFilenames;
     assertThat(symlinkFilenamesList).containsExactly("test/a.py").inOrder();
@@ -1638,7 +1639,7 @@
         evalRuleContextCode(
             ruleWithSymlinkContext,
             "[s.path for s in",
-            "ruleContext.attr.data[0].data_runfiles.symlinks]");
+            "ruleContext.attr.data[0].data_runfiles.symlinks.to_list()]");
     assertThat(symlinkPaths).isInstanceOf(SkylarkList.class);
     SkylarkList<String> symlinkPathsList = (SkylarkList<String>) symlinkPaths;
     assertThat(symlinkPathsList).containsExactly("symlink_test/a.py").inOrder();
@@ -1646,7 +1647,7 @@
         evalRuleContextCode(
             ruleWithSymlinkContext,
             "[s.target_file.short_path for s in",
-            "ruleContext.attr.data[0].data_runfiles.symlinks]");
+            "ruleContext.attr.data[0].data_runfiles.symlinks.to_list()]");
     assertThat(symlinkFilenames).isInstanceOf(SkylarkList.class);
     SkylarkList<String> symlinkFilenamesList = (SkylarkList<String>) symlinkFilenames;
     assertThat(symlinkFilenamesList).containsExactly("test/a.py").inOrder();
@@ -1690,7 +1691,7 @@
         evalRuleContextCode(
             ruleWithRootSymlinkContext,
             "[s.path for s in",
-            "ruleContext.attr.data[0].data_runfiles.root_symlinks]");
+            "ruleContext.attr.data[0].data_runfiles.root_symlinks.to_list()]");
     assertThat(rootSymlinkPaths).isInstanceOf(SkylarkList.class);
     SkylarkList<String> rootSymlinkPathsList = (SkylarkList<String>) rootSymlinkPaths;
     assertThat(rootSymlinkPathsList).containsExactly("root_symlink_test/a.py").inOrder();
@@ -1698,7 +1699,7 @@
         evalRuleContextCode(
             ruleWithRootSymlinkContext,
             "[s.target_file.short_path for s in",
-            "ruleContext.attr.data[0].data_runfiles.root_symlinks]");
+            "ruleContext.attr.data[0].data_runfiles.root_symlinks.to_list()]");
     assertThat(rootSymlinkFilenames).isInstanceOf(SkylarkList.class);
     SkylarkList<String> rootSymlinkFilenamesList = (SkylarkList<String>) rootSymlinkFilenames;
     assertThat(rootSymlinkFilenamesList).containsExactly("test/a.py").inOrder();
@@ -1742,7 +1743,7 @@
         evalRuleContextCode(
             ruleWithRootSymlinkContext,
             "[s.path for s in",
-            "ruleContext.attr.data[0].data_runfiles.root_symlinks]");
+            "ruleContext.attr.data[0].data_runfiles.root_symlinks.to_list()]");
     assertThat(rootSymlinkPaths).isInstanceOf(SkylarkList.class);
     SkylarkList<String> rootSymlinkPathsList = (SkylarkList<String>) rootSymlinkPaths;
     assertThat(rootSymlinkPathsList).containsExactly("root_symlink_test/a.py").inOrder();
@@ -1750,7 +1751,7 @@
         evalRuleContextCode(
             ruleWithRootSymlinkContext,
             "[s.target_file.short_path for s in",
-            "ruleContext.attr.data[0].data_runfiles.root_symlinks]");
+            "ruleContext.attr.data[0].data_runfiles.root_symlinks.to_list()]");
     assertThat(rootSymlinkFilenames).isInstanceOf(SkylarkList.class);
     SkylarkList<String> rootSymlinkFilenamesList = (SkylarkList<String>) rootSymlinkFilenames;
     assertThat(rootSymlinkFilenamesList).containsExactly("test/a.py").inOrder();
@@ -1851,7 +1852,7 @@
     Object mapping = eval("actions.by_file");
     assertThat(mapping).isInstanceOf(SkylarkDict.class);
     assertThat((SkylarkDict<?, ?>) mapping).hasSize(1);
-    update("file", eval("list(ruleContext.attr.dep.files)[0]"));
+    update("file", eval("ruleContext.attr.dep.files.to_list()[0]"));
     Object actionUnchecked = eval("actions.by_file[file]");
     assertThat(actionUnchecked).isInstanceOf(ActionAnalysisMetadata.class);
   }
@@ -1913,10 +1914,10 @@
     assertThat(eval("action2.content")).isEqualTo(Runtime.NONE);
     assertThat(eval("action1.substitutions")).isEqualTo(Runtime.NONE);
 
-    assertThat(eval("list(action1.inputs)")).isEqualTo(eval("[]"));
-    assertThat(eval("list(action1.outputs)")).isEqualTo(eval("[file1]"));
-    assertThat(eval("list(action2.inputs)")).isEqualTo(eval("[file1]"));
-    assertThat(eval("list(action2.outputs)")).isEqualTo(eval("[file2]"));
+    assertThat(eval("action1.inputs.to_list()")).isEqualTo(eval("[]"));
+    assertThat(eval("action1.outputs.to_list()")).isEqualTo(eval("[file1]"));
+    assertThat(eval("action2.inputs.to_list()")).isEqualTo(eval("[file1]"));
+    assertThat(eval("action2.outputs.to_list()")).isEqualTo(eval("[file2]"));
   }
 
   // For created_actions() tests, the "undertest" rule represents both the code under test and the
@@ -1991,7 +1992,7 @@
         simpleBuildDefinition);
     SkylarkRuleContext ruleContext = createRuleContext("//test:testing");
     update("ruleContext", ruleContext);
-    update("file", eval("list(ruleContext.attr.dep.files)[0]"));
+    update("file", eval("ruleContext.attr.dep.files.to_list()[0]"));
     update("action", eval("ruleContext.attr.dep[Actions].by_file[file]"));
 
     assertThat(eval("type(action)")).isEqualTo("Action");
@@ -2102,7 +2103,7 @@
         simpleBuildDefinition);
     SkylarkRuleContext ruleContext = createRuleContext("//test:testing");
     update("ruleContext", ruleContext);
-    update("file", eval("list(ruleContext.attr.dep.files)[0]"));
+    update("file", eval("ruleContext.attr.dep.files.to_list()[0]"));
     update("action", eval("ruleContext.attr.dep[Actions].by_file[file]"));
 
     assertThat(eval("type(action)")).isEqualTo("Action");
@@ -2141,7 +2142,7 @@
         ")");
     SkylarkRuleContext ruleContext = createRuleContext("//test:testing");
     update("ruleContext", ruleContext);
-    update("file", eval("list(ruleContext.attr.dep.files)[0]"));
+    update("file", eval("ruleContext.attr.dep.files.to_list()[0]"));
     update("action", eval("ruleContext.attr.dep[Actions].by_file[file]"));
 
     assertThat(eval("type(action)")).isEqualTo("Action");
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
index 6f38acc..baa1c16 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleImplementationFunctionsTest.java
@@ -67,6 +67,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.SkylarkNestedSet;
+import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.testutil.MoreAsserts;
 import com.google.devtools.build.lib.util.Fingerprint;
 import com.google.devtools.build.lib.util.OsUtils;
@@ -248,6 +249,13 @@
   @SuppressWarnings("unchecked")
   @Test
   public void testListComprehensionsWithNestedSet() throws Exception {
+    ev =
+        createEvaluationTestCase(
+            StarlarkSemantics.DEFAULT_SEMANTICS.toBuilder()
+                .incompatibleDepsetIsNotIterable(false)
+                .build());
+    ev.initialize();
+
     Object result = eval("[x + x for x in depset([1, 2, 3])]");
     assertThat((Iterable<Object>) result).containsExactly(2, 4, 6).inOrder();
   }
@@ -706,8 +714,8 @@
         "  label_dict = {}",
         "  all = []",
         "  for dep in ruleContext.attr.srcs + ruleContext.attr.tools:",
-        "    all.extend(list(dep.files))",
-        "    label_dict[dep.label] = list(dep.files)",
+        "    all.extend(dep.files.to_list())",
+        "    label_dict[dep.label] = dep.files.to_list()",
         "  return ruleContext.resolve_command(",
         "    command='A$(locations //foo:mytool) B$(location //foo:file3.dat)',",
         "    attribute='cmd', expand_locations=True, label_dict=label_dict)",
@@ -3185,4 +3193,3 @@
     }
   }
 }
-
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 7745179..c68ea65 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
@@ -78,7 +78,7 @@
                 + LINE_SEPARATOR
                 + "\t\ts[0]",
             "def foo():",
-            "  s = depset()",
+            "  s = []",
             "  if s[0] == 1:",
             "    x = 1",
             "foo()");
@@ -249,7 +249,6 @@
         .testEval("sorted([True, False, True])", "[False, True, True]")
         .testEval("sorted(['a','x','b','z'])", "[\"a\", \"b\", \"x\", \"z\"]")
         .testEval("sorted({1: True, 5: True, 4: False})", "[1, 4, 5]")
-        .testEval("sorted(depset([1, 5, 4]))", "[1, 4, 5]")
         .testIfExactError("Cannot compare function with function", "sorted([sorted, sorted])");
   }
 
@@ -637,8 +636,7 @@
         .testStatement("str(zip([1], {2: 'a'}))", "[(1, 2)]")
         .testStatement("str(zip([1], []))", "[]")
         .testIfErrorContains("type 'int' is not iterable", "zip(123)")
-        .testIfErrorContains("type 'int' is not iterable", "zip([1], 1)")
-        .testStatement("str(zip([1], depset([2])))", "[(1, 2)]");
+        .testIfErrorContains("type 'int' is not iterable", "zip([1], 1)");
   }
 
   /**
@@ -701,7 +699,6 @@
   public void testTupleCoercion() throws Exception {
     new BothModesTest()
         .testStatement("tuple([1, 2]) == (1, 2)", true)
-        .testStatement("tuple(depset([1, 2])) == (1, 2)", true)
         // Depends on current implementation of dict
         .testStatement("tuple({1: 'foo', 2: 'bar'}) == (1, 2)", true);
   }
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index 12a789a..2e8fdc7 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -1487,8 +1487,8 @@
   }
 
   @Test
-  public void testInSet() throws Exception {
-    new SkylarkTest()
+  public void testInSetDeprecated() throws Exception {
+    new SkylarkTest("--incompatible_depset_is_not_iterable=false")
         .testStatement("'b' in depset(['a', 'b'])", Boolean.TRUE)
         .testStatement("'c' in depset(['a', 'b'])", Boolean.FALSE)
         .testStatement("1 in depset(['a', 'b'])", Boolean.FALSE);