From a6cf2f3d22a78aeae9d7f36cc78a195deb686705 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Sun, 27 Oct 2019 16:03:07 -0700 Subject: [PATCH] Make mutating the result of SortedSet#to_a not affect the set Fixes [Bug #15834] --- lib/set.rb | 2 +- test/test_set.rb | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/set.rb b/lib/set.rb index b8ab6ab172..d405d81178 100644 --- a/lib/set.rb +++ b/lib/set.rb @@ -778,7 +778,7 @@ class SortedSet < Set def to_a (@keys = @hash.keys).sort! unless @keys - @keys + @keys.dup end def freeze diff --git a/test/test_set.rb b/test/test_set.rb index 68ee7ce8a3..86f860222c 100644 --- a/test/test_set.rb +++ b/test/test_set.rb @@ -800,6 +800,9 @@ class TC_SortedSet < Test::Unit::TestCase def test_sortedset s = SortedSet[4,5,3,1,2] + a = s.to_a + assert_equal([1,2,3,4,5], a) + a << -1 assert_equal([1,2,3,4,5], s.to_a) prev = nil