Actions
Feature #12380
open`Struct` as a subclass of `Class`
Feature #12380:
`Struct` as a subclass of `Class`
Status:
Open
Assignee:
-
Target version:
-
Description
This issue is somewhat of the same flavor as #12374.
Struct has a constructor that creates a class:
Struct.new(:foo)
# => #<Class:0x007f605f892cb0>
and this is the same situation with Class.
Class.new
# => #<Class:0x007f605f70c788>
Hence, most naturally, Struct should be a subclass of Class. But in reality, it isn't:
Struct.ancestors
# => [Struct, Enumerable, Object, Kernel, BasicObject]
The current structure around Struct is counter-intuitive to me.
I propose that either Struct should be redefined as a subclass of Class, or a new class StructClass should be introduced as a subclass of Class, and take over the functionality of Struct.
Actions