summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
diff options
context:
space:
mode:
authordearblue <[email protected]>2018-09-07 23:56:06 +0900
committerdearblue <[email protected]>2018-09-07 23:56:06 +0900
commit5e6cd86f6eedea213fbeb5f1e7a5aa0ab303036a (patch)
tree1400552522a5711917f7fd100a895c7de79c2163 /src/class.c
parent1997fcf98f596f6af2bf1d20ccde1b1abfe7324d (diff)
downloadmruby-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.c2
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));
}