From 0af5ff0a63e65d5dd177f7a7749beecae887d428 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 a0e945e0a8..000e32ef4d 100644 --- a/lib/set.rb +++ b/lib/set.rb @@ -780,7 +780,7 @@ def each(&block) 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 b20920e63e..db0c87893b 100644 --- a/test/test_set.rb +++ b/test/test_set.rb @@ -798,6 +798,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 -- 2.23.0