diff options
Diffstat (limited to 'bootstraptest/test_class.rb')
| -rw-r--r-- | bootstraptest/test_class.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/bootstraptest/test_class.rb b/bootstraptest/test_class.rb index 1c49b83037..b7fe0a1acd 100644 --- a/bootstraptest/test_class.rb +++ b/bootstraptest/test_class.rb @@ -11,6 +11,16 @@ assert_equal 'C', %q( class C; end C.new.class.name ) assert_equal 'Class', %q( class C; end C.new.class.class ) +assert_equal 'true', %q( Object.__send__(:remove_const, :TrueClass) + GC.start + true.inspect) +assert_equal 'false', %q( Object.__send__(:remove_const, :FalseClass) + GC.start + false.inspect) +assert_equal 'nil', %q( Object.__send__(:remove_const, :NilClass) + GC.start + nil.inspect) + # inherited class assert_equal 'true', %q( class A; end @@ -130,3 +140,30 @@ assert_equal "ok", %q{ :ok end }, '[ruby-core:14378]' + +assert_equal '3', %q{ + $i = 0 + class C + def self.const_missing *args + $i+=1 + end + end + + 3.times{ + C::FOO + } + $i +} + +assert_match /::C\z/, %q{ + c = nil + Module.new{|m| c = class m::C; name; end} + c +}, '[ruby-dev:38456]' + +assert_normal_exit %q{ + s = Symbol.dup + class << s + end + s.allocate.to_s +}, '[ruby-core:30843]' |
