diff --git a/src/vm.c b/src/vm.c index 5bfae75c2..0ff1d6691 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1915,7 +1915,7 @@ RETRY_TRY_BLOCK: } else if ((m.flags & MRB_METHOD_PROTECTED_FL) && mrb_obj_is_kind_of(mrb, recv, ci->u.target_class)) { mrb_value args = (ci->n == 15) ? regs[1] : mrb_ary_new_from_values(mrb, ci->n, regs+1); - mrb_no_method_error(mrb, mid, args, "proteced method '%n' called for %T", mid, recv); + mrb_no_method_error(mrb, mid, args, "protected method '%n' called for %T", mid, recv); } } ci->cci = CINFO_NONE; diff --git a/test/t/module.rb b/test/t/module.rb index 7a6b895c8..dee47c814 100644 --- a/test/t/module.rb +++ b/test/t/module.rb @@ -802,14 +802,18 @@ assert('method visibility') do v = CallTypeTest.new - assert_raise(NoMethodError) { v.func { :test } } + assert_raise_with_message_pattern(NameError, "private method 'func' called for CallTypeTest") do + v.func { :test } + end assert_equal :test, v.test_private { :test } class CallTypeTest protected :func end - assert_raise(NoMethodError) { v.func { :test } } + assert_raise_with_message_pattern(NameError, "protected method 'func' called for CallTypeTest") do + v.func { :test } + end assert_equal :test, v.test_protected { :test } assert_equal :test, v.test_private { :test }