#1403: Modules included indirectly get included twice ----------------------------------------+----------------------------------- Reporter: ernest.prabhakar@… | Owner: lsansonetti@… Type: defect | Status: new Priority: major | Milestone: MacRuby 0.11 Component: MacRuby | Keywords: ----------------------------------------+----------------------------------- Description changed by ernest.prabhakar@…: Old description:
If module Bar includes Foo, then anything that includes Bar includes Foo twice.
{{{ #!/usr/bin/env ruby module Foo def singleton; class << self; self; end; end end
module Bar include Foo end
class Array include Bar end puts Array.ancestors s = "\nDone\n".extend(Bar) puts s puts s.singleton.ancestors }}}
{{{ prabhaka$ rvm current macruby-0.10
prabhaka$ ruby spec/include_test.rb Array Bar Foo Foo NSMutableArray NSArray Enumerable NSObject Kernel }}} This does not have with 1.8 or 1.9. It may be related to #718
{{{ prabhaka$ rvm current ruby-1.9.2-p180
prabhaka$ ruby spec/include_test.rb Array Bar Foo Enumerable Object Kernel BasicObject }}}
This occurs whether the module is included in a class or extending an instance.
New description: If module Bar includes Foo, then anything that includes Bar includes Foo twice. {{{ prabhaka$ rvm current macruby-0.10 prabhaka$ ruby spec/include_test.rb Array Bar Foo Foo NSMutableArray NSArray Enumerable NSObject Kernel }}} This does not happen with 1.8 or 1.9. It may be related to #718 {{{ prabhaka$ rvm current ruby-1.9.2-p180 prabhaka$ ruby spec/include_test.rb Array Bar Foo Enumerable Object Kernel BasicObject }}} This occurs whether the module is included in a class or extending an instance. {{{ #!/usr/bin/env ruby module Foo def singleton; class << self; self; end; end end module Bar include Foo end class Array include Bar end puts Array.ancestors }}} -- -- Ticket URL: <http://www.macruby.org/trac/ticket/1403#comment:1> MacRuby <http://macruby.org/>