[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>

 ruby-core を読んでいない人もいると思うので、ここでもアナウンス

20 messages 2007/01/30

[ruby-dev:30072] send/__send__ and private method

From: SASADA Koichi <ko1@...>
Date: 2007-01-04 12:05:11 UTC
List: ruby-dev #30072
 ささだです。

 現在、trunk では send/__send__ メソッドは private なメソッドを一切呼べ
ないようになっているため、test-all が沢山通りません(lib/scanf.rb と
lib/rss に多く見られるのですが)。

 YARV マージ前は send(:m) は、m() と同義であるため、private なメソッド
を呼べるようにするべきである、ということで、特別な対処をしています。

 これは、そうあるべきでしょうか。funcall(:m) (__send!(:m))とすれば
private なメソッドが呼べるので、そちらを利用して下さい、というわけにはい
きませんでしょうか。

 send を使う人は、「receiver があれば private なメソッドが呼べない、な
ければ呼べる」と覚える必要があるのは使いづらそうだなぁと思います。上記連
想から「問題ない」という意見もあるかもしれないんですが。

-- 
// SASADA Koichi at atdot dot net


In This Thread

Prev Next