diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | vm_insnhelper.c | 14 |
2 files changed, 8 insertions, 8 deletions
@@ -68,7 +68,7 @@ Tue Dec 11 00:26:58 2012 Shugo Maeda <shugo@ruby-lang.org> superclass <M>'. * vm_insnhelper.c (vm_search_super_method): do not raise a - NotImplementError if current_defind_class is a module included + NotImplementError if current_defined_class is a module included into a refinement. Because of the change of vm_search_normal_superclass(), the receiver might not be an instance of the module('s iclass). diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 1470844309..dacde9e55e 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1930,21 +1930,21 @@ vm_search_superclass(rb_control_frame_t *reg_cfp, rb_iseq_t *iseq, VALUE sigval, static void vm_search_super_method(rb_thread_t *th, rb_control_frame_t *reg_cfp, rb_call_info_t *ci) { - VALUE current_defind_class; + VALUE current_defined_class; rb_iseq_t *iseq = GET_ISEQ(); VALUE sigval = TOPN(ci->orig_argc); - current_defind_class = GET_CFP()->klass; - if (NIL_P(current_defind_class)) { + current_defined_class = GET_CFP()->klass; + if (NIL_P(current_defined_class)) { vm_super_outside(); } - if (!NIL_P(RCLASS_REFINED_CLASS(current_defind_class))) { - current_defind_class = RCLASS_REFINED_CLASS(current_defind_class); + if (!NIL_P(RCLASS_REFINED_CLASS(current_defined_class))) { + current_defined_class = RCLASS_REFINED_CLASS(current_defined_class); } - if (!FL_TEST(current_defind_class, RMODULE_INCLUDED_INTO_REFINEMENT) && - !rb_obj_is_kind_of(ci->recv, current_defind_class)) { + if (!FL_TEST(current_defined_class, RMODULE_INCLUDED_INTO_REFINEMENT) && + !rb_obj_is_kind_of(ci->recv, current_defined_class)) { rb_raise(rb_eNotImpError, "super from singleton method that is defined to multiple classes is not supported; this will be fixed in 2.0.0 or later"); } |