Hi,

At Mon, 14 Sep 2009 18:57:14 +0900,
Cody Brocious wrote in [ruby-core:25571]:
> Is this behavior intentional?  If not, is there a limitation in
> rb_vm_invoke_proc() which makes passing an implicit block a problem?
> It seems that killing the arg_block check would solve the issue if
> there's no problem in rb_vm_invoke_proc().

Absolutely intentional.  `yield' calls the block given to the
context.  In your example, the yield in the block to `set' is
executed in the top level context, which has no block.

-- 
Nobu Nakada