1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[ruby/irb] handle repeated exception separately

https://github.com/ruby/irb/commit/fcf6b34bc5
This commit is contained in:
Nobuhiro IMAI 2021-01-15 22:00:38 +09:00 committed by aycabta
parent 3f0b4665df
commit d290a02bd7
2 changed files with 20 additions and 0 deletions

View file

@ -574,6 +574,8 @@ module IRB
next
end
handle_exception(exc)
@context.workspace.local_variable_set(:_, exc)
exc = nil
end
end
end

View file

@ -105,6 +105,24 @@ module TestIRB
$VERBOSE = verbose
end
def test_eval_input_raise2x
input = TestInputMethod.new([
"raise 'Foo'\n",
"raise 'Bar'\n",
"_\n",
])
irb = IRB::Irb.new(IRB::WorkSpace.new(Object.new), input)
out, err = capture_output do
irb.eval_input
end
assert_empty err
assert_pattern_list([
:*, /\(irb\):1:in `<main>': Foo \(RuntimeError\)\n/,
:*, /\(irb\):2:in `<main>': Bar \(RuntimeError\)\n/,
:*, /#<RuntimeError: Bar>\n/,
], out)
end
def test_eval_object_without_inspect_method
verbose, $VERBOSE = $VERBOSE, nil
all_assertions do |all|