Issue #20319 has been updated by Eregon (Benoit Daloze).
@nobu WDYT? Could you review that PR?
----------------------------------------
Bug #20319: Singleton class is being frozen lazily in some cases
https://bugs.ruby-lang.org/issues/20319#change-108006
* Author: andrykonchin (Andrew Konchin)
* Status: Open
* ruby -v: 3.2.2
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
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.
--
https://bugs.ruby-lang.org/