aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--test/ruby/test_string.rb2
2 files changed, 7 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 33268b8762..2a0413f006 100644
--- a/NEWS
+++ b/NEWS
@@ -28,6 +28,11 @@ with all sufficient information, see the ChangeLog file or Redmine
* Thread#fetch [Feature #13009]
+* String
+
+ * String#-@ deduplicates unfrozen strings. Already-frozen
+ strings remain unchanged for compatibility. [Feature #13077]
+
=== Stdlib updates (outstanding ones only)
=== Compatibility issues (excluding feature bug fixes)
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
index d5166a82bc..da8bd5f05a 100644
--- a/test/ruby/test_string.rb
+++ b/test/ruby/test_string.rb
@@ -2537,6 +2537,8 @@ CODE
assert_not_equal(str.object_id, (+str).object_id)
assert_equal(str.object_id, (-str).object_id)
+ bar = %w(b a r).join('')
+ assert_same(str, -bar, "uminus deduplicates [Feature #13077]")
end
def test_ord