aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/options.rb
diff options
context:
space:
mode:
authorJack Nagel2013-06-27 01:18:32 -0500
committerJack Nagel2013-06-27 01:18:45 -0500
commitbc80b3d190b9aaca5514f28aab94a2cb33937b26 (patch)
treeb28b5d65aadd80e8bd98ac07ca22252eb89cd6fd /Library/Homebrew/options.rb
parentecebcb67f62504fa9dd4e174fb3459ca6b2d33d9 (diff)
downloadhomebrew-bc80b3d190b9aaca5514f28aab94a2cb33937b26.tar.bz2
Fix some #eql? correctness issues
The implementation of #eql? and #hash should ensure that if a.eql?(b), then a.hash == b.hash, but #eql? itself should not *depend* on #hash. For example, given class Thingy def eql? instance_of?(other.class) && hash == other.hash end def hash [name, *tags].hash end end if #hash produces a collision for different values of [name, *tags], two Thingy objects will appear to be eql?, even though this is not the case. Instead, #eql? should depend on the equality of name and tags directly.
Diffstat (limited to 'Library/Homebrew/options.rb')
-rw-r--r--Library/Homebrew/options.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/Library/Homebrew/options.rb b/Library/Homebrew/options.rb
index c7d1acca2..b59cd2930 100644
--- a/Library/Homebrew/options.rb
+++ b/Library/Homebrew/options.rb
@@ -20,7 +20,7 @@ class Option
end
def eql?(other)
- other.is_a?(self.class) && hash == other.hash
+ instance_of?(other.class) && name == other.name
end
def hash