Calling super without args does not (always) pass original args ---------------------------------------------------------------
Key: JRUBY-1390 URL: http://jira.codehaus.org/browse/JRUBY-1390 Project: JRuby Issue Type: Bug Components: Core Classes/Modules Affects Versions: JRuby 1.x Environment: trunk (4406) Reporter: Bill Dortch Attachments: super_bug.rb This is a fairly new bug, within the past week or two. I'll try to come up with a simpler test case, but this demonstrates the bug reliably. I suspect this is a compiler bug, as it will work correctly several times before failing: {noformat} module M class << self def append_features(clazz) clazz.module_eval do class << self def inherited(subclass) puts "inherited: #{subclass}" super end end end end end end 100.times do a = Class.new do include M end b = Class.new(a) end inherited: #<Class:01xcab854> inherited: #<Class:01x14323d5> inherited: #<Class:01x17050f5> inherited: #<Class:01xdf2940> inherited: #<Class:01xc789fb> inherited: #<Class:01x122c9df> inherited: #<Class:01x15d8d75> inherited: #<Class:01xf2164f> inherited: #<Class:01xbfd10a> inherited: #<Class:01xdf4bfc> ArgumentError: wrong number of arguments(0 for 1) from c:/temp/jruby_support/super_bug.rb:8:in `inherited' from c:/temp/jruby_support/super_bug.rb:21:in `new' from c:/temp/jruby_support/super_bug.rb:21:in `new' from (irb):1:in `times' from c:/temp/jruby_support/super_bug.rb:16:in `times' from (irb):1:in `load' from (irb):1:in `binding' {noformat} Explicitly passing subclass as an arg does work. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email