[ruby/rdoc] Visibility should begin from public for each scope

Even for singleton class definition such as `class << self` that
shares the same container with the outer scope, its visibility is
separated and set to `public` by default.

https://github.com/ruby/rdoc/commit/baf26363b9
This commit is contained in:
Nobuyoshi Nakada 2024-01-07 20:14:09 +09:00 committed by git
parent 2325b72cf3
commit 7fcc6f04ac
3 changed files with 15 additions and 0 deletions

View File

@ -1782,6 +1782,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
nest = 1
save_visibility = container.visibility
container.visibility = :public unless current_method
non_comment_seen = true

View File

@ -928,7 +928,11 @@ class TestRDocContext < XrefTestCase
assert_equal :protected, @c6.find_method_named('prot6').visibility
assert_equal :public, @c6.find_method_named('pub6').visibility
assert_equal :public, @c6.find_method_named('s_pub1').visibility
assert_equal :public, @c6.find_method_named('s_pub2').visibility
assert_equal :public, @c6.find_method_named('s_pub3').visibility
assert_equal :public, @c6.find_method_named('s_pub4').visibility
assert_equal :private, @c6.find_method_named('s_priv1').visibility
assert_equal :protected, @c6.find_method_named('s_prot1').visibility
end
def util_visibilities

View File

@ -75,6 +75,11 @@ class C6
public def pub5() end
def priv5() end
def self.s_pub1() end
class << self
def s_pub2() end
private
def s_priv1() end
end
protected
private def priv6() end
@ -84,6 +89,11 @@ class C6
public def pub6() end
def prot6() end
def self.s_pub3() end
class << self
def s_pub4() end
protected
def s_prot1() end
end
end
class C7