From: XrXr@... Date: 2021-05-26T17:03:24+00:00 Subject: [ruby-core:104057] [Ruby master Bug#17887] Missed constant lookup after prepend Issue #17887 has been updated by alanwu (Alan Wu). ruby -v changed from 3.0.0 to 2.6.x-3.0.x I also think that the same `.ancestors` should yield the same constant lookup result. It would be harder for users to predict constant lookup otherwise. By the way, the repro script has behaved the same since [Ruby 2.2.6](https://wandbox.org/permlink/ny0oTevcLH655R2Y). ---------------------------------------- Bug #17887: Missed constant lookup after prepend https://bugs.ruby-lang.org/issues/17887#change-92199 * Author: bjfish (Brandon Fish) * Status: Open * Priority: Normal * ruby -v: 2.6.x-3.0.x * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- **Description** The following shows that the constant lookup from B does not find the constant in the prepended M module. I would expect this lookup to behave like "B.include M" which does print the constant from module M. **Example** ``` ruby module M FOO = 'm' end class A FOO = 'a' end class B < A def foo FOO end end b = B.new p b.foo A.prepend M p b.foo ``` **Expected Result** ``` "a" "m" ``` **Actual Result** ``` "a" "a" ``` -- https://bugs.ruby-lang.org/ Unsubscribe: