aboutsummaryrefslogtreecommitdiffstats
path: root/class.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-28 03:07:37 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-28 03:07:37 +0000
commitd80733f45b7c2330ba148c8137043a1a5c3f5b6f (patch)
treeadb67246d27bcf05476cc972282bd8e7849c11e1 /class.c
parenta770ba311f7ed022bc6986c0c430a235907b0449 (diff)
downloadruby-d80733f45b7c2330ba148c8137043a1a5c3f5b6f.tar.gz
class.c: TypeError when superclass mismatch
* class.c (rb_define_class_id_under): raise TypeError exception same as ruby level class definition when superclass mismatch. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'class.c')
-rw-r--r--class.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/class.c b/class.c
index f963f0c22a..991172acbb 100644
--- a/class.c
+++ b/class.c
@@ -703,7 +703,8 @@ rb_define_class_id_under(VALUE outer, ID id, VALUE super)
rb_raise(rb_eTypeError, "%"PRIsVALUE" is not a class", rb_id2str(id));
}
if (rb_class_real(RCLASS_SUPER(klass)) != super) {
- rb_name_error(id, "%"PRIsVALUE" is already defined", rb_id2str(id));
+ rb_raise(rb_eTypeError, "superclass mismatch for class %"PRIsVALUE"",
+ rb_id2str(id));
}
return klass;
}