diff --git a/lib/ruby_indexer/lib/ruby_indexer/index.rb b/lib/ruby_indexer/lib/ruby_indexer/index.rb index eeda05906c..7557c9fc25 100644 --- a/lib/ruby_indexer/lib/ruby_indexer/index.rb +++ b/lib/ruby_indexer/lib/ruby_indexer/index.rb @@ -293,11 +293,13 @@ def constant_completion_candidates(name, nesting) entries.concat(@entries_tree.search(name)) # Filter only constants since methods may have names that look like constants - entries.each do |definitions| + entries.select! do |definitions| definitions.select! do |entry| entry.is_a?(Entry::Constant) || entry.is_a?(Entry::ConstantAlias) || entry.is_a?(Entry::Namespace) || entry.is_a?(Entry::UnresolvedConstantAlias) end + + definitions.any? end entries.uniq! diff --git a/lib/ruby_indexer/test/index_test.rb b/lib/ruby_indexer/test/index_test.rb index ddea6fec96..688f610522 100644 --- a/lib/ruby_indexer/test/index_test.rb +++ b/lib/ruby_indexer/test/index_test.rb @@ -1993,6 +1993,9 @@ def Qux candidates = @index.constant_completion_candidates("Q", []) refute_includes(candidates.flat_map { |entries| entries.map(&:name) }, "Qux") + + candidates = @index.constant_completion_candidates("Qux", []) + assert_equal(0, candidates.length) end def test_constant_completion_candidates_for_empty_name