0
$ irb
irb(main):001:0> foo
NameError: undefined local variable or method `foo' for main:Object
  from (irb):1
  from /Users/justinwiley/.rbenv/versions/2.1.2/bin/irb:11:in `<main>'

So far so good, 'foo' is undefined.

irb(main):002:0> if false
irb(main):003:1> foo = 1
irb(main):004:1> end
=> nil

foo should still be undefined, but...

irb(main):005:0> foo
=> nil

Now it exists in the symbol table? Since the logic in the if branch should never be reached, I would assume foo should remain undefined, instead of suddenly being nil?

Allyl Isocyanate
  • 13,306
  • 17
  • 79
  • 130

0 Answers0