bazel syntax: rename SkylarkList.MutableList to StarlarkList
This is the Java class that represents the Starlark 'list' data type.
We now have both SkylarkList and StarlarkList, which is confusing.
A follow-up change will globally rename SkylarkList to Sequence.
PiperOrigin-RevId: 280037310
diff --git a/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java b/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java
index 50f41fb..4341cd0 100644
--- a/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java
+++ b/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java
@@ -29,8 +29,8 @@
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
import com.google.devtools.build.lib.syntax.SkylarkDict;
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.StarlarkList;
import com.google.devtools.build.lib.syntax.Tuple;
import com.google.devtools.build.lib.util.Classpath;
import java.util.ArrayList;
@@ -243,7 +243,7 @@
}
@SkylarkCallable(name = "mutable", doc = "mutable")
- public MutableList<Integer> getMutableList() {
+ public StarlarkList<Integer> getMutableList() {
return null;
}
diff --git a/src/test/java/com/google/devtools/build/lib/packages/TypeTest.java b/src/test/java/com/google/devtools/build/lib/packages/TypeTest.java
index ce1506f..120e644 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/TypeTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/TypeTest.java
@@ -23,8 +23,8 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
+import com.google.devtools.build.lib.syntax.StarlarkList;
import com.google.devtools.build.lib.syntax.Tuple;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import java.util.Arrays;
@@ -244,7 +244,7 @@
@Test
public void testStringDictBadElements() throws Exception {
- Object input = ImmutableMap.of("foo", MutableList.of(null, "bar", "baz"), "wiz", "bang");
+ Object input = ImmutableMap.of("foo", StarlarkList.of(null, "bar", "baz"), "wiz", "bang");
Type.ConversionException e =
assertThrows(Type.ConversionException.class, () -> Type.STRING_DICT.convert(input, null));
assertThat(e)
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
index 6a692b5..fa2cddc 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
@@ -54,9 +54,9 @@
import com.google.devtools.build.lib.syntax.EvalUtils;
import com.google.devtools.build.lib.syntax.SkylarkDict;
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.Starlark;
+import com.google.devtools.build.lib.syntax.StarlarkList;
import com.google.devtools.build.lib.testutil.Scratch;
import com.google.devtools.build.lib.testutil.TestConstants;
import com.google.devtools.build.lib.util.Pair;
@@ -5711,7 +5711,7 @@
Object picObjects = fooInfoForPic.getValue("pic_objects");
assertThat(picObjects).isNotEqualTo(Starlark.NONE);
- assertThat((MutableList) picObjects).isEmpty();
+ assertThat((StarlarkList) picObjects).isEmpty();
// With PIC and the default compilation_mode which is fastbuild C++ rules only produce PIC
// objects.
@@ -5727,7 +5727,7 @@
Object objects = fooInfoForNoPic.getValue("objects");
assertThat(objects).isNotEqualTo(Starlark.NONE);
- assertThat((MutableList) objects).isEmpty();
+ assertThat((StarlarkList) objects).isEmpty();
}
private void scratchObjectsProvidingRule() throws IOException {
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcToolchainConfigureTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcToolchainConfigureTest.java
index 7240ded..73df135 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcToolchainConfigureTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcToolchainConfigureTest.java
@@ -14,7 +14,7 @@
package com.google.devtools.build.lib.rules.cpp;
import com.google.devtools.build.lib.packages.util.ResourceLoader;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
+import com.google.devtools.build.lib.syntax.StarlarkList;
import com.google.devtools.build.lib.syntax.util.EvaluationTestCase;
import com.google.devtools.build.lib.testutil.TestConstants;
import java.io.IOException;
@@ -29,23 +29,23 @@
@Test
public void testSplitEscaped() throws Exception {
newTest()
- .testExpression("split_escaped('a:b:c', ':')", MutableList.of(thread, "a", "b", "c"))
- .testExpression("split_escaped('a%:b', ':')", MutableList.of(thread, "a:b"))
- .testExpression("split_escaped('a%%b', ':')", MutableList.of(thread, "a%b"))
- .testExpression("split_escaped('a:::b', ':')", MutableList.of(thread, "a", "", "", "b"))
- .testExpression("split_escaped('a:b%:c', ':')", MutableList.of(thread, "a", "b:c"))
- .testExpression("split_escaped('a%%:b:c', ':')", MutableList.of(thread, "a%", "b", "c"))
- .testExpression("split_escaped(':a', ':')", MutableList.of(thread, "", "a"))
- .testExpression("split_escaped('a:', ':')", MutableList.of(thread, "a", ""))
- .testExpression("split_escaped('::a::', ':')", MutableList.of(thread, "", "", "a", "", ""))
- .testExpression("split_escaped('%%%:a%%%%:b', ':')", MutableList.of(thread, "%:a%%", "b"))
- .testExpression("split_escaped('', ':')", MutableList.of(thread))
- .testExpression("split_escaped('%', ':')", MutableList.of(thread, "%"))
- .testExpression("split_escaped('%%', ':')", MutableList.of(thread, "%"))
- .testExpression("split_escaped('%:', ':')", MutableList.of(thread, ":"))
- .testExpression("split_escaped(':', ':')", MutableList.of(thread, "", ""))
- .testExpression("split_escaped('a%%b', ':')", MutableList.of(thread, "a%b"))
- .testExpression("split_escaped('a%:', ':')", MutableList.of(thread, "a:"));
+ .testExpression("split_escaped('a:b:c', ':')", StarlarkList.of(thread, "a", "b", "c"))
+ .testExpression("split_escaped('a%:b', ':')", StarlarkList.of(thread, "a:b"))
+ .testExpression("split_escaped('a%%b', ':')", StarlarkList.of(thread, "a%b"))
+ .testExpression("split_escaped('a:::b', ':')", StarlarkList.of(thread, "a", "", "", "b"))
+ .testExpression("split_escaped('a:b%:c', ':')", StarlarkList.of(thread, "a", "b:c"))
+ .testExpression("split_escaped('a%%:b:c', ':')", StarlarkList.of(thread, "a%", "b", "c"))
+ .testExpression("split_escaped(':a', ':')", StarlarkList.of(thread, "", "a"))
+ .testExpression("split_escaped('a:', ':')", StarlarkList.of(thread, "a", ""))
+ .testExpression("split_escaped('::a::', ':')", StarlarkList.of(thread, "", "", "a", "", ""))
+ .testExpression("split_escaped('%%%:a%%%%:b', ':')", StarlarkList.of(thread, "%:a%%", "b"))
+ .testExpression("split_escaped('', ':')", StarlarkList.of(thread))
+ .testExpression("split_escaped('%', ':')", StarlarkList.of(thread, "%"))
+ .testExpression("split_escaped('%%', ':')", StarlarkList.of(thread, "%"))
+ .testExpression("split_escaped('%:', ':')", StarlarkList.of(thread, ":"))
+ .testExpression("split_escaped(':', ':')", StarlarkList.of(thread, "", ""))
+ .testExpression("split_escaped('a%%b', ':')", StarlarkList.of(thread, "a%b"))
+ .testExpression("split_escaped('a%:', ':')", StarlarkList.of(thread, "a:"));
}
private ModalTestCase newTest(String... skylarkOptions) throws IOException {
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 13a03b9..820eccc 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
@@ -56,9 +56,9 @@
import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.skyframe.SkylarkImportLookupFunction;
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.Starlark;
+import com.google.devtools.build.lib.syntax.StarlarkList;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.skyframe.InMemoryMemoizingEvaluator;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -1245,7 +1245,7 @@
StructImpl myInfo = getMyInfoFromTarget(target);
assertThat(myInfo.getValue("o1"))
.isEqualTo(Label.parseAbsoluteUnchecked("//test/skylark:foo.txt"));
- assertThat(myInfo.getValue("o2")).isEqualTo(MutableList.empty());
+ assertThat(myInfo.getValue("o2")).isEqualTo(StarlarkList.empty());
}
@Test
@@ -1270,7 +1270,7 @@
ConfiguredTarget target = getConfiguredTarget("//test/skylark:cr");
StructImpl myInfo = getMyInfoFromTarget(target);
assertThat(myInfo.getValue("o1")).isEqualTo(Starlark.NONE);
- assertThat(myInfo.getValue("o2")).isEqualTo(MutableList.empty());
+ assertThat(myInfo.getValue("o2")).isEqualTo(StarlarkList.empty());
}
@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 ed4f0cf..acb9d8f 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
@@ -51,9 +51,9 @@
import com.google.devtools.build.lib.syntax.EvalUtils;
import com.google.devtools.build.lib.syntax.ParserInput;
import com.google.devtools.build.lib.syntax.SkylarkDict;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.syntax.StarlarkFile;
+import com.google.devtools.build.lib.syntax.StarlarkList;
import com.google.devtools.build.lib.syntax.StarlarkThread;
import com.google.devtools.build.lib.syntax.SyntaxError;
import com.google.devtools.build.lib.syntax.Tuple;
@@ -1279,7 +1279,7 @@
return StructProvider.STRUCT.create(
ImmutableMap.<String, Object>of(
"a",
- MutableList.<Object>of(
+ StarlarkList.<Object>of(
thread,
StructProvider.STRUCT.create(
ImmutableMap.<String, Object>of(
@@ -1296,8 +1296,8 @@
assertThat(EvalUtils.isImmutable(makeStruct("a", 1))).isTrue();
}
- private static MutableList<Object> makeList(StarlarkThread thread) {
- return MutableList.<Object>of(thread, 1, 2, 3);
+ private static StarlarkList<Object> makeList(StarlarkThread thread) {
+ return StarlarkList.<Object>of(thread, 1, 2, 3);
}
@Test
@@ -1752,7 +1752,7 @@
invalidatePackages();
SkylarkRuleContext context = createRuleContext("//test:check");
@SuppressWarnings("unchecked")
- MutableList<Object> params = (MutableList<Object>) context.getAttr().getValue("params");
+ StarlarkList<Object> params = (StarlarkList<Object>) context.getAttr().getValue("params");
assertThat(params.get(0)).isEqualTo("NoneType");
assertThat(params.get(1)).isEqualTo("NoneType");
}
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 2a7b2b7..423f92e 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
@@ -51,6 +51,7 @@
import com.google.devtools.build.lib.syntax.SkylarkList;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.syntax.Starlark;
+import com.google.devtools.build.lib.syntax.StarlarkList;
import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
import com.google.devtools.build.lib.util.FileTypeSet;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
@@ -2016,8 +2017,8 @@
assertThat(eval("type(action)")).isEqualTo("Action");
Object argvUnchecked = eval("action.argv");
- assertThat(argvUnchecked).isInstanceOf(SkylarkList.MutableList.class);
- SkylarkList.MutableList<?> argv = (SkylarkList.MutableList) argvUnchecked;
+ assertThat(argvUnchecked).isInstanceOf(StarlarkList.class);
+ StarlarkList<?> argv = (StarlarkList) argvUnchecked;
assertThat(argv).hasSize(3);
assertThat(argv.isImmutable()).isTrue();
Object result = eval("action.argv[2].startswith('echo foo123')");
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 36040c6..8e67867 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
@@ -62,9 +62,9 @@
import com.google.devtools.build.lib.syntax.EvalUtils;
import com.google.devtools.build.lib.syntax.Printer;
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.Starlark;
+import com.google.devtools.build.lib.syntax.StarlarkList;
import com.google.devtools.build.lib.syntax.StarlarkThread;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.util.Fingerprint;
@@ -659,7 +659,7 @@
" command='I got the $(HELLO) on a $(DAVE)', ",
" make_variables={'HELLO': 'World', 'DAVE': type('')})");
@SuppressWarnings("unchecked")
- List<String> argv = (List<String>) (List<?>) (MutableList) lookup("argv");
+ List<String> argv = (List<String>) (List<?>) (StarlarkList) lookup("argv");
assertThat(argv).hasSize(3);
assertMatches("argv[0]", "^.*/bash" + OsUtils.executableExtension() + "$", argv.get(0));
assertThat(argv.get(1)).isEqualTo("-c");
@@ -673,7 +673,7 @@
"inputs, argv, input_manifests = ruleContext.resolve_command(",
" tools=ruleContext.attr.tools)");
@SuppressWarnings("unchecked")
- List<Artifact> inputs = (List<Artifact>) (List<?>) (MutableList) lookup("inputs");
+ List<Artifact> inputs = (List<Artifact>) (List<?>) (StarlarkList) lookup("inputs");
assertArtifactFilenames(
inputs,
"mytool.sh",
@@ -701,7 +701,7 @@
" attribute='cmd', expand_locations=True, label_dict=label_dict)",
"inputs, argv, manifests = foo()");
@SuppressWarnings("unchecked")
- List<String> argv = (List<String>) (List<?>) (MutableList) lookup("argv");
+ List<String> argv = (List<String>) (List<?>) (StarlarkList) lookup("argv");
assertThat(argv).hasSize(3);
assertMatches("argv[0]", "^.*/bash" + OsUtils.executableExtension() + "$", argv.get(0));
assertThat(argv.get(1)).isEqualTo("-c");
@@ -716,7 +716,7 @@
"inputs, argv, manifests = ruleContext.resolve_command(",
" execution_requirements={'requires-darwin': ''})");
@SuppressWarnings("unchecked")
- List<String> argv = (List<String>) (List<?>) (MutableList) lookup("argv");
+ List<String> argv = (List<String>) (List<?>) (StarlarkList) lookup("argv");
assertMatches("argv[0]", "^/bin/bash$", argv.get(0));
}
@@ -731,7 +731,7 @@
" command=s)",
"argv = foo()[1]");
@SuppressWarnings("unchecked")
- List<String> argv = (List<String>) (List<?>) (MutableList) lookup("argv");
+ List<String> argv = (List<String>) (List<?>) (StarlarkList) lookup("argv");
assertThat(argv).hasSize(2);
assertMatches("argv[0]", "^.*/bash" + OsUtils.executableExtension() + "$", argv.get(0));
assertMatches("argv[1]", "^.*/resolve_me[.][a-z0-9]+[.]script[.]sh$", argv.get(1));
@@ -1823,7 +1823,7 @@
public void testEmptyLabelListTypeAttrInCtx() throws Exception {
setRuleContext(createRuleContext("//foo:baz"));
Object result = eval("ruleContext.attr.srcs");
- assertThat(result).isEqualTo(MutableList.empty());
+ assertThat(result).isEqualTo(StarlarkList.empty());
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
index e99247f..2d7d8f8 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
@@ -24,7 +24,6 @@
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
import com.google.devtools.build.lib.syntax.EvalUtils.ComparisonException;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.util.EvaluationTestCase;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -37,8 +36,8 @@
@RunWith(JUnit4.class)
public class EvalUtilsTest extends EvaluationTestCase {
- private static MutableList<Object> makeList(StarlarkThread thread) {
- return MutableList.of(thread, 1, 2, 3);
+ private static StarlarkList<Object> makeList(StarlarkThread thread) {
+ return StarlarkList.of(thread, 1, 2, 3);
}
private static SkylarkDict<Object, Object> makeDict(StarlarkThread thread) {
@@ -98,8 +97,8 @@
Starlark.NONE,
Tuple.of(1, 2, 3),
Tuple.of("1", "2", "3"),
- SkylarkList.MutableList.of(thread, 1, 2, 3),
- SkylarkList.MutableList.of(thread, "1", "2", "3"),
+ StarlarkList.of(thread, 1, 2, 3),
+ StarlarkList.of(thread, "1", "2", "3"),
SkylarkDict.of(thread, "key", 123),
SkylarkDict.of(thread, 123, "value"),
NestedSetBuilder.stableOrder().add(1).add(2).add(3).build(),
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
index 17b0c21..910ed32 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.events.EventCollector;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.util.EvaluationTestCase;
import com.google.devtools.build.lib.testutil.TestMode;
import java.util.Collections;
@@ -274,7 +273,7 @@
// list
Object x = eval("[1,2] + [3,4]");
assertThat((Iterable<Object>) x).containsExactly(1, 2, 3, 4).inOrder();
- assertThat(x).isEqualTo(MutableList.of(thread, 1, 2, 3, 4));
+ assertThat(x).isEqualTo(StarlarkList.of(thread, 1, 2, 3, 4));
assertThat(EvalUtils.isImmutable(x)).isFalse();
// tuple
@@ -466,7 +465,7 @@
@Test
public void testListConcatenation() throws Exception {
newTest()
- .testExpression("[1, 2] + [3, 4]", MutableList.of(thread, 1, 2, 3, 4))
+ .testExpression("[1, 2] + [3, 4]", StarlarkList.of(thread, 1, 2, 3, 4))
.testExpression("(1, 2) + (3, 4)", Tuple.of(1, 2, 3, 4))
.testIfExactError(
"unsupported operand type(s) for +: 'list' and 'tuple'", "[1, 2] + (3, 4)")
@@ -477,18 +476,18 @@
@Test
public void testListMultiply() throws Exception {
newTest()
- .testExpression("[1, 2, 3] * 1", MutableList.of(thread, 1, 2, 3))
- .testExpression("[1, 2] * 2", MutableList.of(thread, 1, 2, 1, 2))
- .testExpression("[1, 2] * 3", MutableList.of(thread, 1, 2, 1, 2, 1, 2))
- .testExpression("[1, 2] * 4", MutableList.of(thread, 1, 2, 1, 2, 1, 2, 1, 2))
- .testExpression("[8] * 5", MutableList.of(thread, 8, 8, 8, 8, 8))
- .testExpression("[ ] * 10", MutableList.empty())
- .testExpression("[1, 2] * 0", MutableList.empty())
- .testExpression("[1, 2] * -4", MutableList.empty())
- .testExpression("2 * [1, 2]", MutableList.of(thread, 1, 2, 1, 2))
- .testExpression("10 * []", MutableList.empty())
- .testExpression("0 * [1, 2]", MutableList.empty())
- .testExpression("-4 * [1, 2]", MutableList.empty());
+ .testExpression("[1, 2, 3] * 1", StarlarkList.of(thread, 1, 2, 3))
+ .testExpression("[1, 2] * 2", StarlarkList.of(thread, 1, 2, 1, 2))
+ .testExpression("[1, 2] * 3", StarlarkList.of(thread, 1, 2, 1, 2, 1, 2))
+ .testExpression("[1, 2] * 4", StarlarkList.of(thread, 1, 2, 1, 2, 1, 2, 1, 2))
+ .testExpression("[8] * 5", StarlarkList.of(thread, 8, 8, 8, 8, 8))
+ .testExpression("[ ] * 10", StarlarkList.empty())
+ .testExpression("[1, 2] * 0", StarlarkList.empty())
+ .testExpression("[1, 2] * -4", StarlarkList.empty())
+ .testExpression("2 * [1, 2]", StarlarkList.of(thread, 1, 2, 1, 2))
+ .testExpression("10 * []", StarlarkList.empty())
+ .testExpression("0 * [1, 2]", StarlarkList.empty())
+ .testExpression("-4 * [1, 2]", StarlarkList.empty());
}
@Test
@@ -560,7 +559,7 @@
public void testListComprehensionOnDictionaryCompositeExpression() throws Exception {
new BuildTest()
.setUp("d = {1:'a',2:'b'}", "l = [d[x] for x in d]")
- .testLookup("l", MutableList.of(thread, "a", "b"));
+ .testLookup("l", StarlarkList.of(thread, "a", "b"));
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java b/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
index 5f95d11..38e8591 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/PrinterTest.java
@@ -22,7 +22,6 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import java.util.IllegalFormatException;
import java.util.LinkedHashMap;
import java.util.List;
@@ -59,20 +58,18 @@
assertThat(Printer.repr(Label.parseAbsolute("//x", ImmutableMap.of())))
.isEqualTo("Label(\"//x:x\")");
- List<?> list = MutableList.of(null, "foo", "bar");
+ List<?> list = StarlarkList.of(null, "foo", "bar");
List<?> tuple = Tuple.of("foo", "bar");
assertThat(Printer.str(Tuple.of(1, list, 3))).isEqualTo("(1, [\"foo\", \"bar\"], 3)");
assertThat(Printer.repr(Tuple.of(1, list, 3))).isEqualTo("(1, [\"foo\", \"bar\"], 3)");
- assertThat(Printer.str(MutableList.of(null, 1, tuple, 3)))
+ assertThat(Printer.str(StarlarkList.of(null, 1, tuple, 3)))
.isEqualTo("[1, (\"foo\", \"bar\"), 3]");
- assertThat(Printer.repr(MutableList.of(null, 1, tuple, 3)))
+ assertThat(Printer.repr(StarlarkList.of(null, 1, tuple, 3)))
.isEqualTo("[1, (\"foo\", \"bar\"), 3]");
- Map<Object, Object> dict = ImmutableMap.<Object, Object>of(
- 1, tuple,
- 2, list,
- "foo", MutableList.of(null));
+ Map<Object, Object> dict =
+ ImmutableMap.<Object, Object>of(1, tuple, 2, list, "foo", StarlarkList.of(null));
assertThat(Printer.str(dict))
.isEqualTo("{1: (\"foo\", \"bar\"), 2: [\"foo\", \"bar\"], \"foo\": []}");
assertThat(Printer.repr(dict))
@@ -114,9 +111,9 @@
"%%s", "foo");
checkFormatPositionalFails("unsupported format character \" \" at index 1 in \"% %s\"",
"% %s", "foo");
- assertThat(Printer.format("%s", MutableList.of(null, 1, 2, 3))).isEqualTo("[1, 2, 3]");
+ assertThat(Printer.format("%s", StarlarkList.of(null, 1, 2, 3))).isEqualTo("[1, 2, 3]");
assertThat(Printer.format("%s", Tuple.of(1, 2, 3))).isEqualTo("(1, 2, 3)");
- assertThat(Printer.format("%s", MutableList.of(null))).isEqualTo("[]");
+ assertThat(Printer.format("%s", StarlarkList.of(null))).isEqualTo("[]");
assertThat(Printer.format("%s", Tuple.of())).isEqualTo("()");
assertThat(Printer.format("%% %d %r %s", 1, "2", "3")).isEqualTo("% 1 \"2\" 3");
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 787e013..de86116 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
@@ -35,7 +35,6 @@
import com.google.devtools.build.lib.skylarkinterface.SkylarkGlobalLibrary;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.StarlarkSemantics.FlagIdentifier;
import com.google.devtools.build.lib.testutil.TestMode;
import java.util.List;
@@ -792,15 +791,18 @@
@Test
public void testForDeepUpdate() throws Exception {
// Check that indirectly reachable values can still be manipulated as normal.
- new SkylarkTest().setUp("def foo():",
- " xs = [['a'], ['b'], ['c']]",
- " ys = []",
- " for x in xs:",
- " for y in x:",
- " ys.append(y)",
- " xs[2].append(x[0])",
- " return ys",
- "ys = foo()").testLookup("ys", MutableList.of(null, "a", "b", "c", "a", "b"));
+ new SkylarkTest()
+ .setUp(
+ "def foo():",
+ " xs = [['a'], ['b'], ['c']]",
+ " ys = []",
+ " for x in xs:",
+ " for y in x:",
+ " ys.append(y)",
+ " xs[2].append(x[0])",
+ " return ys",
+ "ys = foo()")
+ .testLookup("ys", StarlarkList.of(null, "a", "b", "c", "a", "b"));
}
@Test
@@ -1090,7 +1092,7 @@
" modified_list = v + ['extra_string']",
" return modified_list",
"m = func(mock)")
- .testLookup("m", MutableList.of(thread, "b", "c", "extra_string"));
+ .testLookup("m", StarlarkList.of(thread, "b", "c", "extra_string"));
}
@Test
@@ -1572,7 +1574,7 @@
" return value",
"",
"f()[1] += 1") // `f()` should be called only once here
- .testLookup("counter", MutableList.of(thread, 1));
+ .testLookup("counter", StarlarkList.of(thread, 1));
// Check key position.
new SkylarkTest()
@@ -1585,7 +1587,7 @@
" return 1",
"",
"value[f()] += 1") // `f()` should be called only once here
- .testLookup("counter", MutableList.of(thread, 1));
+ .testLookup("counter", StarlarkList.of(thread, 1));
}
@Test
@@ -1625,8 +1627,8 @@
"",
"f(ordinary)[0] = g(ordinary)[1]",
"f(augmented)[0] += g(augmented)[1]")
- .testLookup("ordinary", MutableList.of(thread, "g", "f")) // This order is consistent
- .testLookup("augmented", MutableList.of(thread, "f", "g")); // with Python
+ .testLookup("ordinary", StarlarkList.of(thread, "g", "f")) // This order is consistent
+ .testLookup("augmented", StarlarkList.of(thread, "f", "g")); // with Python
}
@Test
@@ -1764,10 +1766,9 @@
@Test
public void testAssignmentToListInDictSideEffect() throws Exception {
- new SkylarkTest().setUp(
- "l = [1, 2]",
- "d = {0: l}",
- "d[0].append(3)").testLookup("l", MutableList.of(null, 1, 2, 3));
+ new SkylarkTest()
+ .setUp("l = [1, 2]", "d = {0: l}", "d[0].append(3)")
+ .testLookup("l", StarlarkList.of(null, 1, 2, 3));
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java
index 511f6a3..d31a7e0 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java
@@ -18,7 +18,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.util.EvaluationTestCase;
import java.util.ArrayList;
import org.junit.Test;
@@ -242,7 +241,7 @@
@Test
public void testMutatorsCheckMutability() throws Exception {
Mutability mutability = Mutability.create("test");
- MutableList<Object> list = MutableList.copyOf(mutability, ImmutableList.of(1, 2, 3));
+ StarlarkList<Object> list = StarlarkList.copyOf(mutability, ImmutableList.of(1, 2, 3));
mutability.freeze();
EvalException e = assertThrows(EvalException.class, () -> list.add(4, null, mutability));
@@ -262,7 +261,7 @@
@Test
public void testCannotMutateAfterShallowFreeze() throws Exception {
Mutability mutability = Mutability.createAllowingShallowFreeze("test");
- MutableList<Object> list = MutableList.copyOf(mutability, ImmutableList.of(1, 2, 3));
+ StarlarkList<Object> list = StarlarkList.copyOf(mutability, ImmutableList.of(1, 2, 3));
list.unsafeShallowFreeze();
EvalException e = assertThrows(EvalException.class, () -> list.add(4, null, mutability));
@@ -273,7 +272,7 @@
public void testCopyOfTakesCopy() throws EvalException {
ArrayList<String> copyFrom = Lists.newArrayList("hi");
Mutability mutability = Mutability.create("test");
- MutableList<String> mutableList = MutableList.copyOf(mutability, copyFrom);
+ StarlarkList<String> mutableList = StarlarkList.copyOf(mutability, copyFrom);
copyFrom.add("added1");
mutableList.add("added2", /*loc=*/ null, mutability);
@@ -285,7 +284,7 @@
public void testWrapUnsafeTakesOwnershipOfPassedArrayList() throws EvalException {
ArrayList<String> wrapped = Lists.newArrayList("hi");
Mutability mutability = Mutability.create("test");
- MutableList<String> mutableList = MutableList.wrapUnsafe(mutability, wrapped);
+ StarlarkList<String> mutableList = StarlarkList.wrapUnsafe(mutability, wrapped);
// Big no-no, but we're proving a point.
wrapped.add("added1");
@@ -298,9 +297,9 @@
public void testGetSkylarkType_GivesExpectedClassesForListsAndTuples() throws Exception {
Class<?> emptyTupleClass = Tuple.empty().getClass();
Class<?> tupleClass = Tuple.of(1, "a", "b").getClass();
- Class<?> mutableListClass = MutableList.copyOf(thread, Tuple.of(1, 2, 3)).getClass();
+ Class<?> mutableListClass = StarlarkList.copyOf(thread, Tuple.of(1, 2, 3)).getClass();
- assertThat(EvalUtils.getSkylarkType(mutableListClass)).isEqualTo(MutableList.class);
+ assertThat(EvalUtils.getSkylarkType(mutableListClass)).isEqualTo(StarlarkList.class);
assertThat(EvalUtils.getSkylarkType(emptyTupleClass)).isEqualTo(Tuple.class);
assertThat(EvalUtils.getSkylarkType(tupleClass)).isEqualTo(Tuple.class);
}
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkMutableTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkMutableTest.java
index 46dc09b..d7ba159 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkMutableTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkMutableTest.java
@@ -18,7 +18,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -33,7 +32,7 @@
@Test
public void testListViewsCheckMutability() throws Exception {
Mutability mutability = Mutability.create("test");
- MutableList<Object> list = MutableList.copyOf(mutability, ImmutableList.of(1, 2, 3));
+ StarlarkList<Object> list = StarlarkList.copyOf(mutability, ImmutableList.of(1, 2, 3));
mutability.freeze();
{
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 62bfbc9..3445388 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
@@ -19,7 +19,6 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.Order;
-import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.util.EvaluationTestCase;
import java.util.Arrays;
import java.util.HashMap;
@@ -493,7 +492,7 @@
"s = depset() + [2, 4, 6] + [3, 4, 5]", //
"x = s.to_list()");
Object value = lookup("x");
- assertThat(value).isInstanceOf(MutableList.class);
+ assertThat(value).isInstanceOf(StarlarkList.class);
assertThat((Iterable<?>) value).containsExactly(2, 4, 6, 3, 5).inOrder();
}