aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-11-17 21:17:19 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-11-20 16:04:45 +0900
commitfac2498e0299f13dffe4f09a7dd7657fb49bf643 (patch)
treead3780bc4d89b0f430d9149dce7a409794d89246 /vm_insnhelper.c
parent4b899f91647b7da1174492f891de3d6ee8128458 (diff)
downloadruby-fac2498e0299f13dffe4f09a7dd7657fb49bf643.tar.gz
[Bug #11213] let defined?(super) call respond_to_missing?
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c4
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;
}
}