diff options
Diffstat (limited to 'struct.c')
-rw-r--r-- | struct.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -177,6 +177,10 @@ make_struct(name, member, klass) if (!rb_is_const_id(id)) { rb_name_error(id, "identifier %s needs to be constant", cname); } + if (rb_const_defined_at(klass, id)) { + rb_warn("redefining constant Struct::%s", cname); + rb_mod_remove_const(klass, ID2SYM(id)); + } nstr = rb_define_class_under(klass, cname, klass); } rb_iv_set(nstr, "__size__", LONG2NUM(RARRAY(member)->len)); |