Delete the flag 'incompatible_string_join_requires_strings'
https://github.com/bazelbuild/bazel/issues/7802
RELNOTES: None.
PiperOrigin-RevId: 281069144
diff --git a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
index dc4d68b..f75c9dc 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/StarlarkSemanticsOptions.java
@@ -330,21 +330,6 @@
public boolean incompatibleDisallowLegacyJavaInfo;
@Option(
- name = "incompatible_string_join_requires_strings",
- defaultValue = "true",
- documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
- effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
- metadataTags = {
- OptionMetadataTag.INCOMPATIBLE_CHANGE,
- OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
- },
- help =
- "If set to true, the argument of `string.join` must be an iterable whose elements are "
- + "strings. If set to false, elements are first converted to string. "
- + "See https://github.com/bazelbuild/bazel/issues/7802")
- public boolean incompatibleStringJoinRequiresStrings;
-
- @Option(
name = "incompatible_disallow_struct_provider_syntax",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
@@ -646,7 +631,6 @@
.incompatibleRemoveNativeMavenJar(incompatibleRemoveNativeMavenJar)
.incompatibleRestrictNamedParams(incompatibleRestrictNamedParams)
.incompatibleRunShellCommandString(incompatibleRunShellCommandString)
- .incompatibleStringJoinRequiresStrings(incompatibleStringJoinRequiresStrings)
.incompatibleVisibilityPrivateAttributesAtDefinition(
incompatibleVisibilityPrivateAttributesAtDefinition)
.internalSkylarkFlagTestCanary(internalSkylarkFlagTestCanary)
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
index 5dfed56..8ffd56d 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StarlarkSemantics.java
@@ -190,8 +190,6 @@
public abstract boolean incompatibleRunShellCommandString();
- public abstract boolean incompatibleStringJoinRequiresStrings();
-
public abstract boolean incompatibleVisibilityPrivateAttributesAtDefinition();
public abstract boolean internalSkylarkFlagTestCanary();
@@ -273,7 +271,6 @@
.incompatibleRemoveNativeMavenJar(true)
.incompatibleRunShellCommandString(false)
.incompatibleRestrictNamedParams(true)
- .incompatibleStringJoinRequiresStrings(true)
.incompatibleVisibilityPrivateAttributesAtDefinition(false)
.internalSkylarkFlagTestCanary(false)
.incompatibleDoNotSplitLinkingCmdline(true)
@@ -353,8 +350,6 @@
public abstract Builder incompatibleRunShellCommandString(boolean value);
- public abstract Builder incompatibleStringJoinRequiresStrings(boolean value);
-
public abstract Builder incompatibleVisibilityPrivateAttributesAtDefinition(boolean value);
public abstract Builder internalSkylarkFlagTestCanary(boolean value);
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StringModule.java b/src/main/java/com/google/devtools/build/lib/syntax/StringModule.java
index da8be49..01781c4 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StringModule.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StringModule.java
@@ -109,22 +109,19 @@
type = Object.class,
doc = "The objects to join.")
},
- useLocation = true,
- useStarlarkThread = true)
- public String join(String self, Object elements, Location loc, StarlarkThread thread)
- throws EvalException {
+ useLocation = true)
+ public String join(String self, Object elements, Location loc) throws EvalException {
Collection<?> items = EvalUtils.toCollection(elements, loc);
- if (thread.getSemantics().incompatibleStringJoinRequiresStrings()) {
- for (Object item : items) {
- if (!(item instanceof String)) {
- throw new EvalException(
- loc,
- "sequence element must be a string (got '"
- + EvalUtils.getDataTypeName(item)
- + "'). See https://github.com/bazelbuild/bazel/issues/7802 for information about "
- + "--incompatible_string_join_requires_strings.");
- }
+ int i = 0;
+ for (Object item : items) {
+ if (!(item instanceof String)) {
+ throw new EvalException(
+ loc,
+ String.format(
+ "expected string for sequence element %d, got '%s'",
+ i, EvalUtils.getDataTypeName(item)));
}
+ i++;
}
return Joiner.on(self).join(items);
}
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 7a31a81..8dc3743 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
@@ -155,7 +155,6 @@
"--incompatible_remove_native_maven_jar=" + rand.nextBoolean(),
"--incompatible_restrict_named_params=" + rand.nextBoolean(),
"--incompatible_run_shell_command_string=" + rand.nextBoolean(),
- "--incompatible_string_join_requires_strings=" + rand.nextBoolean(),
"--incompatible_visibility_private_attributes_at_definition=" + rand.nextBoolean(),
"--incompatible_restrict_string_escapes=" + rand.nextBoolean(),
"--incompatible_disallow_dict_lookup_unhashable_keys=" + rand.nextBoolean(),
@@ -205,7 +204,6 @@
.incompatibleRemoveNativeMavenJar(rand.nextBoolean())
.incompatibleRestrictNamedParams(rand.nextBoolean())
.incompatibleRunShellCommandString(rand.nextBoolean())
- .incompatibleStringJoinRequiresStrings(rand.nextBoolean())
.incompatibleVisibilityPrivateAttributesAtDefinition(rand.nextBoolean())
.incompatibleRestrictStringEscapes(rand.nextBoolean())
.incompatibleDisallowDictLookupUnhashableKeys(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 4f4f473..4459d1d 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
@@ -748,15 +748,9 @@
@Test
public void testStringJoinRequiresStrings() throws Exception {
- new SkylarkTest("--incompatible_string_join_requires_strings")
+ new SkylarkTest()
.testIfErrorContains(
- "sequence element must be a string (got 'int')", "', '.join(['foo', 2])");
- }
-
- @Test
- public void testStringJoinDoesNotRequireStrings() throws Exception {
- new SkylarkTest("--incompatible_string_join_requires_strings=false")
- .testEval("', '.join(['foo', 2])", "'foo, 2'");
+ "expected string for sequence element 1, got 'int'", "', '.join(['foo', 2])");
}
@Test