Actions
Bug #21440
closedCannot create instances of frozen Data subclasses
Description
This fails since Data was added in Ruby 3.2:
Class.new(Data.define(:a)).freeze.new
# can't modify frozen #<Class:#<Class:0x000079cf41253160>>: #<Class:0x000079cf41253160> (FrozenError)
Note that the error occurs even before the ArgumentError due to the missing argument to new
.
This doesn't happen on classes created with Data.define
(only subclasses of those classes):
Data.define(:a).freeze.new
# missing keyword: :a (ArgumentError)
Updated by nobu (Nobuyoshi Nakada) 21 days ago
Also Class.new(Struct.new(:a)).freeze.new
.
Updated by nobu (Nobuyoshi Nakada) 21 days ago
- Status changed from Open to Closed
Applied in changeset git|2e7e78cd590d20aa9d41422e96302f3edd73f623.
[Bug #21440] Stop caching member list in frozen Data/Struct class
Updated by nagachika (Tomoyuki Chikanaga) 5 days ago
- Backport changed from 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED to 3.2: REQUIRED, 3.3: DONE, 3.4: REQUIRED
ruby_3_3 a976792832887ee2ae1380ab0e2244067126f017 merged revision(s) 2e7e78cd590d20aa9d41422e96302f3edd73f623.
Actions
Like0
Like0Like0Like0