From 5d845bc316a601b58fd608bfd1ba9c303414589e Mon Sep 17 00:00:00 2001 From: tompng Date: Sat, 5 Sep 2026 19:02:09 +0900 Subject: [PATCH 1/2] Remove redundant `@text_files_hash`. `@files_hash` + `page.text?` is enough. --- lib/rdoc/code_object/top_level.rb | 11 +---------- lib/rdoc/store.rb | 18 ++---------------- 2 files changed, 3 insertions(+), 26 deletions(-) diff --git a/lib/rdoc/code_object/top_level.rb b/lib/rdoc/code_object/top_level.rb index 3f5e2d0822..357d56e232 100644 --- a/lib/rdoc/code_object/top_level.rb +++ b/lib/rdoc/code_object/top_level.rb @@ -37,7 +37,7 @@ class TopLevel < Context ## # The parser class that processed this file - attr_reader :parser + attr_accessor :parser ## # Creates a new TopLevel for the file at +absolute_name+. If documentation @@ -62,15 +62,6 @@ def initialize(absolute_name, relative_name = absolute_name) @classes_or_modules = [] end - ## - # Sets the parser for this toplevel context, also the store. - - def parser=(val) - @parser = val - @store&.cache_text_file(relative_name) - @parser - end - ## # An RDoc::TopLevel is equal to another with the same relative_name diff --git a/lib/rdoc/store.rb b/lib/rdoc/store.rb index 563a9c96df..e6ce420e2f 100644 --- a/lib/rdoc/store.rb +++ b/lib/rdoc/store.rb @@ -140,7 +140,6 @@ def initialize(options, path: nil, type: nil) @classes_hash = {} @modules_hash = {} @files_hash = {} - @text_files_hash = {} @c_enclosure_classes = {} @c_enclosure_names = {} @@ -181,7 +180,6 @@ def add_file(absolute_name, relative_name: absolute_name, parser: nil) top_level.parser = parser if parser top_level.store = self @files_hash[relative_name] = top_level - @text_files_hash[relative_name] = top_level if top_level.text? @page_index = nil end @@ -200,7 +198,6 @@ def add_file(absolute_name, relative_name: absolute_name, parser: nil) def remove_file(relative_name) top_level = @files_hash.delete(relative_name) - @text_files_hash.delete(relative_name) @c_class_variables.delete(relative_name) @c_singleton_class_variables.delete(relative_name) return unless top_level @@ -316,15 +313,6 @@ def resolve_c_superclasses end end - ## - # Caches +relative_name+ in the text files hash, if it is a text file. - - def cache_text_file(relative_name) - if top_level = @files_hash[relative_name] - @text_files_hash[relative_name] = top_level if top_level.text? - end - end - ## # Returns all classes discovered by RDoc @@ -639,9 +627,8 @@ def find_module_named(name) # +file_name+ def find_text_page(file_name) - @text_files_hash.each_value.find do |file| - file.full_name == file_name - end + page = @files_hash[file_name] + page if page&.text? end ## @@ -749,7 +736,6 @@ def load_all @cache[:pages].each do |page_name| page = load_page page_name @files_hash[page_name] = page - @text_files_hash[page_name] = page if page.text? end end From 55f31f85ff6c4fa7874d18c243bded4e85a28ff1 Mon Sep 17 00:00:00 2001 From: tomoya ishida Date: Mon, 7 Sep 2026 21:30:46 +0900 Subject: [PATCH 2/2] Apply suggestion from @st0012 Co-authored-by: Stan Lo --- lib/rdoc/store.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/rdoc/store.rb b/lib/rdoc/store.rb index e6ce420e2f..3b934dbab0 100644 --- a/lib/rdoc/store.rb +++ b/lib/rdoc/store.rb @@ -734,8 +734,7 @@ def load_all @page_index = nil @cache[:pages].each do |page_name| - page = load_page page_name - @files_hash[page_name] = page + @files_hash[page_name] = load_page(page_name) end end