summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spec/ruby/core/symbol/to_proc_spec.rb8
-rw-r--r--vm_insnhelper.c1
2 files changed, 5 insertions, 4 deletions
diff --git a/spec/ruby/core/symbol/to_proc_spec.rb b/spec/ruby/core/symbol/to_proc_spec.rb
index 81939e0046..6d9c4bc622 100644
--- a/spec/ruby/core/symbol/to_proc_spec.rb
+++ b/spec/ruby/core/symbol/to_proc_spec.rb
@@ -58,8 +58,8 @@ describe "Symbol#to_proc" do
@a = []
singleton_class.class_eval(&body)
tap(&:pub)
- proc{tap(&:pro)}.should raise_error(NoMethodError)
- proc{tap(&:pri)}.should raise_error(NoMethodError)
+ proc{tap(&:pro)}.should raise_error(NoMethodError, /protected method `pro' called/)
+ proc{tap(&:pri)}.should raise_error(NoMethodError, /private method `pri' called/)
@a.should == [:pub]
@a = []
@@ -67,8 +67,8 @@ describe "Symbol#to_proc" do
o = c.new
o.instance_variable_set(:@a, [])
o.tap(&:pub)
- proc{tap(&:pro)}.should raise_error(NoMethodError)
- proc{o.tap(&:pri)}.should raise_error(NoMethodError)
+ proc{tap(&:pro)}.should raise_error(NoMethodError, /protected method `pro' called/)
+ proc{o.tap(&:pri)}.should raise_error(NoMethodError, /private method `pri' called/)
o.a.should == [:pub]
end
end
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 68362ddf60..3c41adcdc9 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -3256,6 +3256,7 @@ vm_call_symbol(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp,
return vm_call_method_each_type(ec, reg_cfp, calling);
case METHOD_VISI_PRIVATE:
vm_cc_method_missing_reason_set(cc, MISSING_PRIVATE);
+ break;
case METHOD_VISI_PROTECTED:
vm_cc_method_missing_reason_set(cc, MISSING_PROTECTED);
break;