From: sawadatsuyoshi@... Date: 2016-05-14T06:22:27+00:00 Subject: [ruby-core:75500] [Ruby trunk Feature#12380] `Struct` as a subclass of `Class` Issue #12380 has been reported by Tsuyoshi Sawada. ---------------------------------------- Feature #12380: `Struct` as a subclass of `Class` https://bugs.ruby-lang.org/issues/12380 * Author: Tsuyoshi Sawada * Status: Open * Priority: Normal * Assignee: ---------------------------------------- This issue is somewhat of the same flavor as #12374. `Struct` has a constructor that creates a class: ~~~ruby Struct.new(:foo) # => # ~~~ and this is the same situation with `Class`. ~~~ruby Class.new # => # ~~~ Hence, most naturally, `Struct` should be a subclass of `Class`. But in reality, it isn't: ~~~ruby 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`. -- https://bugs.ruby-lang.org/ Unsubscribe: