Project

General

Profile

Actions

Bug #10263

closed

`super` does not work from binding eval context

Added by charliesome (Charlie Somerville) over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.0dev (2014-09-19 trunk 47643) [x86_64-darwin13]
[ruby-core:65122]

Description

super is broken when called from inside a binding eval context.

Test case:

class A
  def foo
    puts "A#foo"
  end
end

class B < A
  def foo
    binding.eval("super")
  end
end

B.new.foo

Expected output:

A#foo

Actual output:

x.rb:11:in `foo': self has wrong type to call super in this context: B (expected Binding) (TypeError)
    from x.rb:11:in `eval'
    from x.rb:11:in `foo'
    from x.rb:15:in `<main>'

This appears to be a regression in 2.0.0, as the code sample above worked as expected on 1.9.3.

Actions

Also available in: Atom PDF