Project

General

Profile

Bug #6660

prepend したクラスの instance_methods(false)が空になる

Added by Tomoyuki Chikanaga over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
ruby -v:
ruby 2.0.0dev (2012-06-27 trunk 36240) [x86_64-darwin10.8.0]
[ruby-dev:45863]

Description

Module#prepend を実行したクラスの instance_methods(false)を実行すると結果が常に空になってしまうようです。

パッチを添付します。

prepend_instance_methods_false.patch View (1.42 KB) Tomoyuki Chikanaga, 06/28/2012 03:42 AM

Associated revisions

Revision 36243
Added by Tomoyuki Chikanaga over 4 years ago

  • class.c (class_instance_method_list): consider prepended Class/Module
    when recur != 0. [Bug #6660]

  • test/ruby/test_module.rb (test_prepend_instance_methods_false): add
    a test for it.

Revision 36243
Added by Tomoyuki Chikanaga over 4 years ago

  • class.c (class_instance_method_list): consider prepended Class/Module
    when recur != 0. [Bug #6660]

  • test/ruby/test_module.rb (test_prepend_instance_methods_false): add
    a test for it.

Revision 36243
Added by Tomoyuki Chikanaga over 4 years ago

  • class.c (class_instance_method_list): consider prepended Class/Module
    when recur != 0. [Bug #6660]

  • test/ruby/test_module.rb (test_prepend_instance_methods_false): add
    a test for it.

History

#1 [ruby-dev:45865] Updated by Nobuyoshi Nakada over 4 years ago

  • Status changed from Open to Assigned
  • Assignee changed from Nobuyoshi Nakada to Tomoyuki Chikanaga

よいと思います。
お願いします。

#2 [ruby-dev:45866] Updated by Tomoyuki Chikanaga over 4 years ago

なかださん、ありがとうございます。コミットします。

しかし今度は prepend したクラスのオブジェクトに特異クラスを作ってから Object#methods(false) した時にどうなるかというのが気になってきました。
prepend した時に作られる IClass に何かフラグが付けられるといいような気がしてきました。

#3 Updated by Tomoyuki Chikanaga over 4 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r36243.
Tomoyuki, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • class.c (class_instance_method_list): consider prepended Class/Module
    when recur != 0. [Bug #6660]

  • test/ruby/test_module.rb (test_prepend_instance_methods_false): add
    a test for it.

Also available in: Atom PDF