Project

General

Profile

Actions

Feature #21389

open

Simplify Set#inspect output

Added by jeremyevans0 (Jeremy Evans) 6 days ago. Updated 2 days ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:122355]

Description

As Set is now a core collection class, it should have special inspect output. Ideally, inspect output should be suitable to eval, similar to array and hash (assuming the elements are also suitable to eval):

set = Set[1, 2, 3]
eval(set.inspect) == set # should be true

The simplest way to do this is to use the Set[] syntax:

Set[1, 2, 3].inspect
# => "Set[1, 2, 3]"

I've submitted a pull request that implements this: https://github.com/ruby/ruby/pull/13488

The pull request deliberately does not use any subclass name in the output, similar to array and hash. I think it is more important that users know they are dealing with a set than which subclass:

Class.new(Set)[]
# PR does: Set[]
#     not: #<Class:0x00000c21c78699e0>[]

However, it's easy to change the PR to use a subclass name if that is desired.


Related issues 1 (1 open0 closed)

Related to Ruby - Bug #21377: core Set#inspect does not use inherited class nameOpenActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0