
Issue #20808 has been updated by byroot (Jean Boussier). So the problem isn't with `inspect`, as it only reproduce in `irb`. It's coming from `pretty_inspect`: ```
d.pretty_inspect /opt/rubies/3.3.5/lib/ruby/3.3.0/pp.rb:432:in `public_send': private method `name' called for an instance of Dog (NoMethodError)
q.pp public_send(member) ^^^^^^^^^^^ from /opt/rubies/3.3.5/lib/ruby/3.3.0/pp.rb:432:in `block (3 levels) in pretty_print' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:255:in `block (2 levels) in group' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:282:in `nest' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:254:in `block in group' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:267:in `group_sub' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:253:in `group' from /opt/rubies/3.3.5/lib/ruby/3.3.0/pp.rb:430:in `block (2 levels) in pretty_print' from /opt/rubies/3.3.5/lib/ruby/3.3.0/pp.rb:264:in `block in seplist' from /opt/rubies/3.3.5/lib/ruby/3.3.0/pp.rb:258:in `each' from /opt/rubies/3.3.5/lib/ruby/3.3.0/pp.rb:258:in `seplist' from /opt/rubies/3.3.5/lib/ruby/3.3.0/pp.rb:426:in `block in pretty_print' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:255:in `block (2 levels) in group' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:282:in `nest' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:254:in `block in group' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:267:in `group_sub' from /opt/rubies/3.3.5/lib/ruby/3.3.0/prettyprint.rb:253:in `group' ``` ---------------------------------------- Bug #20808: Cannot override Data#inspect https://bugs.ruby-lang.org/issues/20808#change-110195 * Author: maicolben (Maicol Bentancor) * Status: Open * ruby -v: 3.3.5 * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- Given the next code: ``` Dog = Data.define(:name) do def inspect "Hello!" end private attr_reader :name end Dog.new(name: "Fido") ``` It throws an error: - An error occurred when inspecting the object: #<NoMethodError: private method `name' called for an instance of Dog> And isn't using my `inspect` function -- https://bugs.ruby-lang.org/