Project

General

Profile

Bug #15501

private_methods(false) changes behavior based on singleton class allocation

Added by kddeisz (Kevin Deisz) over 1 year ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Target version:
-
[ruby-core:90872]

Description

class Module
  prepend Module.new
end

module Foo
end

p Foo.private_methods(false)
# => [:remove_const, :method_added, :method_removed, :method_undefined, :prepend_features, :extend_object, :refine, :using, :append_features, :initialize, :initialize_clone, :initialize_copy, :public, :private, :module_function, :protected, :included, :extended, :prepended]

Foo.singleton_class

p Foo.private_methods(false)
# => []

I have no idea what is causing this, but I tested it and it looks like this goes back to at least 2.1.5. It looks like before the singleton class is allocated private_methods(false) returns a whole host of methods, while after it returns the expected output. Any help/advice would be appreciated.

Also available in: Atom PDF