From: Shugo Maeda Date: 2010-03-23T19:15:10+09:00 Subject: [ruby-dev:40735] [Bug #2995] TestHash#test_recursive_check fails Bug #2995: TestHash#test_recursive_check fails http://redmine.ruby-lang.org/issues/show/2995 起票者: Shugo Maeda ステータス: Open, 優先度: Normal 担当者: Nobuyoshi Nakada, カテゴリ: core, Target version: 1.9.2 ruby -v: ruby 1.9.2dev (2010-03-23 trunk 27020) [i686-linux] 前田です。 以下の変更(r26961)で、TestHash#test_recursive_checkが失敗するようになっている のですが、この変更は意図的でしょうか。 Wed Mar 17 16:25:53 2010 Nobuyoshi Nakada * hash.c (rb_hash_aset): allow recursive key. [ruby-core:24648] [ruby-core:24648]を見ると、 >> h={} => {} >> h[:key] = h => {:key=>{....}} >> h.hash ArgumentError: recursive key for hash のように値に自分自身を含むHashのhashメソッド呼び出しで例外が起こるという話で、 h[h] = :foo のようにキーに自分自身を与えるというのとは違う話のように読めます。 また、test_recursive_checkにあるように h = {} h[h] = :foo のようなコードを実行しても、h[h]で:fooは取得できません。 r26961はどういう意図の変更なのでしょうか。 ---------------------------------------- http://redmine.ruby-lang.org