なかだです。

At Tue, 17 May 2005 10:35:13 +0900,
Kazuhiro NISHIYAMA wrote in [ruby-dev:26177]:
> autobuildの1.8.3と1.9.0の両方で1F0Eになっているようです。
> 
> http://www.rubyist.net/~akr/autobuild/ruby-1.8/latest.html
> http://www.rubyist.net/~akr/autobuild/ruby-1.8/log/20050517T030509.gz
>   1) Failure:
> test_exception_subclass(SOAP::Marshal::TestMarshal)
>     [/home/akr/tmp/autobuild/ruby-1.8/20050517T030509/ruby/test/ruby/marshaltestlib.rb:36:in `marshal_equal'
>      /home/akr/tmp/autobuild/ruby-1.8/20050517T030509/ruby/test/ruby/marshaltestlib.rb:105:in `test_exception_subclass']:
> /home/akr/tmp/autobuild/ruby-1.8/20050517T030509/ruby/test/ruby/marshaltestlib.rb:105:in `test_exception_subclass'.
> <["bar", 20]> expected but was
> <["MarshalTestLib::MyException", 20]>.

これもException#exceptionが常にException#initializeを呼ぶことを
利用していたためですね。これはRegexpやRangeと同様にすれば通ると
思うのですが、それとも#exceptionは特別扱いにしたほうがいいでしょ
うか。


Index: lib/soap/mapping/rubytypeFactory.rb =================================================================== RCS file: /cvs/ruby/src/ruby/lib/soap/mapping/rubytypeFactory.rb,v retrieving revision 1.7 diff -U2 -p -r1.7 rubytypeFactory.rb --- lib/soap/mapping/rubytypeFactory.rb 20 Dec 2004 13:50:08 -0000 1.7 +++ lib/soap/mapping/rubytypeFactory.rb 17 May 2005 07:07:06 -0000 @@ -425,5 +425,5 @@ private backtrace = Mapping._soap2obj(node['backtrace'], map) obj = Mapping.create_empty_object(klass) - obj = obj.exception(message) + obj = Exception.instance_method(:initialize).bind(obj).call(message) mark_unmarshalled_obj(node, obj) obj.set_backtrace(backtrace)
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦