From: Marc-Andre Lafortune Date: 2009-05-10T07:37:31+09:00 Subject: [ruby-core:23412] [Bug #1448] [patch] Proper handling of recursive arrays Issue #1448 has been updated by Marc-Andre Lafortune. File recursion2.patch added Oups, completely forgot to finish the hash part. The problem was that I was not pairing hash1 with hash2 but with the temporary struct made for the comparison. This is fixed in the included patch. I have updated rubyspecs (core/hash/equal_value_spec) with complex recursive hash tests. Specs now test recursive hashes, even when formed differently but with the same content, and arrays containing hashes containing arrays... For the false positive: firstly, the example you show is already == in the current version. The equality for arrays is "do they contain the same elements in the same order". For recursive arrays, it's easier to think about the reverse: arrays are not equal if there is a mismatch between one element and the corresponding one. [a] and a don't have such a mismatch. PS: Thanks for prettying up my code! I had difficulty applying the patch, I hope everything made it through. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/1448 ---------------------------------------- http://redmine.ruby-lang.org