Skip to content

Commit 25f1df9

Browse files
committedFeb 1, 2025
Fix wrong test for class defined inside singleton class
1 parent c5d96a8 commit 25f1df9

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed
 

‎test/rdoc/test_rdoc_store.rb

+21-2
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ def setup
6666
@mod.record_location @top_level
6767
end
6868

69+
def using_prism_ruby_parser?
70+
RDoc::Parser::Ruby.name == 'RDoc::Parser::PrismRuby'
71+
end
72+
6973
def teardown
7074
super
7175

@@ -161,13 +165,17 @@ def test_add_file_relative
161165

162166
def test_all_classes_and_modules
163167
expected = %w[
164-
C1 C10 C10::C11 C11 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1 C6 C7 C8 C8::S1 C9 C9::A C9::B
168+
C1 C10 C10::C11 C11 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1 C6 C7 C8 C9 C9::A C9::B
165169
Child
166170
M1 M1::M2
167171
Object
168172
Parent
169173
]
170174

175+
# C8::S1 does not exist. It should not be in the list.
176+
# class C8; class << something; class S1; end; end; end
177+
expected = (expected + ['C8::S1']).sort unless using_prism_ruby_parser?
178+
171179
assert_equal expected,
172180
@store.all_classes_and_modules.map { |m| m.full_name }.sort
173181
end
@@ -213,12 +221,16 @@ def test_class_path
213221

214222
def test_classes
215223
expected = %w[
216-
C1 C10 C10::C11 C11 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1 C6 C7 C8 C8::S1 C9 C9::A C9::B
224+
C1 C10 C10::C11 C11 C2 C2::C3 C2::C3::H1 C3 C3::H1 C3::H2 C4 C4::C4 C5 C5::C1 C6 C7 C8 C9 C9::A C9::B
217225
Child
218226
Object
219227
Parent
220228
]
221229

230+
# C8::S1 does not exist. It should not be in the list.
231+
# class C8; class << something; class S1; end; end; end
232+
expected = (expected + ['C8::S1']).sort unless using_prism_ruby_parser?
233+
222234
assert_equal expected, @store.all_classes.map { |m| m.full_name }.sort
223235
end
224236

@@ -550,6 +562,13 @@ def test_load_class
550562
end
551563

552564
def test_load_single_class
565+
if using_prism_ruby_parser?
566+
# Class defined inside singleton class is not documentable.
567+
# @c8_s1 should be nil because C8::S1 does not exist.
568+
assert_nil @c8_s1
569+
return
570+
end
571+
553572
@s.save_class @c8_s1
554573
@s.classes_hash.clear
555574

‎test/rdoc/xref_data.rb

+1
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ class C7
110110
111111
class C8
112112
class << self
113+
# This is C8.singleton_class::S1. C8::S1 does not exist.
113114
class S1
114115
end
115116
end

0 commit comments

Comments
 (0)
Please sign in to comment.