In article <1094424793.536529.10888.nullmailer / picachu.netlab.jp>,
  Yukihiro Matsumoto <matz / ruby-lang.org> writes:

> |次のように、private に load されているファイル (s.rb) 内で require し
> |たライブラリ (t.rb) で定義されている関数 (test) で Module.nesting を呼
> |び出すと、初回だけ空で、それ以降は無名モジュールを要素とする配列が返っ
> |て来るのですが、このように返値が初回とそれ以降で異なるのは意図された挙
> |動でしょうか?
>
> バグです。レポートありがとうございました。

Module.nesting の返値に無名モジュールが常に入るようになったので、返値
が初回とそれ以降で変わるという挙動はなくなりました。

ただ、よく分からないのですが、Module.nesting の先頭というのは、def で
メソッドが定義される対象とは限らないのでしょうか?

次のようにすると、def が Module.nesting の先頭の無名モジュールではなく、
Object に定義されることが観測されます。

% cat t.rb 
def test
  p Module.nesting
  def xxx
    p :xxx
  end
  p method(:xxx)
end 
% cat s.rb 
require 't.rb'
test
% ruby -e 'load "s.rb", true'
[#<Module:0x401c6d68>]
#<Method: Object#xxx>
-- 
[田中 哲][たなか あきら][Tanaka Akira]