[MacRuby] #1056: Module method is bypassed by 'super' statement when more than one modules are extended.
#1056: Module method is bypassed by 'super' statement when more than one modules are extended. --------------------------------+------------------------------------------- Reporter: chekenan@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: MacRuby 0.8 Component: MacRuby | Keywords: module, method, extend, super --------------------------------+------------------------------------------- The summary can't precisely describe the situation causes this bug. Sorry for that. But the test code can. '''Test''' {{{ p RUBY_DESCRIPTION module M1 def m p 'm1' [1,2,3] end end module M2 def m p 'm2' super.select do |item|; item > 1; end end end o = Object.new o.extend M1 o.extend M2 class Cls def m p 'cls' [1,2,3] end end o1 = Cls.new o1.extend M2 def o.use_m p m end def o1.use_m p m end puts "--- Module over module" o.use_m o.use_m o.use_m puts "--- Class over module" o1.use_m o1.use_m o1.use_m }}} In the second and third runs, method 'm' of module M2 is bypassed. This bug prevent Treetop (1.4.9) from running on MacRuby 0.8. Note that if super is a class, the module method is not bypassed. '''Result''' {{{ "MacRuby 0.8 (ruby 1.9.2) [universal-darwin10.0, x86_64]" --- Module over module "m2" "m1" [2, 3] "m1" [1, 2, 3] "m1" [1, 2, 3] --- Class over module "m2" "cls" [2, 3] "m2" "cls" [2, 3] "m2" "cls" [2, 3] "rubinius 1.1.0 (1.8.7 release 2010-09-23 JI) [x86_64-apple-darwin10.4.0]" --- Module over module "m2" "m1" [2, 3] "m2" "m1" [2, 3] "m2" "m1" [2, 3] --- Class over module "m2" "cls" [2, 3] "m2" "cls" [2, 3] "m2" "cls" [2, 3] "ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]" --- Module over module "m2" "m1" [2, 3] "m2" "m1" [2, 3] "m2" "m1" [2, 3] --- Class over module "m2" "cls" [2, 3] "m2" "cls" [2, 3] "m2" "cls" [2, 3] }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1056> MacRuby <http://macruby.org/>
#1056: Module method is bypassed by 'super' statement when more than one modules are extended. --------------------------------+------------------------------------------- Reporter: chekenan@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: MacRuby 1.0 Component: MacRuby | Keywords: module, method, extend, super --------------------------------+------------------------------------------- Changes (by lsansonetti@…): * milestone: MacRuby 0.8 => MacRuby 1.0 Comment: That's a 1.0 bug. -- Ticket URL: <http://www.macruby.org/trac/ticket/1056#comment:1> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby