From d7c29322b8fea584cb8940b9d216b9e11bdf94f9 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 31 Mar 2014 14:12:47 +0900 Subject: singleton class needs to set __outer__; fixed #1983 --- src/class.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/class.c b/src/class.c index a214d7b27..54cf598a3 100644 --- a/src/class.c +++ b/src/class.c @@ -982,6 +982,10 @@ mrb_singleton_class(mrb_state *mrb, mrb_value v) } obj = mrb_basic_ptr(v); prepare_singleton_class(mrb, obj); + if (mrb->c && mrb->c->ci && mrb->c->ci->target_class) { + mrb_obj_iv_set(mrb, (struct RObject*)obj->c, mrb_intern_lit(mrb, "__outer__"), + mrb_obj_value(mrb->c->ci->target_class)); + } return mrb_obj_value(obj->c); } -- cgit v1.2.3