Forum: Ruby-core Object.const_get(:A, false) can access BasicObject::A

Posted by shugo (Shugo Maeda) (Guest)
on 2013-01-09 06:59
(Received via mailing list)
Issue #3422 has been updated by shugo (Shugo Maeda).

Assignee changed from matz (Yukihiro Matsumoto) to kosaki (Motohiro 
KOSAKI)

mame (Yusuke Endoh) wrote:
> Matz, do you think that it should be changed again?
> IMO, in principle, I don't think that it is a good idea to change the behavior 
so many times.

I'm not sure why this ticket has been reopened, but if it's because of 
the following comment, this ticket can be closed, because the request 
has already been rejected in #7213.

> Could the following problem be related to this change? "Including namespace 
module through RSpec config in Ruby 
1.9.3":http://stackoverflow.com/questions/13042298/includ...
>
> If so, wouldn't it be a better idea to revert this?

Kosaki-san, why did you reopen this ticket?

----------------------------------------
Bug #3422: Object.const_get(:A, false) can access BasicObject::A
https://bugs.ruby-lang.org/issues/3422#change-35298

Author: judofyr (Magnus Holm)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category: core
Target version: 2.0.0
ruby -v: -


=begin
 From the documentation of Module#const_get(sym, inherit=true):

   If the constant is not defined or is defined by the ancestors and 
inherit is false, NameError will be raised.

 Yet, this works fine:

   BasicObject::A = 1
   Object.const_get(:A, false) # => 1

 While I haven't tested it, I believe the attached patch should fix the 
issue.
=end
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.