summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/set.rb2
-rw-r--r--test/test_set.rb3
2 files changed, 4 insertions, 1 deletions
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