Issue #15488 has been updated by osyo (manga osyo).


`File.const_defined?` だと `true` になるようですね。

```ruby
p Object.const_get("File::NULL")       #=> "/dev/null"
p Object.const_defined?("File::NULL")  #=> false

p File.const_get("NULL")       #=> "/dev/null"
p File.const_defined?("NULL")  #=> true
``` 

----------------------------------------
Bug #15488: const_defined?("File::NULL") の挙動
https://bugs.ruby-lang.org/issues/15488#change-76001

* Author: shuujii (Shuji KOBAYASHI)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
* Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
`const_get` と `const_defined?` について、例えば `Math::PI` では以下のようになり
どちらも期待通りの結果になります。

~~~ruby
p Object.const_get("Math::PI")         #=> 3.141592653589793
p Object.const_defined?("Math::PI")    #=> true
~~~

一方、`File::NULL` の場合は以下のように `const_get` で値が取得できるのに
`const_defined?` が `false` になります。

~~~ruby
p Object.const_get("File::NULL")       #=> "/dev/null"
p Object.const_defined?("File::NULL")  #=> false
~~~

これは意図的でしょうか。



-- 
https://bugs.ruby-lang.org/