まつもと ゆきひろです

In message "[ruby-dev:16967] Re: Module::new with block is useful?"
    on 02/04/19, Koji Arai <JCA02266 / nifty.ne.jp> writes:

|このケースで、nested method definition にする理由ってあるの
|でしょうか?コンテキストが完全に切り替わるので、定義できても
|良いように思うのですが。

'nested method definition'の検出を行っているのはコンパイル時
で、そのコンパイル時にはコンテキストが完全に切り替わるかどう
かという情報は得られませんから、この場合に限り検出しないとい
うことは難しいと思います。

が、この'nested method definition'のために無理にevalを使う例
などもありますから、「ネストして定義しようがユーザの自己責任
で許すようにする」というのもひとつの考え方ではあります。

|> トップレベルで無名クラスを作ることを想定しています。
|
|気がつかなかった。マニュアルに書いておくかなあ。
|「トップレベル」に限りませんよね?

あ、ここでの「トップレベル」ってのは「メソッド定義の外側」っ
て意味です。私はよくそういう使い方をするんですが、あんまり適
切じゃないですね。

                                まつもと ゆきひろ /:|)