Hi,
In message "Re: Local variables & blocks"
on 03/01/30, Paul Brannan <pbrannan / atdesk.com> 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.