Skip to content

Commit 0e5a763

Browse files
authored
Call update_extends in ClassModule#complete (#1317)
For unknown reasons, this method was not being called in `#complete`, which led to duplicated extends in some cases.
1 parent d659484 commit 0e5a763

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

lib/rdoc/code_object/class_module.rb

+1
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ def complete min_visibility
221221
remove_nodoc_children
222222
embed_mixins
223223
update_includes
224+
update_extends
224225
remove_invisible min_visibility
225226
end
226227

test/rdoc/test_rdoc_class_module.rb

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22
require_relative 'xref_test_case'
33

4-
class TestRDocClassModule < XrefTestCase
4+
class RDocClassModuleTest < XrefTestCase
55

66
def test_add_comment
77
tl1 = @store.add_file 'one.rb'
@@ -1548,7 +1548,7 @@ def test_fully_qualified_nesting_namespaces
15481548
assert_equal ["A", "A::B", "A::B::C"], cm3.fully_qualified_nesting_namespaces
15491549
end
15501550

1551-
class TestRDocClassModuleMixins < XrefTestCase
1551+
class RDocClassModuleMixinsTest < XrefTestCase
15521552
def setup
15531553
super
15541554

@@ -1597,7 +1597,19 @@ def setup
15971597
@klass.add_extend(RDoc::Include.new("Extmod", nil))
15981598

15991599
@klass.add_include(RDoc::Include.new("ExternalInclude", nil))
1600+
# Test duplicationg removal
1601+
@klass.add_include(RDoc::Include.new("ExternalInclude", nil))
1602+
16001603
@klass.add_extend(RDoc::Include.new("ExternalExtend", nil))
1604+
# Test duplicationg removal
1605+
@klass.add_extend(RDoc::Include.new("ExternalExtend", nil))
1606+
end
1607+
1608+
def test_complete_clears_duplicated_includes_and_extends
1609+
@klass.complete(:protected)
1610+
1611+
assert_equal(["Incmod", "ExternalInclude"], @klass.includes.map(&:name))
1612+
assert_equal(["Extmod", "ExternalExtend"], @klass.extends.map(&:name))
16011613
end
16021614

16031615
def test_embed_mixin_when_false_does_not_embed_anything

0 commit comments

Comments
 (0)