Bug #12402
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
In this example l'm intentionally passing bad data to `Date.parse` to trigger an exception. Depending on whether I use parenthesis in the method call, and whether I assign the result, I get different behavior for the inline rescue. Code: ~~~ruby ~~~ var1 = "apple" var1 = Date.parse var1 rescue nil var2 = "apple" var2 = Date.parse(var2) rescue nil def example1(bar) Date.parse bar rescue nil end def example2(bar) bar = Date.parse bar rescue nil bar end def example3(bar) bar = Date.parse(bar) rescue nil bar end puts "Variable 1: #{var1.nil?}" puts "Variable 2: #{var2.nil?}" puts "Example method 1: #{example1("apple").nil?}" puts "Example method 2: #{example2("apple").nil?}" puts "Example method 3: #{example3("apple").nil?}" ~~~ I would expect all 5 outputs from the above script to return true. Example: ``` Variable 1: false Variable 2: true Example method 1: true Example method 2: false Example method 3: true ```