ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:122306] [Ruby Bug#21377] core Set#inspect does not use inherited class name
@ 2025-05-27  6:49 Ethan (Ethan -) via ruby-core
  2025-05-27  6:51 ` [ruby-core:122307] " Ethan (Ethan -) via ruby-core
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Ethan (Ethan -) via ruby-core @ 2025-05-27  6:49 UTC (permalink / raw)
  To: ruby-core; +Cc: Ethan (Ethan -)

Issue #21377 has been reported by Ethan (Ethan -).

----------------------------------------
Bug #21377: core Set#inspect does not use inherited class name
https://bugs.ruby-lang.org/issues/21377

* 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/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:122307] [Ruby Bug#21377] core Set#inspect does not use inherited class name
  2025-05-27  6:49 [ruby-core:122306] [Ruby Bug#21377] core Set#inspect does not use inherited class name Ethan (Ethan -) via ruby-core
@ 2025-05-27  6:51 ` Ethan (Ethan -) via ruby-core
  2025-05-27 12:41 ` [ruby-core:122309] " zzak (zzak _) via ruby-core
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ethan (Ethan -) via ruby-core @ 2025-05-27  6:51 UTC (permalink / raw)
  To: ruby-core; +Cc: Ethan (Ethan -)

Issue #21377 has been updated by Ethan (Ethan -).


`#pretty_print` also now just uses Set instead of self.class.name.

----------------------------------------
Bug #21377: core Set#inspect does not use inherited class name
https://bugs.ruby-lang.org/issues/21377#change-113449

* 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/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:122309] [Ruby Bug#21377] core Set#inspect does not use inherited class name
  2025-05-27  6:49 [ruby-core:122306] [Ruby Bug#21377] core Set#inspect does not use inherited class name Ethan (Ethan -) via ruby-core
  2025-05-27  6:51 ` [ruby-core:122307] " Ethan (Ethan -) via ruby-core
@ 2025-05-27 12:41 ` zzak (zzak _) via ruby-core
  2025-05-27 15:42 ` [ruby-core:122313] " jeremyevans0 (Jeremy Evans) via ruby-core
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: zzak (zzak _) via ruby-core @ 2025-05-27 12:41 UTC (permalink / raw)
  To: ruby-core; +Cc: zzak (zzak _)

Issue #21377 has been updated by zzak (zzak _).


I'm not sure it's intended, but here is a patch:
https://github.com/ruby/ruby/pull/13451

----------------------------------------
Bug #21377: core Set#inspect does not use inherited class name
https://bugs.ruby-lang.org/issues/21377#change-113451

* 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/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:122313] [Ruby Bug#21377] core Set#inspect does not use inherited class name
  2025-05-27  6:49 [ruby-core:122306] [Ruby Bug#21377] core Set#inspect does not use inherited class name Ethan (Ethan -) via ruby-core
  2025-05-27  6:51 ` [ruby-core:122307] " Ethan (Ethan -) via ruby-core
  2025-05-27 12:41 ` [ruby-core:122309] " zzak (zzak _) via ruby-core
@ 2025-05-27 15:42 ` jeremyevans0 (Jeremy Evans) via ruby-core
  2025-05-28  3:49 ` [ruby-core:122317] " Ethan (Ethan -) via ruby-core
  2025-05-28  7:38 ` [ruby-core:122325] " Eregon (Benoit Daloze) via ruby-core
  4 siblings, 0 replies; 6+ messages in thread
From: jeremyevans0 (Jeremy Evans) via ruby-core @ 2025-05-27 15:42 UTC (permalink / raw)
  To: ruby-core; +Cc: jeremyevans0 (Jeremy Evans)

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/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:122317] [Ruby Bug#21377] core Set#inspect does not use inherited class name
  2025-05-27  6:49 [ruby-core:122306] [Ruby Bug#21377] core Set#inspect does not use inherited class name Ethan (Ethan -) via ruby-core
                   ` (2 preceding siblings ...)
  2025-05-27 15:42 ` [ruby-core:122313] " jeremyevans0 (Jeremy Evans) via ruby-core
@ 2025-05-28  3:49 ` Ethan (Ethan -) via ruby-core
  2025-05-28  7:38 ` [ruby-core:122325] " Eregon (Benoit Daloze) via ruby-core
  4 siblings, 0 replies; 6+ messages in thread
From: Ethan (Ethan -) via ruby-core @ 2025-05-28  3:49 UTC (permalink / raw)
  To: ruby-core; +Cc: Ethan (Ethan -)

Issue #21377 has been updated by Ethan (Ethan -).


Hash, Array, and String don't say the name of the class in their inspect, though.

I'm certainly in favor of `Set[1, 2, 3]` (this is an improvement I make wherever I subclass Set already), but this seems orthogonal to identifying the class of the inspected object. I don't know any classes that show a base class name instead of self.class name.

Not terribly important to me since I override inspect anyway, fine by me to close if 'Set' is preferred over class name, but class name seems more correct in my opinion.

----------------------------------------
Bug #21377: core Set#inspect does not use inherited class name
https://bugs.ruby-lang.org/issues/21377#change-113458

* 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/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ruby-core:122325] [Ruby Bug#21377] core Set#inspect does not use inherited class name
  2025-05-27  6:49 [ruby-core:122306] [Ruby Bug#21377] core Set#inspect does not use inherited class name Ethan (Ethan -) via ruby-core
                   ` (3 preceding siblings ...)
  2025-05-28  3:49 ` [ruby-core:122317] " Ethan (Ethan -) via ruby-core
@ 2025-05-28  7:38 ` Eregon (Benoit Daloze) via ruby-core
  4 siblings, 0 replies; 6+ messages in thread
From: Eregon (Benoit Daloze) via ruby-core @ 2025-05-28  7:38 UTC (permalink / raw)
  To: ruby-core; +Cc: Eregon (Benoit Daloze)

Issue #21377 has been updated by Eregon (Benoit Daloze).


Agreed, if the `inspect` shows the class name, it should show `obj.class.name`, not some superclass which would be very confusing.
Otherwise all objects with default inspect would be `#<Object: ..>` and that would be no good.

----------------------------------------
Bug #21377: core Set#inspect does not use inherited class name
https://bugs.ruby-lang.org/issues/21377#change-113473

* 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/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-05-28  7:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-27  6:49 [ruby-core:122306] [Ruby Bug#21377] core Set#inspect does not use inherited class name Ethan (Ethan -) via ruby-core
2025-05-27  6:51 ` [ruby-core:122307] " Ethan (Ethan -) via ruby-core
2025-05-27 12:41 ` [ruby-core:122309] " zzak (zzak _) via ruby-core
2025-05-27 15:42 ` [ruby-core:122313] " jeremyevans0 (Jeremy Evans) via ruby-core
2025-05-28  3:49 ` [ruby-core:122317] " Ethan (Ethan -) via ruby-core
2025-05-28  7:38 ` [ruby-core:122325] " Eregon (Benoit Daloze) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).