From 5e6cd86f6eedea213fbeb5f1e7a5aa0ab303036a Mon Sep 17 00:00:00 2001 From: dearblue Date: Fri, 7 Sep 2018 23:56:06 +0900 Subject: Fix to not define outer when outer is itself. example: a = Class.new a::A = a --- src/class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/class.c') 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)); } -- cgit v1.2.3