@@ -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
0 commit comments