Issue #20319 has been reported by andrykonchin (Andrew Konchin).
----------------------------------------
Bug #20319: Singleton class is being frozen lazily in some cases
https://bugs.ruby-lang.org/issues/20319
* 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 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 singleton classes in an object singleton classes chain to
become frozen immediately.
--
https://bugs.ruby-lang.org/