Project

General

Profile

Bug #10092

singleton_method behaves inconsistent with singleton_methods on modules, extending self

Added by mudasobwa (Alexei Matyushkin) almost 6 years ago. Updated almost 6 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
ruby -v:
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
Backport:
[ruby-core:64008]

Description

Let’s consider the following code:

module M
  extend self
  def m_i 
    puts "m_i"
  end 
  def m
    puts "include? = [#{singleton_methods.include?(:m_i)}]"
    puts "call = [#{singleton_method(:m_i).call}]" rescue puts $!
  end 
end

it prints:

# include? = [true]
# undefined singleton method `m_i' for `M'

The method is listed under singleton_methods while the call to it via singleton_method raises an error.

Updated by nobu (Nobuyoshi Nakada) almost 6 years ago

  • Description updated (diff)
  • Status changed from Open to Rejected

You should compare singleton_methods(false).

Also available in: Atom PDF