Actions
Bug #7107
closedRuby can no longer find constants in methods in anonymous modules
Bug #7107:
Ruby can no longer find constants in methods in anonymous modules
Description
=begin
With ruby 1.9 and newer C cannot be found if m is duplicated:
module M
C = 1
def self.m
C
end
end
puts 'named module'
M.m
puts 'anonymous module'
m = M.dup
m.m
Ruby 1.8:
$ ruby -v t.rb
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
named module
anonymous module
With Ruby 1.9:
$ ruby19 -v t.rb
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.2.0]
named module
anonymous module
t.rb:5:in m': uninitialized constant Module::C (NameError) from t.rb:14:in
'
With trunk:
$ ruby19 -v t.rb
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.2.0]
named module
anonymous module
t.rb:5:in `m': uninitialized constant Module::C (NameError)
from t.rb:14:in `<main>'
(({m::C})) works in all three versions, though.
=end
Actions