From: matz@... (Yukihiro Matsumoto) Date: 1998-04-24T17:49:04+09:00 Subject: [ruby-dev:2505] Re: iterator variable (Re: Re: ) まつもと ゆきひろです In message "[ruby-dev:2493] Re: iterator variable (Re: Re: )" on 98/04/24, 石塚圭樹 writes: |けいじゅ@日本ラショナルソフトウェアです. |b = proc{binding} |eval %q[proc{ |#val = nil; idx = -1 |%w(a b c d e).each_with_index{|val, idx| break if idx == 2} |p idx #=> 2 |p val #=> "c" |}.call], b |-------------------------------------- |dim% ruby /tmp/zz |2 |"c" | |多分ですね... こんな感じで, 動くところに問題があると思います. rubyその |ものの問題じゃないでしょうか? これはバグです.修正パッチをつけておきます. が,この対応をしてもirbでの問題は残るので問題は別のところに ありそうです.探さないと. --- eval.c 1998/04/20 05:55:35 1.1.1.2.2.45 +++ eval.c 1998/04/24 08:47:42 @@ -1704,3 +1704,2 @@ PUSH_BLOCK(node->nd_var, node->nd_body); - _block.d_vars = new_dvar(0,0); PUSH_TAG(PROT_FUNC); @@ -2806,3 +2805,4 @@ the_block = block->prev; - the_dyna_vars = block->d_vars; + the_dyna_vars = new_dvar(0, 0); + the_dyna_vars->next = block->d_vars; the_class = block->klass;