前田です。
RC2003のスライド(http://www.rubyist.net/~matz/slides/rc2003/mgp00011.html)
をながめていて、
* Block parameters will be block local
even if variables with same names exist
という記述を見つけたのですが、
def foo
x = 1
iter do |x|
p x # このxはブロックローカル
end
p x # このxはメソッドローカル
end
ということですよね?
こういうコード(内側のブロックで同じ名前の変数を再定義するコード)
はエラーになった方が好ましいように思うのですが、いかがでしょうか?
--
前田 修吾