From: pikachuexe@... Date: 2021-08-06T07:35:48+00:00 Subject: [ruby-core:104798] [Ruby master Bug#7844] include/prepend satisfiable module dependencies are not satisfied Issue #7844 has been updated by PikachuEXE (Pikachu Leung). Thanks @jeremyevans0 for informing the backport request before I create the backport ticket A backport ticket is created: https://bugs.ruby-lang.org/issues/18064 I have provided the reason for requesting this backport to 2.7 in that ticket ---------------------------------------- Bug #7844: include/prepend satisfiable module dependencies are not satisfied https://bugs.ruby-lang.org/issues/7844#change-93132 * Author: mame (Yusuke Endoh) * Status: Closed * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) * ruby -v: ruby 2.0.0dev (2013-02-13 trunk 39225) [x86_64-linux] * Backport: 2.7: REQUIRED ---------------------------------------- Hello, ~~~ruby module P def m; puts "P"; super; end end module Q def m; puts "Q"; super; end include P end module R def m; puts "R"; super; end prepend Q end module S def m; puts "S"; super; end include R end class A def m; puts "A"; super; end prepend P include S end A.new.m #=> P, R, A, S, Q ~~~ This code has five module dependencies, but only two are satisfied. - `Q` includes `P`, which is not satisfied: `P#m` precedes `Q#m`. - `R` prepends `Q`, which is not satisfied: `R#m` precedes `Q#m`. - `S` includes `R`, which is not satisfied: `R#m` precedes `S#m`. - `A` prepends `P`, which is satisfied: `P#m` precedes `A#m`. - `A` includes `S`, which is satisfied: `A#m` precedes `S#m`. Note that all the dependencies can be satisfied at all: ~~~ruby A.new.m #=> Q, P, A, S, R ~~~ -- Yusuke Endoh ---Files-------------------------------- include-after-origin-7844.patch (2.61 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: