
Issue #21377 has been updated by jeremyevans0 (Jeremy Evans). It is intended behavior. Core classes generally do not have different output in subclasses (e.g. Hash, Array, String). Now that `Set` is a core class, I think it's worth considering for `Set#inspect` to return a string like: `Set[1, 2, 3]` ---------------------------------------- Bug #21377: core Set#inspect does not use inherited class name https://bugs.ruby-lang.org/issues/21377#change-113455 * Author: Ethan (Ethan -) * Status: Open * ruby -v: ruby 3.5.0dev (2025-05-26T17:42:35Z master 909a0daab6) +PRISM [x86_64-darwin22] * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- Following #21216, Set#inspect stopped using self.class.name and just uses 'Set' now. ```ruby class MySet < Set; end MySet.new.inspect # before: #<MySet: {}> # now: #<Set: {}> ``` -- https://bugs.ruby-lang.org/