From: matz@... (Yukihiro Matsumoto) Date: 2003-09-30T21:26:34+09:00 Subject: [ruby-dev:21449] Re: break from block yielded in until まつもと ゆきひろです In message "[ruby-dev:21445] Re: break from block yielded in until" on 03/09/30, nobu.nakada@nifty.ne.jp writes: |rb_catch()からrb_iterate(), catch_i(), rb_f_catch(), |rb_yield_0(), rb_yield()と呼び出されますが、ruby_scopeがずっと |共通になっているためrb_iterate()のPROT_ITERで止まってしまうよう |です。 なるほど。 |うーん、rb_iterate()でPUSH_SCOPE()してしまっていいんだろうか。 |rb_catch()でしたほうがいいような気がしなくもない。 これではまずいんです。rb_iter_break()がちゃんと動作しなくな るため、Enumerable#findなどが動かなくなります。 もうちょっと考えよう。