From fac2498e0299f13dffe4f09a7dd7657fb49bf643 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 17 Nov 2020 21:17:19 +0900 Subject: [Bug #11213] let defined?(super) call respond_to_missing? --- vm_insnhelper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'vm_insnhelper.c') 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; } } -- cgit v1.2.3