On 11/22/05, Yukihiro Matsumoto <matz / ruby-lang.org> wrote:
> Hi,
>
> In message "Re: semenatics of if/unless/while statement modifiers"
>     on Tue, 22 Nov 2005 09:54:46 +0900, Stefan Kaes <skaes / gmx.net> writes:
>
> |So this behaviour is caused by intermingling parsing with semantic
> |analysis. Much like forward procedure declarations were required for old
> |Pascal compilers.
>
> I believe it's a strict application of the "local variables should be
> assigned first" rule.  Not a compromise for the compiler.
>
> |I hope this will be changed for Ruby 2.0, as it's an ugly wart on an
> |otherwise very clean lanuage.
>
> I think it's not, where "not" means "not ugly".
>
>                                                         matz.
>
>

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?

--
http://nohmad.sub-port.net