mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
eval.c: preserve errinfo
* eval.c (rb_ensure): preserve errinfo accross ensure proc before JUMP_TAG(). [ruby-core:52022] [Bug #7802] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
49c5a3da6f
commit
98932f5150
4 changed files with 66 additions and 0 deletions
32
test/-ext-/exception/test_ensured.rb
Normal file
32
test/-ext-/exception/test_ensured.rb
Normal file
|
@ -0,0 +1,32 @@
|
|||
require 'test/unit'
|
||||
require_relative '../../ruby/envutil'
|
||||
|
||||
module Bug
|
||||
class Bug7802 < RuntimeError
|
||||
end
|
||||
|
||||
class TestException < Test::Unit::TestCase
|
||||
def test_ensured
|
||||
assert_separately([], <<-'end;') # do
|
||||
|
||||
require '-test-/exception'
|
||||
|
||||
module Bug
|
||||
class Bug7802 < RuntimeError
|
||||
def try_method
|
||||
raise self
|
||||
end
|
||||
|
||||
def ensured_method
|
||||
[1].detect {|i| true}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
assert_raise(Bug::Bug7802, '[ruby-core:52022] [Bug #7802]') {
|
||||
Bug::Exception.ensured(Bug::Bug7802.new)
|
||||
}
|
||||
end;
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue