bazel syntax: remove deprecated list constructors
- rename Sequence.createImmutable to StarlarkList.immutableCopyOf
- delete StarlarkList.of(StarlarkThread, ...)
and StarlarkList.copyOf(StarlarkThread, ...)
Mutability is now always an explicit parameter.
StarlarkThread is no longer relevant to StarlarkList
- deprecate Dict constructors that take a StarlarkThread,
and provide (only a few) Mutability variants.
This CL makes only the minimum change to Dict to support
the changes to StarlarkList. A follow-up CL will
eliminate the deprecated constructors. In some cases
"(Mutability) null" is required to avoid overload ambiguity.
This is a breaking change for copybara.
BEGIN_PUBLIC
bazel syntax: remove deprecated list constructors
END_PUBLIC
PiperOrigin-RevId: 281805867
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 e647599..1f14a23 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
@@ -50,16 +50,17 @@
import com.google.devtools.build.lib.syntax.Dict;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.EvalUtils;
+import com.google.devtools.build.lib.syntax.Mutability;
import com.google.devtools.build.lib.syntax.ParserInput;
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;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.util.FileTypeSet;
import java.util.Collection;
+import javax.annotation.Nullable;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -1274,19 +1275,19 @@
return StructProvider.STRUCT.create(ImmutableMap.of(field, value), "no field '%'");
}
- private static StructImpl makeBigStruct(StarlarkThread thread) {
+ private static StructImpl makeBigStruct(@Nullable Mutability mu) {
// struct(a=[struct(x={1:1}), ()], b=(), c={2:2})
return StructProvider.STRUCT.create(
ImmutableMap.<String, Object>of(
"a",
StarlarkList.<Object>of(
- thread,
+ mu,
StructProvider.STRUCT.create(
- ImmutableMap.<String, Object>of("x", Dict.<Object, Object>of(thread, 1, 1)),
+ ImmutableMap.<String, Object>of("x", Dict.<Object, Object>of(mu, 1, 1)),
"no field '%s'"),
Tuple.of()),
"b", Tuple.of(),
- "c", Dict.<Object, Object>of(thread, 2, 2)),
+ "c", Dict.<Object, Object>of(mu, 2, 2)),
"no field '%s'");
}
@@ -1295,8 +1296,8 @@
assertThat(EvalUtils.isImmutable(makeStruct("a", 1))).isTrue();
}
- private static StarlarkList<Object> makeList(StarlarkThread thread) {
- return StarlarkList.<Object>of(thread, 1, 2, 3);
+ private static StarlarkList<Object> makeList(@Nullable Mutability mu) {
+ return StarlarkList.<Object>of(mu, 1, 2, 3);
}
@Test
@@ -1305,9 +1306,10 @@
assertThat(EvalUtils.isImmutable(makeStruct("a", makeList(null)))).isTrue();
assertThat(EvalUtils.isImmutable(makeBigStruct(null))).isTrue();
- assertThat(EvalUtils.isImmutable(Tuple.<Object>of(makeList(ev.getStarlarkThread())))).isFalse();
- assertThat(EvalUtils.isImmutable(makeStruct("a", makeList(ev.getStarlarkThread())))).isFalse();
- assertThat(EvalUtils.isImmutable(makeBigStruct(ev.getStarlarkThread()))).isFalse();
+ Mutability mu = ev.getStarlarkThread().mutability();
+ assertThat(EvalUtils.isImmutable(Tuple.<Object>of(makeList(mu)))).isFalse();
+ assertThat(EvalUtils.isImmutable(makeStruct("a", makeList(mu)))).isFalse();
+ assertThat(EvalUtils.isImmutable(makeBigStruct(mu))).isFalse();
}
@Test