[
https://issues.apache.org/jira/browse/THRIFT-231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12657629#action_12657629
]
Bryan Duxbury commented on THRIFT-231:
--------------------------------------
Alright, I'm not completely married to removing the class check. I think in
most practical cases, it'll work out just fine, but if it's going to relieve
worries, then we can keep the class check in place.
Do you need me to submit a new patch or can you just omit that diff line?
> 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
> Assignee: Bryan Duxbury
> Attachments: thrift-231.patch
>
>
> 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.