From: Dave Thomas Date: 2004-03-04T12:30:07+09:00 Subject: Re: questions... about Proc,lambda,block On Mar 3, 2004, at 18:59, Yukihiro Matsumoto wrote: > * break and return cause LocalJumpError when a proc is executed > (by Proc#call) after passing attached method invocation. We call > it orphan proc, but you may name it a better name. I'm not sure I understand the orphaning rules. For example, in def m1(&b) puts "m1" yield end def m2(&b) puts "m2" b.call end m1 { break } m2 { break } The two blocks appear to have the same relationship to their point of invocation (that is, both are attached to the method from with they are called), and yet the first break terminates m1 (which I expected) but the second break causes a LocalJumpError (which I didn't). Cheers Dave