str.join: Append `str`ed element to error message

The Starlark error message for `str.join` used to be:
expected string for sequence element %d, got '%s'
; with the index of the erroneous element and its `type`

Now it is:
expected string for sequence element %d, got '%s' of type %s
; which adds and emphasizes the `str` value of the element
to the prior error message for aid in disambiguation

PiperOrigin-RevId: 417439474
diff --git a/src/main/java/net/starlark/java/eval/StringModule.java b/src/main/java/net/starlark/java/eval/StringModule.java
index 92bf177..0810825 100644
--- a/src/main/java/net/starlark/java/eval/StringModule.java
+++ b/src/main/java/net/starlark/java/eval/StringModule.java
@@ -151,7 +151,8 @@
     for (Object item : items) {
       if (!(item instanceof String)) {
         throw Starlark.errorf(
-            "expected string for sequence element %d, got '%s'", i, Starlark.type(item));
+            "expected string for sequence element %d, got '%s' of type %s",
+            i, Starlark.str(item), Starlark.type(item));
       }
       i++;
     }
diff --git a/src/test/java/net/starlark/java/eval/MethodLibraryTest.java b/src/test/java/net/starlark/java/eval/MethodLibraryTest.java
index 3a49b0d..7eef987 100644
--- a/src/test/java/net/starlark/java/eval/MethodLibraryTest.java
+++ b/src/test/java/net/starlark/java/eval/MethodLibraryTest.java
@@ -759,6 +759,6 @@
   public void testStringJoinRequiresStrings() throws Exception {
     ev.new Scenario()
         .testIfErrorContains(
-            "expected string for sequence element 1, got 'int'", "', '.join(['foo', 2])");
+            "expected string for sequence element 1, got '2' of type int", "', '.join(['foo', 2])");
   }
 }