From: nobu@... Date: 2014-05-31T15:30:36+00:00 Subject: [ruby-core:62878] [ruby-trunk - Bug #7844] include/prepend satisfiable module dependencies are not satisfied Issue #7844 has been updated by Nobuyoshi Nakada. Description updated ---------------------------------------- Bug #7844: include/prepend satisfiable module dependencies are not satisfied https://bugs.ruby-lang.org/issues/7844#change-46992 * Author: Yusuke Endoh * Status: Assigned * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: * Target version: next minor * ruby -v: ruby 2.0.0dev (2013-02-13 trunk 39225) [x86_64-linux] * Backport: ---------------------------------------- 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 -- https://bugs.ruby-lang.org/