From 0c5cc8cc54613540ae80f0ee0c01bc76ff497e10 Mon Sep 17 00:00:00 2001 From: Vinicius Stock Date: Tue, 9 Jul 2024 16:45:53 -0400 Subject: [PATCH] Raise if the attached namespace is missing during linearization --- lib/ruby_indexer/lib/ruby_indexer/index.rb | 2 +- lib/ruby_indexer/test/index_test.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ruby_indexer/lib/ruby_indexer/index.rb b/lib/ruby_indexer/lib/ruby_indexer/index.rb index 3cb7c78f3..d4e0ef4b9 100644 --- a/lib/ruby_indexer/lib/ruby_indexer/index.rb +++ b/lib/ruby_indexer/lib/ruby_indexer/index.rb @@ -389,7 +389,7 @@ def linearized_ancestors_of(fully_qualified_name) # If we don't have an entry for `name`, raise entries = self[fully_qualified_name] - if singleton_levels > 0 && !entries + if singleton_levels > 0 && !entries && indexed?(attached_class_name) entries = [existing_or_new_singleton_class(attached_class_name)] end diff --git a/lib/ruby_indexer/test/index_test.rb b/lib/ruby_indexer/test/index_test.rb index 6c0bce8d3..b0df08bc8 100644 --- a/lib/ruby_indexer/test/index_test.rb +++ b/lib/ruby_indexer/test/index_test.rb @@ -1707,5 +1707,11 @@ module A; end @index.linearized_ancestors_of("A::"), ) end + + def test_linearizing_a_singleton_class_with_no_attached + assert_raises(Index::NonExistingNamespaceError) do + @index.linearized_ancestors_of("A::") + end + end end end