From: matz@... (Yukihiro Matsumoto) Date: 2003-01-30T02:42:30+09:00 Subject: Re: Local variables & blocks Hi, In message "Re: Local variables & blocks" on 03/01/30, Paul Brannan writes: |> * block parameters are local to the block |> * shadowing cause warnings |> * no other way to make block local variables | |Given this, then: | | def foo(&block); block.call; end | p = proc { p x } | foo { x = 1 } | p.call() | |Will print: | | 1 No. The role of idenfiers are fixed at compile time by appearance order. Since "x" in "proc{p x}" appears before assignment, it's not a local variable access in any way. So behavior of this chunk of code will not be changed. But yes, there're some incompatible cases, and I will prepare warnings for these cases in the future stable-before-Rite version. matz.