Project

General

Profile

Actions

Bug #10826

closed

Refinements make instance_methods(false) return methods of superclasses

Added by shugo (Shugo Maeda) about 9 years ago. Updated about 9 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-02-04 trunk 49489) [x86_64-linux]
[ruby-dev:48854]

Description

If a method is refined for a subclass X of the owner of the method,
X.instance_methods(false) returns that method even if it's not defined
in X.

class X
  def foo
  end
end

class Y < X
end

module Bar
  refine Y do
    def foo
    end
  end
end

p Y.instance_methods(false).include?(:foo) # false expected, but true is returned

Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #10765: Module#remove_method remove refined method entry.Closedshugo (Shugo Maeda)01/21/2015Actions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0