Feature #7075
closed
const_get でトップレベルの定数を参照する時に警告
Added by nagachika (Tomoyuki Chikanaga) about 12 years ago.
Updated about 12 years ago.
Description
class C; end
A = 42
C::A # => warning: toplevel constant A referenced by C::A
C.const_get(:A)
のように C::A でトップレベルの(Object直下の)定数を参照する時には警告メッセージが
出力されますが、Module#const_get で参照する時は警告が出力されません。
同じように警告が出たほうがよいと考えますがどうでしょう。
- Assignee set to nagachika (Tomoyuki Chikanaga)
近永さんがさくっと入れちゃうとどうでしょうか.
警告だとあまり困る人は居なさそう?
string concatenation の警告では,テストが全然通らなくなった,という例が
最近あったので,その辺が問題無ければいいような気がするんですが,どうでしょう.
まつもとさん,いかがでしょうか.
const_getをする人は事態を把握しているのではないかと思って警告してなかったんですが、必要ですかねえ。
まあ、やってみてくださっても構いません。
- Status changed from Open to Assigned
- Target version changed from 2.0.0 to 2.6
私も matz に賛成です。
const_get のようなリフレクションは自分の足を撃つための裏道という認識です。
private constant も const_get なら読み出せるとか。
まだコミットされていないようですし、next minor にしときます。
--
Yusuke Endoh mame@tsg.ne.jp
- Status changed from Assigned to Rejected
反応が遅くなってすみません。
const_get の第2引数に false を指定すると C は取れなくなるので、第2引数の指定忘れに気がつくかと思って提案してました。
しかしわかっててあえて利用する可能性もあるというのは確かにありそうなので取り下げます。
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0