Issue #4473 has been updated by Koichi Sasada.

Assignee set to Koichi Sasada

Yugui-san,

This fix will introduce incompatibility from 1.9.2.  Is it acceptable?
----------------------------------------
Bug #4473: Calling return within begin still executes else
http://redmine.ruby-lang.org/issues/4473

Author: Todd Huss
Status: Open
Priority: Normal
Assignee: Koichi Sasada
Category: 
Target version: 
ruby -v: -


=begin
I see this issue in 1.9.2-p0 through the current version 1.9.2-p136 on Mac OS X. The following code prints 'else executed'. Whereas in Ruby 1.8.x it would not execute the else statement if you called return from within a begin block.

In summary, I would expect the following code to not print anything, but in Ruby 1.9.2 it actually prints 'else executed':

# This code prints 'else executed'
def test_return_in_method
  begin
    return
  rescue
    puts 'rescue executed'
  else
    puts 'else executed'
  end
end
test_return_in_method
=end



-- 
http://redmine.ruby-lang.org