Backport #3604
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
=begin class C def respond_to?(name) puts "C: #{name}" return false end end File.path(C.new) rescue p $! File.open(C.new) rescue p $! File.ctime(C.new) rescue p $! File.dirname(C.new) rescue p $! prints: C: to_str C: to_path C: to_str #<TypeError: can't convert C into String> C: to_int C: to_hash C: to_str C: to_path C: to_str #<TypeError: can't convert C into String> C: to_io C: to_str C: to_path C: to_str #<TypeError: can't convert C into String> C: to_str C: to_path C: to_str #<TypeError: can't convert C into String> Is there any reason why to_str is called twice on the arguments? Shouldn't to_path be called first and then to_str (i.e. the path conversion should be preferred over string conversion)? =end