From: nobu@... Date: 2004-12-09T11:50:06+09:00 Subject: [ruby-dev:25140] Re: Set/test_eq failed on Tru64UNIX なかだです。 At Thu, 9 Dec 2004 10:30:35 +0900, Yukihiro Matsumoto wrote in [ruby-dev:25138]: > |これはそもそもSetがHashベースで実装されているのに、mutableな要 > |素を使って(さらにそれを変更して)いることに問題があります。 > |これが起きるのはdupだけではないので、initialize_copyでrehashす > |るだけでは充分ではないはずです。 > > 要素自身をkeyにするので問題になるので、object_idをkeyにすれ > ばよいのではないでしょうか。もっとも、それだとeql?でなく > equal?で比較することになっちゃいますが。 Set["a"].include?("a")は、やっぱりtrueが期待されるんじゃないで しょうか。 > |また、Hash#hash自体も自己参照している場合エラー(あるいはSEGV)に > |なります。 > > そうですねえ。この辺の再帰を避ける枠組みをデザインしてみたい > ものですが、なかなかねえ。 inspectのときにも何度か出てましたが、結局コンテキストを渡せない と辛いんですよねぇ。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦