From: "matz (Yukihiro Matsumoto)" Date: 2013-07-04T10:04:38+09:00 Subject: [ruby-core:55790] [ruby-trunk - Feature #8600][Rejected] Recognize variables declared in if modifier at end of line Issue #8600 has been updated by matz (Yukihiro Matsumoto). Description updated Status changed from Open to Rejected Variables are declared in the order of appearance. I don't want to introduce exceptions. Matz. ---------------------------------------- Feature #8600: Recognize variables declared in if modifier at end of line https://bugs.ruby-lang.org/issues/8600#change-40285 Author: rudolph9 (Kurt Rudolph) Status: Rejected Priority: Normal Assignee: Category: Target version: next minor (({2.0.0 (main):0 > .ruby -v ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0] 2.0.0 (main):0 > ([0,1,2])[i] = 1.0 if i = ['seconds'].find_index('seconds') NameError: undefined local variable or method `i' for main:Object from (pry):1:in `__pry__'})) Is it possible to get rid of this kind of error? Especially since it doesn't matter what the value of the variable is so long as it's defined. (({2.0.0 (main):0 > i = 10000 => 10000 2.0.0 (main):0 > ([0,1,2])[i] = 1.0 if i = ['seconds'].find_index('seconds') => 1.0})) -- http://bugs.ruby-lang.org/