Issue #4795 has been updated by Nobuyoshi Nakada.

Status changed from Open to Rejected

As Magnus Holm has explained, it's the spec.
----------------------------------------
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: Rejected
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