Project

General

Profile

Actions

Bug #4502

closed

strange Module.new behaviour

Added by evilbrain (Andy Bogdanov) almost 14 years ago. Updated almost 12 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mingw32]
Backport:
[ruby-core:<unknown>]

Description

=begin
First I create a proc:
p = proc {
self::X = Class.new
def self.X
X.new
end
}
Then I create a module:
A = Module.new(&p)
puts A.X # => #<A::X:0x9c2e774>
Then I create another module:
B = Module.new(&p)
puts B.X # => #<B::X:0x9c39304>
Everything seems to be ok. But after module B was created (({A.X})) started to return instances of (({B::X}))
puts A.X # => #<B::X:0x9c38238>

When (({self::X.new})) is used instead of (({X.new})) everything works as expected.

More info can be found here http://www.ruby-forum.com/topic/1275717
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0