From: Magnus Holm Date: 2011-05-29T02:09:48+09:00 Subject: [ruby-core:36535] Re: [Ruby 1.9 - Bug #4795] Nested classes don't seem to resolve correctly when another class exists with the same name `class Foo::Bar::Baz` does *not* open the Foo::Bar scope. `class Foo::Bar; class Baz` does however. // Magnus Holm On Sat, May 28, 2011 at 16:51, John Feminella wrote: > > Issue #4795 has been updated by John Feminella. > > > But isn't Baz defined at the immediate Foo::Bar scope? Why does it keep going up the chain? > ---------------------------------------- > Bug #4795: Nested classes don't seem to resolve correctly when another class exists with the same name > http://redmine.ruby-lang.org/issues/4795 > > Author: John Feminella > Status: Open > Priority: Normal > Assignee: > Category: > Target version: > ruby -v: ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] > > > # in /tmp/foo.rb > module Foo > end > > module Foo::Bar > ��class Baz; end > end > > class Baz > ��def say > �� ��"::Baz" > ��end > end > > class Foo::Bar::Baz > ��def say > �� ��"::Foo::Bar::Baz" > ��end > > ��def x > �� ��Baz.new.say > ��end > end > > # in irb: >> load '/tmp/foo.rb' > ��=> true >> Foo::Bar::Baz.new.x > ��=> "::Baz" # expected `"::Foo::Bar::Baz"` > > =begin > This doesn't seem like the expected result. Have I misunderstood how constants work? > =end > > > -- > http://redmine.ruby-lang.org > >