`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 <johnf / bitsbuilder.com> 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 > >