[ruby-core:93566] [Ruby master Bug#11301] Module#prepend should have always added the module before the current
From:
merch-redmine@...
Date:
2019-07-05 21:07:43 UTC
List:
ruby-core #93566
Issue #11301 has been updated by jeremyevans0 (Jeremy Evans). Status changed from Open to Closed This was fixed between Ruby 2.2 and Ruby 2.3: ``` $ ruby23 -e "module M; end; class A; prepend M; end; class B<A; prepend M; end; p B.ancestors" [M, B, M, A, Object, Kernel, BasicObject] $ ruby22 -e "module M; end; class A; prepend M; end; class B<A; prepend M; end; p B.ancestors" [B, M, A, Object, Kernel, BasicObject] ``` ---------------------------------------- Bug #11301: Module#prepend should have always added the module before the current https://bugs.ruby-lang.org/issues/11301#change-79136 * Author: matz (Yukihiro Matsumoto) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- I don't think it's ideal: ~~~ruby module M end class A prepend M end A.ancestors # => [M, A, Object, PP::ObjectMixin, Kernel, BasicObject] class B<A prepend M end B.ancestors # => [B, M, A, Object, PP::ObjectMixin, Kernel, BasicObject] ~~~ It should be either error (for not adding module) or the module appearing multiple times, i.e. `B.ancestors` to be ~~~ [M, B, M, A, Object, PP::ObjectMixin, Kernel, BasicObject] ~~~ Matz. -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>