Actions
Bug #12174
closedInterpolation ignores `to_s` (and `inspect`) when `to_s` is defined to `nil`.
Description
When to_s
is defined to return nil
, interpolation prints the original inspection.
class A
def to_s; end
end
puts "#{A.new}" # => #<A:0x007f4edf19d720>
It even ignores an overwritten inspect
definition.
class A
def to_s; end
def inspect; "foo" end
end
puts "#{A.new}" # => #<A:0x007f8176c09050>
Updated by sawa (Tsuyoshi Sawada) almost 9 years ago
The description was too specific. Whenever to_s
is defined to be not a string, the issue arises.
Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
- Status changed from Open to Rejected
Yes, to be interpolated into a string, to_s
must return a string.
Non-string object cannot be concatenated to a string.
Actions
Like0
Like0Like0