[ruby-dev:46897] [ruby-trunk - Bug #7743][Rejected] protected なメソッドを respond_to? で評価した時の結果が 1.9 と異なる

From: "hsbt (Hiroshi SHIBATA)" <shibata.hiroshi@...>
Date: 2013-01-28 06:55:32 UTC
List: ruby-dev #46897
Issue #7743 has been updated by hsbt (Hiroshi SHIBATA).

Status changed from Assigned to Rejected

了解しました。

よくよく考えてみましたが、変更後の挙動の方が正しいと思いますのでクローズします。
影響のあったライブラリの方を直すことにします。

ご回答ありがとうございます。
----------------------------------------
Bug #7743: protected なメソッドを respond_to? で評価した時の結果が 1.9 と異なる
https://bugs.ruby-lang.org/issues/7743#change-35684

Author: hsbt (Hiroshi SHIBATA)
Status: Rejected
Priority: Normal
Assignee: knu (Akinori MUSHA)
Category: core
Target version: 2.0.0
ruby -v:  ruby 2.0.0dev (2013-01-27 trunk 38955) [x86_64-darwin12.2.1]


以下のようなコードを 1.9.3 と 2.0.0 で実行した時の結果が異なるようです。

 % cat respond_to.rb
 class A
   def initialize
     p respond_to?(:foo)
     p respond_to?(:foo, true)
   end
 
   protected
 
   def foo
   end
 end
 
 A.new

実行結果は以下の通りです。

 % ruby -v respond_to.rb
 ruby 1.9.3p375 (2013-01-18 revision 38876) [x86_64-darwin12.2.1]
 true
 true
 % ruby -v respond_to.rb
 ruby 2.0.0dev (2013-01-27 trunk 38955) [x86_64-darwin12.2.1]
 false
 true

この挙動の違いは不具合と思うのですが確認していただけないでしょうか。
もし意図した挙動である場合、影響範囲が大きいので 1.9 の挙動に戻した方がよいと思います。


-- 
http://bugs.ruby-lang.org/

In This Thread