diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-11-17 21:17:19 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-11-20 16:04:45 +0900 |
commit | fac2498e0299f13dffe4f09a7dd7657fb49bf643 (patch) | |
tree | ad3780bc4d89b0f430d9149dce7a409794d89246 /vm_insnhelper.c | |
parent | 4b899f91647b7da1174492f891de3d6ee8128458 (diff) | |
download | ruby-fac2498e0299f13dffe4f09a7dd7657fb49bf643.tar.gz |
[Bug #11213] let defined?(super) call respond_to_missing?
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index f902a65f34..4f5d18a355 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -3770,7 +3770,7 @@ vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_ } case DEFINED_FUNC: klass = CLASS_OF(v); - if (rb_ec_obj_respond_to(ec, v, SYM2ID(obj), TRUE)) { + if (rb_ec_obj_respond_to(ec, klass, v, SYM2ID(obj), TRUE)) { expr_type = DEFINED_METHOD; } break; @@ -3811,7 +3811,7 @@ vm_defined(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, rb_num_t op_ VALUE klass = vm_search_normal_superclass(me->defined_class); ID id = me->def->original_id; - if (rb_method_boundp(klass, id, 0)) { + if (rb_ec_obj_respond_to(ec, klass, GET_SELF(), id, TRUE)) { expr_type = DEFINED_ZSUPER; } } |