summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-07-26 17:04:13 -0700
committerJeremy Evans <code@jeremyevans.net>2019-07-26 17:05:46 -0700
commit8bccbf3cfea8c1059d40db5b5e61900cf6cf29d3 (patch)
treef6330438d30f097ca3443d3317e7ddc05eb79287 /object.c
parent6279cf8b2b2a683cb9e4f6422e6f6f9351cff37b (diff)
Add more documentation on #eql?/#hash relationship [ci skip]
Fixes [Bug #14263]
Diffstat (limited to 'object.c')
-rw-r--r--object.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/object.c b/object.c
index 30f2d88831..3aa7cd20d2 100644
--- a/object.c
+++ b/object.c
@@ -186,7 +186,11 @@ rb_eql(VALUE obj1, VALUE obj2)
*
* The #eql? method returns <code>true</code> if +obj+ and +other+
* refer to the same hash key. This is used by Hash to test members
- * for equality. For objects of class Object, #eql? is synonymous
+ * for equality. For any pair of objects where #eql? returns +true+,
+ * the #hash value of both objects must be equal. So any subclass
+ * that overrides #eql? should also override #hash appropriately.
+ *
+ * For objects of class Object, #eql? is synonymous
* with #==. Subclasses normally continue this tradition by aliasing
* #eql? to their overridden #== method, but there are exceptions.
* Numeric types, for example, perform type conversion across #==,