Project

General

Profile

Bug #20319

Updated by andrykonchin (Andrew Konchin) 2 months ago

I've noticed suspicious behaviour (it doesn't affect anything in practice for me though) when an object becomes frozen only its own singleton class becomes frozen immediately. 

 A singleton class of the object immediate singleton class becomes frozen lazily after `#singleton_class` method call: 

 ```ruby 
 o = Object.new 
 klass = o.singleton_class.singleton_class 

 o.freeze 

 puts klass.frozen?                                # false <== here we expect true 
 puts o.singleton_class.singleton_class.frozen?    # true 
 puts klass.frozen?                                # true 
 ``` 

 I would expect all created (and visible to user) singleton classes in an object singleton classes chain to become frozen immediately when the object gets frozen. immediately. 

Back