Project

General

Profile

Actions

Bug #6660

closed

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

Added by nagachika (Tomoyuki Chikanaga) over 12 years ago. Updated over 12 years ago.

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

Description

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

パッチを添付します。


Files

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

Updated by nobu (Nobuyoshi Nakada) over 12 years ago

  • Status changed from Open to Assigned
  • Assignee changed from nobu (Nobuyoshi Nakada) to nagachika (Tomoyuki Chikanaga)

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

Updated by nagachika (Tomoyuki Chikanaga) over 12 years ago

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

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

Actions #3

Updated by nagachika (Tomoyuki Chikanaga) over 12 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. [ruby-dev:45863] [Bug #6660]

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

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0