* 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
|
@ -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>
|
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
|
* 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
|
VALUE
|
||||||
rb_class_init_copy(VALUE clone, VALUE orig)
|
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) {
|
if (RCLASS_SUPER(clone) != 0 || clone == rb_cBasicObject) {
|
||||||
rb_raise(rb_eTypeError, "already initialized class");
|
rb_raise(rb_eTypeError, "already initialized class");
|
||||||
}
|
}
|
||||||
|
|
|
@ -181,6 +181,8 @@ class TestClass < Test::Unit::TestCase
|
||||||
o = Object.new
|
o = Object.new
|
||||||
c = class << o; self; end
|
c = class << o; self; end
|
||||||
assert_raise(TypeError) { c.dup }
|
assert_raise(TypeError) { c.dup }
|
||||||
|
|
||||||
|
assert_raise(TypeError) { BasicObject.dup }
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_singleton_class
|
def test_singleton_class
|
||||||
|
|
Loading…
Reference in New Issue