From: Yusuke Endoh Date: 2012-03-14T19:51:48+09:00 Subject: [ruby-core:43275] [Backport93 - Backport #6000][Assigned] respond_to? check in check_funcall() does not work with single-argument respond_to? Issue #6000 has been updated by Yusuke Endoh. Status changed from Closed to Assigned Assignee set to Eric Hodel Hello, Your patch causes SEGV: class C def respond_to? x, y, z p z end end [C.new].flatten #=> SEGV Did you mean "arity >= 3" instead of "arity > 3" ? (Note that I don't understand this ticket.) Coverity Scan found this bug. -- Yusuke Endoh ---------------------------------------- Backport #6000: respond_to? check in check_funcall() does not work with single-argument respond_to? https://bugs.ruby-lang.org/issues/6000#change-24574 Author: Eric Hodel Status: Assigned Priority: Normal Assignee: Eric Hodel Category: Target version: =begin The following code works in Ruby 1.9.3: class C def respond_to? name super name end end [C.new].flatten But fails with ArgumentError after r32855: $ ruby20 -v test.rb ruby 2.0.0dev (2012-02-11 trunk 34547) [x86_64-darwin11.2.0] test.rb:2:in `respond_to?': wrong number of arguments (2 for 1) (ArgumentError) from test.rb:7:in `flatten' from test.rb:7:in `
' I think this should still work to support legacy 1.9 applications in 2.0 =end -- http://bugs.ruby-lang.org/