diff options
author | Hiroshi SHIBATA <[email protected]> | 2024-12-03 09:03:17 +0900 |
---|---|---|
committer | Hiroshi SHIBATA <[email protected]> | 2024-12-03 10:59:32 +0900 |
commit | d85e8b53393779f7cc7aa5779387fc68ac85dc47 (patch) | |
tree | 1a6bb1b716cff14f434ab6eae92cc7b07b208d8a /lib | |
parent | 59d23174c01d201b4a1bbc0eaab32b167a3cb975 (diff) |
Reapply "[ruby/rdoc] fix: C variables should never show up in Ancestors tree"
This reverts commit 0fe82ae087130d7f360cc0607be93995cedbdb16.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/12233
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rdoc/rdoc.rb | 2 | ||||
-rw-r--r-- | lib/rdoc/store.rb | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/rdoc/rdoc.rb b/lib/rdoc/rdoc.rb index 88ae55b409..a910215ff6 100644 --- a/lib/rdoc/rdoc.rb +++ b/lib/rdoc/rdoc.rb @@ -415,6 +415,8 @@ The internal error was: parse_file filename end.compact + @store.resolve_c_superclasses + @stats.done_adding @options = original_options diff --git a/lib/rdoc/store.rb b/lib/rdoc/store.rb index cd27d47dd1..e85bc9d33a 100644 --- a/lib/rdoc/store.rb +++ b/lib/rdoc/store.rb @@ -198,6 +198,18 @@ class RDoc::Store end ## + # Make sure any references to C variable names are resolved to the corresponding class. + # + + def resolve_c_superclasses + @classes_hash.each_value do |klass| + if klass.superclass.is_a?(String) && (candidate = find_c_enclosure(klass.superclass)) + klass.superclass = candidate + end + end + end + + ## # Sets the parser of +absolute_name+, unless it from a source code file. def update_parser_of_file(absolute_name, parser) |