diff options
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 4 |
1 files changed, 4 insertions, 0 deletions
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); } |
