From: nagachika00@... Date: 2014-10-16T13:06:38+00:00 Subject: [ruby-core:65765] [ruby-trunk - Bug #10263] `super` does not work from binding eval context Issue #10263 has been updated by Tomoyuki Chikanaga. Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED to 2.0.0: REQUIRED, 2.1: DONE Backported into `ruby_2_1` at r47980. ---------------------------------------- Bug #10263: `super` does not work from binding eval context https://bugs.ruby-lang.org/issues/10263#change-49497 * Author: Charlie Somerville * Status: Closed * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.2.0dev (2014-09-19 trunk 47643) [x86_64-darwin13] * Backport: 2.0.0: REQUIRED, 2.1: DONE ---------------------------------------- `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 `
' ``` This appears to be a regression in 2.0.0, as the code sample above worked as expected on 1.9.3. -- https://bugs.ruby-lang.org/