[macruby-changes] [MacRuby/MacRuby] 729bf7: fix a bug in defined?(super) which returns the inc...
GitHub
noreply at github.com
Sun Jun 16 22:36:50 PDT 2013
Branch: refs/heads/master
Home: https://github.com/MacRuby/MacRuby
Commit: 729bf78935279199e20ba377b7a2a8e91a89980e
https://github.com/MacRuby/MacRuby/commit/729bf78935279199e20ba377b7a2a8e91a89980e
Author: Watson <watson1978 at gmail.com>
Date: 2013-06-16 (Sun, 16 Jun 2013)
Changed paths:
M vm.cpp
Log Message:
-----------
fix a bug in defined?(super) which returns the incorrect value if use in included module
Test Code:
----
module Stuff
def foo
puts "In Stuff#foo"
if defined?(super)
puts "Calling super"
super
else
puts "No super"
end
end
end
module OtherStuff
def foo
puts "In OtherStuff#foo"
p defined?(super)
end
end
class NoSuper
include Stuff
end
NoSuper.new.foo
class WithSuper
include OtherStuff
include Stuff
end
WithSuper.new.foo
Result
----
$ macruby t.rb
In Stuff#foo
Calling super
/Volumes/Mac/Users/watson/tmp/t.rb:6:in `foo': super: no superclass method `foo' for #<NoSuper:0x4001a33a0> (NoMethodError)
from /Volumes/Mac/Users/watson/tmp/t.rb:23:in `<main>'
Expected
----
$ ruby t.rb
In Stuff#foo
No super
In Stuff#foo
Calling super
In OtherStuff#foo
nil
More information about the macruby-changes
mailing list