Skip to content

Problem with super not passing params with IR #2033

@nirvdrum

Description

@nirvdrum

Here's a simple test case reduced from a Rails 3.2 app:

$ cat super_problem.rb 
module ActiveSupport
  module Dependencies
    extend self

    module Loadable
      def load_dependency(file)
        yield
      rescue Exception => e
        raise
      end

      def require(file)
        result = false
        load_dependency(file) { result = super }
        result
      end
    end
  end
end

include ActiveSupport::Dependencies::Loadable
require 'yaml'

Error:

$ ruby super_problem.rb 
ArgumentError: wrong number of arguments (0 for 1)
          require at /home/nirvdrum/.rbenv/versions/jruby-9000.dev-SNAPSHOT/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:14
          require at super_problem.rb:14
  load_dependency at super_problem.rb:7
          require at super_problem.rb:14
           (root) at super_problem.rb:22

Expected: No output. The YAML lib should just load.

Ruby version:

$ ruby -v
jruby 9000.dev-SNAPSHOT (2.1.2p142) 2014-10-09 c72837d Java HotSpot(TM) 64-Bit Server VM 25.20-b23 on 1.8.0_20-b26 [linux-amd64]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions