mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 08:33:58 +02:00
Fix a bug in rb_include_module that stops nested inclusion into module subclasses
This bug was present since the code was originally added by me
in 3556a834a2
.
Fixes [Bug #20871]
This commit is contained in:
parent
9db056f2ea
commit
3b7892b6e4
Notes:
git
2024-11-20 15:59:50 +00:00
2 changed files with 13 additions and 1 deletions
|
@ -784,6 +784,18 @@ class TestModule < Test::Unit::TestCase
|
|||
assert_equal([:m1, :m0, :m, :sc, :m1, :m0, :c], sc.new.m)
|
||||
end
|
||||
|
||||
def test_include_into_module_after_prepend_bug_20871
|
||||
bar = Module.new{def bar; 'bar'; end}
|
||||
foo = Module.new{def foo; 'foo'; end}
|
||||
m = Module.new
|
||||
c = Class.new{include m}
|
||||
m.prepend bar
|
||||
Class.new{include m}
|
||||
m.include foo
|
||||
assert_include c.ancestors, foo
|
||||
assert_equal "foo", c.new.foo
|
||||
end
|
||||
|
||||
def test_protected_include_into_included_module
|
||||
m1 = Module.new do
|
||||
def other_foo(other)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue