diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-03-07 04:33:00 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-03-07 04:33:00 +0000 |
commit | 30e59cd74e3dc079e21a41c54cf8e0b780e43754 (patch) | |
tree | 576904a1b1d7950213c7905f801b53053d89da86 | |
parent | 80c7472281eb0e846992abce8a68a09f293cbb43 (diff) | |
download | ruby-30e59cd74e3dc079e21a41c54cf8e0b780e43754.tar.gz |
class.c: err if superclass is 0
* class.c (rb_define_class, rb_define_class_id_under): raise
ArgumentError if super is 0, deprecated behavior which has been
warned long time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | class.c | 6 |
2 files changed, 9 insertions, 3 deletions
@@ -1,3 +1,9 @@ +Mon Mar 7 13:32:58 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * class.c (rb_define_class, rb_define_class_id_under): raise + ArgumentError if super is 0, deprecated behavior which has been + warned long time. + Mon Mar 7 13:28:30 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> * internal.h: move function declarations for class internals from @@ -660,7 +660,7 @@ rb_define_class(const char *name, VALUE super) return klass; } if (!super) { - rb_warn("no super class for `%s', Object assumed", name); + rb_raise(rb_eArgError, "no super class for `%s'", name); } klass = rb_define_class_id(id, super); rb_vm_add_root_module(id, klass); @@ -732,8 +732,8 @@ rb_define_class_id_under(VALUE outer, ID id, VALUE super) return klass; } if (!super) { - rb_warn("no super class for `%"PRIsVALUE"::%"PRIsVALUE"', Object assumed", - rb_class_path(outer), rb_id2str(id)); + rb_raise(rb_eArgError, "no super class for `%"PRIsVALUE"::%"PRIsVALUE"'", + rb_class_path(outer), rb_id2str(id)); } klass = rb_define_class_id(id, super); rb_set_class_path_string(klass, outer, rb_id2str(id)); |