diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-31 14:12:47 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-31 14:12:47 +0900 |
| commit | d7c29322b8fea584cb8940b9d216b9e11bdf94f9 (patch) | |
| tree | 2c7abd2083914794b653defdbb6f8f5715f0cb98 /src | |
| parent | 4c2969910f16389c0e3d602a99ded0a3d0b6e256 (diff) | |
| download | mruby-d7c29322b8fea584cb8940b9d216b9e11bdf94f9.tar.gz mruby-d7c29322b8fea584cb8940b9d216b9e11bdf94f9.zip | |
singleton class needs to set __outer__; fixed #1983
Diffstat (limited to 'src')
| -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); } |
