summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-31 05:58:17 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-31 05:58:17 +0000
commita5c8e0861fef293bdb7494edbff41f14d6b15262 (patch)
tree7cff2fb5bcc9bd2c1f3add1ba471489640909258
parentb426f8ebb5510af095852dfd4fa9c9f41ea99358 (diff)
* lib/set.rb: [DOC] Add a couple of notes on Hash as storage.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--lib/set.rb13
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index cfa874042c..2209e92576 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jul 31 14:41:36 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * lib/set.rb: [DOC] Add a couple of notes on Hash as storage.
+
Wed Jul 31 14:38:52 2013 Akinori MUSHA <knu@iDaemons.org>
* lib/set.rb: [DOC] Fix example result. Hash is now ordered.
diff --git a/lib/set.rb b/lib/set.rb
index d98cc0b0be..cc068f0a52 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