From: Kazuhiro NISHIYAMA Date: 2003-02-01T20:53:27+09:00 Subject: [ruby-dev:19451] Re: shim/ruby16 patch 西山和広です。 In <86n0lhf7az.wl@archon.local.idaemons.org> On Sat, 1 Feb 2003 04:28:04 +0900 "Akinori MUSHA" wrote: > > * make test16でFが出たのを修正。 > >  これは make test18 の方かな。Proc#yield() の調整絡みですね。 test18にあわせてなおした後、test16が通るように修正したという ことでした。 > > * Regexp#eql?, Regexp#hash > >  動作を変えてしまいますが、取り込みました。ハッシュのキーに > 正規表現を使うことはあまりなさそうだし、同じ正規表現同士なら > eql? が成立しても文句は言えないと思うので。 ちゃんと対応してみました。 Index: lib/features/ruby18/regexp.rb =================================================================== RCS file: /src/shim/ruby16/lib/features/ruby18/regexp.rb,v retrieving revision 1.5 diff -u -p -r1.5 regexp.rb --- lib/features/ruby18/regexp.rb 31 Jan 2003 19:17:54 -0000 1.5 +++ lib/features/ruby18/regexp.rb 1 Feb 2003 11:45:34 -0000 @@ -4,7 +4,9 @@ require 'features/ruby18/base' class Regexp def eql?(o) - o.is_a?(Regexp) && source.eql?(o.source) + o.is_a?(Regexp) && source.eql?(o.source) && + options.eql?(o.options) && + (kcode || $KCODE.downcase).eql?(o.kcode || $KCODE.downcase) end def hash Index: tests/features/ruby18/tc_regexp.rb =================================================================== RCS file: /src/shim/ruby16/tests/features/ruby18/tc_regexp.rb,v retrieving revision 1.5 diff -u -p -r1.5 tc_regexp.rb --- tests/features/ruby18/tc_regexp.rb 31 Jan 2003 19:17:54 -0000 1.5 +++ tests/features/ruby18/tc_regexp.rb 1 Feb 2003 11:45:34 -0000 @@ -8,6 +8,14 @@ rescue LoadError; end class TC_Regexp < Test::Unit::TestCase def test_eql? assert(/a/.eql?(/a/)) + assert(!/a/.eql?(/a/i)) + assert(!/a/i.eql?(/a/)) + assert(/a/i.eql?(/a/i)) + assert(/a/n.eql?(/a/n)) + assert(!/a/n.eql?(/a/u)) + assert(!/a/u.eql?(/a/n)) + assert(/a/u.eql?(/a/u)) + assert(Regexp.new('a', nil, $KCODE).eql?(/a/)) end def test_hash -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)