Hi,

In message "Re: semenatics of if/unless/while statement modifiers"
    on Tue, 22 Nov 2005 15:01:18 +0900, Gyoung-Yoon Noh <nohmad / gmail.com> writes:

|> I believe it's a strict application of the "local variables should be
|> assigned first" rule.  Not a compromise for the compiler.

|I wonder following is same type of problem:
|
|irb(main):001:0> a
|NameError: undefined local variable or method `a' for main:Object
|        from (irb):1
|irb(main):002:0> if false then a = true end
|=> nil
|irb(main):003:0> a
|=> nil
|
|So, this behavior tell us not to use undefined local variables?

It's to determine which identifiers to be local variables.  You see an
assignment its name is a local variable hereafter, no matter if it is
executed or not, no exception.  If I allow assignments in the modifier
to determine local variables, one need to look in code back and forth,
especially when the code become complex.

							matz.