From: Akinori MUSHA Date: 2010-02-24T01:12:55+09:00 Subject: [ruby-dev:40465] Re: respond_to?() returns true --pgp-sign-Multipart_Wed_Feb_24_01:12:55_2010-1 Content-Type: text/plain; charset=ISO-2022-JP At Wed, 24 Feb 2010 00:55:39 +0900, matz wrote: > | このように respond_to? では、呼べるかどうかの検査という視点に > |おいて偽陽性と偽陰性がともに生じています。NoMethodError は気軽に > |rescue すべき例外ではなく(呼んだメソッドの先のバグも拾ってしまう)、 > |それを避けるための respond_to? ですから、少なくとも呼ぶこと自体は > |エラーにならないときのみ真を返すようにし、偽陽性を排除した方がいい > |のではないかと考えます。 > > というわけで、privateの件は偽陰性ではないと考えます。ただし、 > 前のメールでも書いたように method_missing による偽陰性は存在 > するので、本質的には指摘は当たっているのですが。で、偽陰性の > 排除についてですが、ちょっと考えた結果、賛成します。  ご検討ありがとうございます。賛成くださるのは偽陽性の排除ですよね。  偽陰性の方は、ちょっと私のニュアンスがよくなかったですが、仕様と して受け入れています。両側がぶれるのはよろしくないので揃えるべき 方だけでも揃えましょうという提案でした。 > | respond_to? の仕様を変更するとこのような非互換性も生じますが、 > |呼べないものが真を返さなくなることは概して歓迎できるのではないかと > |思います。何か見落としはあるでしょうか。 > > 私は思いつかないのですが、どなたか気がつきますでしょうか。 > 移行プロセスにはリリースマネージャに一任します。  私は広義にはバグといってもいいような気がしますし、 grep しても protected メソッドの使用頻度はさほど多くないので大きな問題には ならないと推測します。とはいえ 1.8 は変更せずそのままとします。 -- Akinori MUSHA / http://akinori.org/ --pgp-sign-Multipart_Wed_Feb_24_01:12:55_2010-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEABECAAYFAkuD/ocACgkQkgvvx5/Z4e5jLwCgnlV5WLq4O0U2IZc3zCdGXYrq YZkAoNKjIeJ/qdozMSIlxtiAXfN40Ksu =OHxs -----END PGP SIGNATURE----- --pgp-sign-Multipart_Wed_Feb_24_01:12:55_2010-1--