Skip to content

Commit baf2636

Browse files
committed
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.
1 parent 810913a commit baf2636

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

lib/rdoc/parser/ruby.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1782,6 +1782,7 @@ def parse_statements(container, single = NORMAL, current_method = nil,
17821782

17831783
nest = 1
17841784
save_visibility = container.visibility
1785+
container.visibility = :public unless current_method
17851786

17861787
non_comment_seen = true
17871788

test/rdoc/test_rdoc_context.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -928,7 +928,11 @@ def test_visibility_def
928928
assert_equal :protected, @c6.find_method_named('prot6').visibility
929929
assert_equal :public, @c6.find_method_named('pub6').visibility
930930
assert_equal :public, @c6.find_method_named('s_pub1').visibility
931+
assert_equal :public, @c6.find_method_named('s_pub2').visibility
931932
assert_equal :public, @c6.find_method_named('s_pub3').visibility
933+
assert_equal :public, @c6.find_method_named('s_pub4').visibility
934+
assert_equal :private, @c6.find_method_named('s_priv1').visibility
935+
assert_equal :protected, @c6.find_method_named('s_prot1').visibility
932936
end
933937

934938
def util_visibilities

test/rdoc/xref_data.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ def priv4() end
7575
public def pub5() end
7676
def priv5() end
7777
def self.s_pub1() end
78+
class << self
79+
def s_pub2() end
80+
private
81+
def s_priv1() end
82+
end
7883
7984
protected
8085
private def priv6() end
@@ -84,6 +89,11 @@ def prot5() end
8489
public def pub6() end
8590
def prot6() end
8691
def self.s_pub3() end
92+
class << self
93+
def s_pub4() end
94+
protected
95+
def s_prot1() end
96+
end
8797
end
8898
8999
class C7

0 commit comments

Comments
 (0)