diff options
| author | dearblue <[email protected]> | 2018-09-07 23:56:06 +0900 |
|---|---|---|
| committer | dearblue <[email protected]> | 2018-09-07 23:56:06 +0900 |
| commit | 5e6cd86f6eedea213fbeb5f1e7a5aa0ab303036a (patch) | |
| tree | 1400552522a5711917f7fd100a895c7de79c2163 /src/class.c | |
| parent | 1997fcf98f596f6af2bf1d20ccde1b1abfe7324d (diff) | |
| download | mruby-5e6cd86f6eedea213fbeb5f1e7a5aa0ab303036a.tar.gz mruby-5e6cd86f6eedea213fbeb5f1e7a5aa0ab303036a.zip | |
Fix to not define outer when outer is itself.
example:
a = Class.new
a::A = a
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c index 22fe36fb3..96d32b4c5 100644 --- a/src/class.c +++ b/src/class.c @@ -65,7 +65,7 @@ mrb_class_name_class(mrb_state *mrb, struct RClass *outer, struct RClass *c, mrb else { name = mrb_class_path(mrb, outer); if (mrb_nil_p(name)) { /* unnamed outer class */ - if (outer != mrb->object_class) { + if (outer != mrb->object_class && outer != c) { mrb_obj_iv_set(mrb, (struct RObject*)c, mrb_intern_lit(mrb, "__outer__"), mrb_obj_value(outer)); } |
