Singleton class of frozen object should be frozen

Before this patch:

  p (class << Object.new.freeze; self end).frozen?                #=> false
  sc = class << (o=Object.new); self end; o.freeze; p sc.frozen?  #=> false

After this patch / Ruby:

  p (class << Object.new.freeze; self end).frozen?                #=> true
  sc = class << (o=Object.new); self end; o.freeze; p sc.frozen?  #=> true
This commit is contained in:
KOBAYASHI Shuji
2019-04-25 19:48:40 +09:00
parent e5799b5d40
commit 8fa3995a1a
4 changed files with 25 additions and 0 deletions
+7
View File
@@ -356,6 +356,13 @@ assert('singleton tests') do
end
end
end if Object.const_defined?(:Float)
o = Object.new
sc = class << o; self end
o.freeze
assert_predicate(sc, :frozen?)
assert_predicate(class << Object.new.freeze; self end, :frozen?)
end
assert('clone Class') do