Running the following code in the debugger:
a = false
puts "debugger thinks a is nil"
and setting a breakpoint at the if statement, the Variables pane reports 'a' as nil. Adding a watch for 'a' also reports nil.
On the other hand, a.class reports FalseClass, and the code inside the if block is not executed, so clearly a is not actually nil, confirmed by the final puts.
Not trying to nitpick, just confused at this sometimes misleading behavior. Is it a bug or is it me?