[MacRuby] #513: MacRuby gets confused about inheritance under certain conditions
#513: MacRuby gets confused about inheritance under certain conditions -----------------------------------+---------------------------------------- Reporter: matthew@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- Given the following code, {{{ module Foo module Baz def initialize(a, b) end end end module Foo module Bar module Baz include Foo::Baz def initialize(a, b, c, d) super(a, b) end end end end module Foo module Bar module Quux include Baz end end end module Foo module Bar module Baz class Bat include Foo::Bar::Baz include Foo::Bar::Quux end end end end }}} There are two related errors associated with this piece of code. 1. {{{Foo::Bar::Baz::Bat.new}}} '''Expected result (Ruby 1.9.1)''' ArgumentError: wrong number of arguments (0 for 4) '''Actual result (MacRuby 0.5b2)''' => #<Foo::Bar::Baz::Bat:0x200252380> Note the difference in response from #512! 2. {{{Foo::Bar::Baz::Bat.new(nil, nil, nil, nil)}}} '''Expected result (Ruby 1.9.1)''' => #<Foo::Bar::Baz::Bat:0x913598> '''Actual result (MacRuby 0.5b2)''' ArgumentError: wrong number of arguments (4 for 2) It seems that MacRuby is becoming confused. Here are a few ways to make it understand that Foo::Bar::Baz::Bat#initialize should accept 4 arguments. - Comment out Foo::Bar::Baz::Bat's second include statement (line 33)[[BR]] - Comment out Foo::Bar::Quux's include statement (line 23)[[BR]] - Comment out Foo::Bar::Baz's include statement (line 11) and Foo::Bar::Baz#initialize's super call (line 14) Of course, for my application I need the original functionality, so none of those will work for me. :-) If you find a workaround while investigating, please let me know. -- Ticket URL: <http://www.macruby.org/trac/ticket/513> MacRuby <http://macruby.org/>
#513: MacRuby gets confused about inheritance under certain conditions -----------------------------------+---------------------------------------- Reporter: matthew@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: -----------------------------------+---------------------------------------- Comment(by matthew@…): Replying to [ticket:513 matthew@…]: I was looking at this again and realized that I had included an extra line in the repro case. This: {{{ module Foo module Bar module Baz class Bat include Foo::Bar::Baz include Foo::Bar::Quux end end end end }}} should be: {{{ module Foo module Bar module Baz class Bat include Foo::Bar::Quux end end end end }}} In other words, the first include here is irrelevant. -- Ticket URL: <http://www.macruby.org/trac/ticket/513#comment:2> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby