mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Fix private methods reported as protected when called via Symbol#to_proc
Ref: bfa6a8ddc8
Ref: [Bug #18826]
This commit is contained in:
parent
c2daa05693
commit
b2d0f78869
Notes:
git
2022-08-26 00:50:17 +09:00
2 changed files with 5 additions and 4 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue