Unverified Commit 6be5160e authored by Bouke van der Bijl's avatar Bouke van der Bijl Committed by Clayton Smith

Fix 36fc1f14 not checking in the right location

parent db1bd078
...@@ -280,8 +280,6 @@ mrb_exc_set(mrb_state *mrb, mrb_value exc) ...@@ -280,8 +280,6 @@ mrb_exc_set(mrb_state *mrb, mrb_value exc)
mrb->exc = 0; mrb->exc = 0;
} }
else { else {
if (!mrb_obj_is_kind_of(mrb, exc, mrb->eException_class))
mrb_raise(mrb, E_TYPE_ERROR, "exception object expected");
mrb->exc = mrb_obj_ptr(exc); mrb->exc = mrb_obj_ptr(exc);
} }
} }
...@@ -289,6 +287,9 @@ mrb_exc_set(mrb_state *mrb, mrb_value exc) ...@@ -289,6 +287,9 @@ mrb_exc_set(mrb_state *mrb, mrb_value exc)
MRB_API mrb_noreturn void MRB_API mrb_noreturn void
mrb_exc_raise(mrb_state *mrb, mrb_value exc) mrb_exc_raise(mrb_state *mrb, mrb_value exc)
{ {
if (!mrb_obj_is_kind_of(mrb, exc, mrb->eException_class)) {
mrb_raise(mrb, E_TYPE_ERROR, "exception object expected");
}
mrb_exc_set(mrb, exc); mrb_exc_set(mrb, exc);
if (!mrb->gc.out_of_memory) { if (!mrb->gc.out_of_memory) {
exc_debug_info(mrb, mrb->exc); exc_debug_info(mrb, mrb->exc);
......
...@@ -51,3 +51,21 @@ assert('Can still call super when BasicObject#method_missing is removed') do ...@@ -51,3 +51,21 @@ assert('Can still call super when BasicObject#method_missing is removed') do
end end
end end
end end
assert("NoMethodError#new does not return an exception") do
begin
class << NoMethodError
def new(*)
nil
end
end
assert_raise(TypeError) do
Object.q
end
ensure
class << NoMethodError
remove_method :new
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment