Split visibility cases
This commit is contained in:
parent
52ef2477e4
commit
1351374bd1
13
vm_method.c
13
vm_method.c
@ -1304,10 +1304,15 @@ rb_method_boundp(VALUE klass, ID id, int ex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (me != NULL) {
|
if (me != NULL) {
|
||||||
if ((ex & ~BOUND_RESPONDS) &&
|
if (ex & ~BOUND_RESPONDS) {
|
||||||
((METHOD_ENTRY_VISI(me) == METHOD_VISI_PRIVATE) ||
|
switch (METHOD_ENTRY_VISI(me)) {
|
||||||
((ex & BOUND_RESPONDS) && (METHOD_ENTRY_VISI(me) == METHOD_VISI_PROTECTED)))) {
|
case METHOD_VISI_PRIVATE:
|
||||||
return 0;
|
return 0;
|
||||||
|
case METHOD_VISI_PROTECTED:
|
||||||
|
if (ex & BOUND_RESPONDS) return 0;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (me->def->type == VM_METHOD_TYPE_NOTIMPLEMENTED) {
|
if (me->def->type == VM_METHOD_TYPE_NOTIMPLEMENTED) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user