From: pegacorn@... Date: 2004-10-23T10:56:18+09:00 Subject: [ruby-dev:24571] Set#clone (was: Re: DelegateClass(superclass)#clone) From: pegacorn@jcom.home.ne.jp Subject: [ruby-dev:24501] Re: DelegateClass(superclass)#clone Date: Sat, 16 Oct 2004 09:07:30 +0900 Message-Id: <20041016.090728.59462392.pegacorn@jcom.home.ne.jp> /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > # Set#clone もバグってます… 未だ直っていないようなので、忘れないように挙げておきます。 require 'test/unit' require 'set' class TC_Set < Test::Unit::TestCase def test_clone s1 = Set.new s2 = s1.clone s1 << 'abc' assert_equal(Set.new, s2) end end 私にはこんな修正方法しか思い浮かびませんが… class Set alias :_org_clone :clone def clone new_obj = self._org_clone new_hash = @hash.clone new_obj.instance_eval { @hash = new_hash } new_obj end end ---- 馬越