Ruby generated structs lack a hash method, and thus cannot be used as map keys
or set members
---------------------------------------------------------------------------------------------
Key: THRIFT-231
URL: https://issues.apache.org/jira/browse/THRIFT-231
Project: Thrift
Issue Type: Bug
Components: Compiler (Ruby), Library (Ruby)
Reporter: Bryan Duxbury
Since generated structs don't define a hash method in Ruby, it defaults to a
unique number every time. This means that even if two objects have equal
values, they will not have equal hashcodes. As a result, if you try to create a
set of these structs and subsequently attempt to test membership on an equal
struct, it'll always return false. The same problem prevents structs from being
used as map keys.
At the very least, we should define a hash method that always returns 0 and
leave it up to the chaining to resolve the problem. A slightly more appropriate
move would be to have the hashcode of a struct be the composition of its member
values.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.