On Tue, Feb 18, 2003 at 07:27:53PM +0900, Steve Hill wrote:
> Block_local=Struct.new("Block_local", :a, :b)
> 
> a=1
> b=2
> 
> [1,2,3].each do |x|
> 	local=Block_local.new(a,b)
> 	local.a*=x
> 	local.b+=x
> 	p local
> end

You've only displaced the problem: 'local' now must be a block-local
variable, instead of 'a' and 'b'

If you declared 'local' in an outer scope, then under the current rules this
'local' will be bound to it, and things will break even worse than normal
:-)

Regards,

Brian.