mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* class.c (rb_class_init_copy): raise a TypeError if the argument is
BasicObject. [ruby-core:27060] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
141179186b
commit
b09eabd430
3 changed files with 10 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
Sun Feb 7 00:23:21 2010 Shugo Maeda <shugo@ruby-lang.org>
|
||||
|
||||
* class.c (rb_class_init_copy): raise a TypeError if the argument is
|
||||
BasicObject. [ruby-core:27060]
|
||||
|
||||
Sat Feb 6 23:37:11 2010 Shugo Maeda <shugo@ruby-lang.org>
|
||||
|
||||
* lib/net/ftp.rb (initialize): set @sock to a NullSocket instance to
|
||||
|
|
3
class.c
3
class.c
|
@ -180,6 +180,9 @@ rb_mod_init_copy(VALUE clone, VALUE orig)
|
|||
VALUE
|
||||
rb_class_init_copy(VALUE clone, VALUE orig)
|
||||
{
|
||||
if (orig == rb_cBasicObject) {
|
||||
rb_raise(rb_eTypeError, "can't copy the root class");
|
||||
}
|
||||
if (RCLASS_SUPER(clone) != 0 || clone == rb_cBasicObject) {
|
||||
rb_raise(rb_eTypeError, "already initialized class");
|
||||
}
|
||||
|
|
|
@ -181,6 +181,8 @@ class TestClass < Test::Unit::TestCase
|
|||
o = Object.new
|
||||
c = class << o; self; end
|
||||
assert_raise(TypeError) { c.dup }
|
||||
|
||||
assert_raise(TypeError) { BasicObject.dup }
|
||||
end
|
||||
|
||||
def test_singleton_class
|
||||
|
|
Loading…
Reference in a new issue