Actions
Bug #9377
closedSeg fault on call of missing super from self.extended in a Module
Bug #9377:
Seg fault on call of missing super from self.extended in a Module
Description
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 #<Object:0x007fabf43d2730> (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
Files
Actions