From: SASADA Koichi Date: 2007-01-23T12:16:32+09:00 Subject: [ruby-dev:30154] Re: send/__send__ and private method  ささだです。 Yukihiro Matsumoto wrote: > | 了解しました。ちなみに、「こんなのを考えてる」という案があったら教えて > |いただければと思います。 > > はい。こんな感じで。 > > (1) sendはpublicしかアクセスしない > (2) sendもレシーバ付きメソッド呼び出しもprivateを「スキップ」。 > 現在は「エラー」。 > (3) 関数型メソッド呼び出しは以下の順序でメソッド探索 > * privateメソッド(BasicObjectまで) > * publicメソッド(CLASS_OF(self)からBasicObjectまで) > この結果、matzrubyのようにグローバルメソッドキャッシュテー > ブルを使うならテーブルがふたつ必要になる。インラインメソッ > ドキャッシュは変更の必要なし(だと思う)。  このルールだと、 class C1 def m "C1#m" end private :m end class C2 < C1 def m "C2#m" end def foo m end end C2.new.foo が C1#m を呼び出しますが、そういうもんでしょうか。 -- // SASADA Koichi at atdot dot net