From: nagachika00@... Date: 2014-02-19T16:59:11+00:00 Subject: [ruby-core:60872] [ruby-trunk - Bug #9377] Seg fault on call of missing super from self.extended in a Module Issue #9377 has been updated by Tomoyuki Chikanaga. Backport changed from 1.9.3: DONTNEED, 2.0.0: REQUIRED, 2.1: REQUIRED to 1.9.3: DONTNEED, 2.0.0: DONE, 2.1: REQUIRED r44527 was backported to ruby_2_0_0 at r45051. ---------------------------------------- Bug #9377: Seg fault on call of missing super from self.extended in a Module https://bugs.ruby-lang.org/issues/9377#change-45283 * Author: Joe McIlvain * Status: Closed * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: 2.1.0 * Backport: 1.9.3: DONTNEED, 2.0.0: DONE, 2.1: REQUIRED ---------------------------------------- =begin Seg fault on call of missing super from self.extended in a Module on 2.1.0-p0 and on 2.1.0-dev x86_64 linux Code to reproduce: module A def foo; super end def self.extended(obj) instance_method(:foo).bind(obj).call end end Object.new.extend A (stack trace is attached) Note that calling from after extend is okay: (but raises missing super error) module A def foo; super end end Object.new.extend(A).foo #=> in `foo': super: no superclass method `foo' for # (NoMethodError) Also note that calling from within the extend as before, but having the method defined is also okay (and raises no error) module ABase def foo; end end module A include ABase def foo; super end def self.extended(obj) instance_method(:foo).bind(obj).call end end Object.new.extend A =end ---Files-------------------------------- segfault.txt (10 KB) -- http://bugs.ruby-lang.org/