summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/rdoc/rdoc.rb2
-rw-r--r--lib/rdoc/store.rb12
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)