From: Yukihiro Matsumoto Date: 2005-11-22T15:28:31+09:00 Subject: Re: semenatics of if/unless/while statement modifiers Hi, In message "Re: semenatics of if/unless/while statement modifiers" on Tue, 22 Nov 2005 15:01:18 +0900, Gyoung-Yoon Noh 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.