summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/set.rb13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/set.rb b/lib/set.rb
index d98cc0b0be8..cc068f0a52e 100644
--- a/lib/set.rb
+++ b/lib/set.rb
@@ -27,14 +27,21 @@
# This is a hybrid of Array's intuitive inter-operation facilities and
# Hash's fast lookup.
#
-# The equality of each couple of elements is determined according to
-# Object#eql? and Object#hash, since Set uses Hash as storage.
-#
# Set is easy to use with Enumerable objects (implementing +each+).
# Most of the initializer methods and binary operators accept generic
# Enumerable objects besides sets and arrays. An Enumerable object
# can be converted to Set using the +to_set+ method.
#
+# Set uses Hash as storage, so you must note the following points:
+#
+# * Equality of elements is determined according to Object#eql? and
+# Object#hash.
+# * Set assumes that the identity of each element does not change
+# while it is stored. Modifying an element of a set will render the
+# set to an unreliable state.
+# * When a string is to be stored, a frozen copy of the string is
+# stored instead unless the original string is already frozen.
+#
# == Comparison
#
# The comparison operators <, >, <= and >= are implemented as