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