[ruby-core:102283] [Ruby master Bug#17590] `M.prepend M` has hidden side effect
From:
zn@...
Date:
2021-01-29 05:19:41 UTC
List:
ruby-core #102283
Issue #17590 has been reported by znz (Kazuhiro NISHIYAMA). ---------------------------------------- Bug #17590: `M.prepend M` has hidden side effect https://bugs.ruby-lang.org/issues/17590 * Author: znz (Kazuhiro NISHIYAMA) * Status: Open * Priority: Normal * ruby -v: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- `M.prepend M` raises ArgumentError, but it has hidden side effect. ```ruby module M; end class C; end C.prepend M C.include M M.prepend M rescue nil module M2; end M2.prepend M C.include M2 p C.ancestors # => [M, C, M2, M, M2, Object, Kernel, BasicObject] ``` ```ruby module M; end class C; end C.prepend M C.include M module M2; end M2.prepend M C.include M2 p C.ancestors # => [M, C, M2, Object, Kernel, BasicObject] ``` -- 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>