[MacRuby/MacRuby] e6bcc6: [fix #203] fix a bug in super which fails to look ...
Branch: refs/heads/master Home: https://github.com/MacRuby/MacRuby Commit: e6bcc6a256a27ee42706f79524748f975f47d2a0 https://github.com/MacRuby/MacRuby/commit/e6bcc6a256a27ee42706f79524748f975f... Author: Watson <watson1978@gmail.com> Date: 2013-04-03 (Wed, 03 Apr 2013) Changed paths: M dispatcher.cpp Log Message: ----------- [fix #203] fix a bug in super which fails to look up method in method which called by super The 'super' saves the calling status (caller class, selector, etc). At twice 'super' calling, look up wrong class. The following sequence had executed. - Base (Super class) - Foo (Inherited Base) 1. Foo#bar -- super --> look up super class of Foo (Base) 2. Foo#bar -- super --> look up super class of Base ---- class Base def bar(args) $result << args.first if args = args[1..-1] obj = Foo.new obj.bar(args) end end end class Foo < Base def bar(args) $result << "a" super end end $result = [] obj = Foo.new obj.bar(%w{1 2 3}) p $result
participants (1)
-
GitHub