From: SASADA Koichi Date: 2008-12-21T11:15:02+09:00 Subject: [ruby-dev:37519] Re: [ruby-cvs:28084] Ruby:r20866 (trunk): * error.c (exc_equal): duck typing equal to make it transitive.  ささだです.  この変更で,trunk の make test が動かなくなっていました.テストしてか らコミットすると,make test が動かず,意図しない変更を行ってしまったと気 づきやすくなると思います. sample/test.rb:exception ..../trunk/sample/test.rb:664:in `==': undefined method `message' for "this must be handled no.3":String (NoMethodError) from ../trunk/sample/test.rb:664:in `rescue in
' from ../trunk/sample/test.rb:656:in `
' test failed make: *** [test-sample] Error 1  ところで,この変更は,何を意図しているでしょうか.それによって,取り得 る解決方法が変わるかと思います. (1) Exception object (exe) と String object (str) は == で比較できる (1.1) 従来通り,必ず false となる (1.2) Exception#message と str が等しければ true を返す (2) 比較できない (2.1) 現在の通り,「message メソッドが無い」という例外を生じる (2.2) 従来通り,必ず false となる (3) その他  とりあえず,テストが動かないと開発が進められないので,なんとかするべき かと思いますが,takano32 さんがテスト側に応急処置をしてくれました. matz@ruby-lang.org wrote:: > matz 2008-12-19 08:42:00 +0900 (Fri, 19 Dec 2008) > > New Revision: 20866 > > http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20866 > > Log: > * error.c (exc_equal): duck typing equal to make it transitive. > [ruby-dev:34880] > > Modified files: > trunk/ChangeLog > trunk/error.c > -- // SASADA Koichi at atdot dot net