ruby-lsp 0.23.13 → 0.23.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/VERSION +1 -1
 - data/exe/ruby-lsp-launcher +9 -1
 - data/lib/ruby_indexer/lib/ruby_indexer/configuration.rb +1 -1
 - data/lib/ruby_indexer/lib/ruby_indexer/declaration_listener.rb +6 -3
 - data/lib/ruby_indexer/lib/ruby_indexer/entry.rb +4 -2
 - data/lib/ruby_indexer/lib/ruby_indexer/index.rb +59 -29
 - data/lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb +5 -4
 - data/lib/ruby_indexer/lib/ruby_indexer/reference_finder.rb +5 -1
 - data/lib/ruby_indexer/lib/ruby_indexer/uri.rb +8 -3
 - data/lib/ruby_indexer/test/class_variables_test.rb +14 -14
 - data/lib/ruby_indexer/test/classes_and_modules_test.rb +65 -40
 - data/lib/ruby_indexer/test/configuration_test.rb +6 -4
 - data/lib/ruby_indexer/test/constant_test.rb +34 -34
 - data/lib/ruby_indexer/test/enhancements_test.rb +1 -1
 - data/lib/ruby_indexer/test/index_test.rb +139 -135
 - data/lib/ruby_indexer/test/instance_variables_test.rb +37 -37
 - data/lib/ruby_indexer/test/method_test.rb +118 -118
 - data/lib/ruby_indexer/test/prefix_tree_test.rb +13 -13
 - data/lib/ruby_indexer/test/rbs_indexer_test.rb +64 -70
 - data/lib/ruby_indexer/test/test_case.rb +2 -2
 - data/lib/ruby_indexer/test/uri_test.rb +15 -2
 - data/lib/ruby_lsp/erb_document.rb +12 -4
 - data/lib/ruby_lsp/global_state.rb +1 -1
 - data/lib/ruby_lsp/listeners/code_lens.rb +3 -3
 - data/lib/ruby_lsp/listeners/completion.rb +24 -11
 - data/lib/ruby_lsp/listeners/definition.rb +1 -1
 - data/lib/ruby_lsp/listeners/document_link.rb +3 -1
 - data/lib/ruby_lsp/listeners/document_symbol.rb +3 -3
 - data/lib/ruby_lsp/listeners/folding_ranges.rb +8 -4
 - data/lib/ruby_lsp/listeners/hover.rb +2 -2
 - data/lib/ruby_lsp/listeners/semantic_highlighting.rb +12 -5
 - data/lib/ruby_lsp/listeners/signature_help.rb +5 -1
 - data/lib/ruby_lsp/listeners/spec_style.rb +1 -1
 - data/lib/ruby_lsp/listeners/test_style.rb +3 -3
 - data/lib/ruby_lsp/requests/code_action_resolve.rb +4 -3
 - data/lib/ruby_lsp/requests/completion_resolve.rb +1 -1
 - data/lib/ruby_lsp/requests/hover.rb +2 -2
 - data/lib/ruby_lsp/requests/on_type_formatting.rb +4 -2
 - data/lib/ruby_lsp/requests/prepare_type_hierarchy.rb +1 -2
 - data/lib/ruby_lsp/requests/references.rb +2 -1
 - data/lib/ruby_lsp/requests/rename.rb +8 -5
 - data/lib/ruby_lsp/requests/semantic_highlighting.rb +4 -4
 - data/lib/ruby_lsp/requests/show_syntax_tree.rb +1 -1
 - data/lib/ruby_lsp/requests/support/common.rb +3 -1
 - data/lib/ruby_lsp/requests/support/rubocop_formatter.rb +2 -2
 - data/lib/ruby_lsp/requests/support/source_uri.rb +1 -1
 - data/lib/ruby_lsp/response_builders/document_symbol.rb +3 -2
 - data/lib/ruby_lsp/response_builders/hover.rb +1 -1
 - data/lib/ruby_lsp/response_builders/semantic_highlighting.rb +1 -1
 - data/lib/ruby_lsp/scripts/compose_bundle.rb +6 -4
 - data/lib/ruby_lsp/server.rb +12 -4
 - data/lib/ruby_lsp/setup_bundler.rb +5 -2
 - data/lib/ruby_lsp/static_docs.rb +8 -1
 - data/lib/ruby_lsp/store.rb +3 -2
 - data/lib/ruby_lsp/test_helper.rb +0 -1
 - data/lib/ruby_lsp/test_reporters/lsp_reporter.rb +152 -0
 - data/lib/ruby_lsp/test_reporters/minitest_reporter.rb +105 -0
 - data/lib/ruby_lsp/test_reporters/test_unit_reporter.rb +94 -0
 - data/lib/ruby_lsp/type_inferrer.rb +4 -1
 - metadata +6 -6
 - data/lib/ruby_lsp/ruby_lsp_reporter_plugin.rb +0 -109
 - data/lib/ruby_lsp/test_reporter.rb +0 -207
 - data/lib/ruby_lsp/test_unit_test_runner.rb +0 -98
 
| 
         @@ -15,11 +15,11 @@ module RubyIndexer 
     | 
|
| 
       15 
15 
     | 
    
         
             
                    end
         
     | 
| 
       16 
16 
     | 
    
         
             
                  RUBY
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
                  entries = @index["Foo"]
         
     | 
| 
      
 18 
     | 
    
         
            +
                  entries = @index["Foo"] #: as !nil
         
     | 
| 
       19 
19 
     | 
    
         
             
                  assert_equal(2, entries.length)
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                  @index.delete(URI::Generic.from_path(path: "/fake/path/other_foo.rb"))
         
     | 
| 
       22 
     | 
    
         
            -
                  entries = @index["Foo"]
         
     | 
| 
      
 22 
     | 
    
         
            +
                  entries = @index["Foo"] #: as !nil
         
     | 
| 
       23 
23 
     | 
    
         
             
                  assert_equal(1, entries.length)
         
     | 
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
         @@ -29,7 +29,7 @@ module RubyIndexer 
     | 
|
| 
       29 
29 
     | 
    
         
             
                    end
         
     | 
| 
       30 
30 
     | 
    
         
             
                  RUBY
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                  entries = @index["Foo"]
         
     | 
| 
      
 32 
     | 
    
         
            +
                  entries = @index["Foo"] #: as !nil
         
     | 
| 
       33 
33 
     | 
    
         
             
                  assert_equal(1, entries.length)
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
                  @index.delete(URI::Generic.from_path(path: "/fake/path/foo.rb"))
         
     | 
| 
         @@ -52,21 +52,21 @@ module RubyIndexer 
     | 
|
| 
       52 
52 
     | 
    
         
             
                    end
         
     | 
| 
       53 
53 
     | 
    
         
             
                  RUBY
         
     | 
| 
       54 
54 
     | 
    
         | 
| 
       55 
     | 
    
         
            -
                  entries = @index.resolve("Something", ["Foo", "Baz"])
         
     | 
| 
      
 55 
     | 
    
         
            +
                  entries = @index.resolve("Something", ["Foo", "Baz"]) #: as !nil
         
     | 
| 
       56 
56 
     | 
    
         
             
                  refute_empty(entries)
         
     | 
| 
       57 
     | 
    
         
            -
                  assert_equal("Foo::Baz::Something", entries.first 
     | 
| 
      
 57 
     | 
    
         
            +
                  assert_equal("Foo::Baz::Something", entries.first&.name)
         
     | 
| 
       58 
58 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
                  entries = @index.resolve("Bar", ["Foo"])
         
     | 
| 
      
 59 
     | 
    
         
            +
                  entries = @index.resolve("Bar", ["Foo"]) #: as !nil
         
     | 
| 
       60 
60 
     | 
    
         
             
                  refute_empty(entries)
         
     | 
| 
       61 
     | 
    
         
            -
                  assert_equal("Foo::Bar", entries.first 
     | 
| 
      
 61 
     | 
    
         
            +
                  assert_equal("Foo::Bar", entries.first&.name)
         
     | 
| 
       62 
62 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
                  entries = @index.resolve("Bar", ["Foo", "Baz"])
         
     | 
| 
      
 63 
     | 
    
         
            +
                  entries = @index.resolve("Bar", ["Foo", "Baz"]) #: as !nil
         
     | 
| 
       64 
64 
     | 
    
         
             
                  refute_empty(entries)
         
     | 
| 
       65 
     | 
    
         
            -
                  assert_equal("Foo::Bar", entries.first 
     | 
| 
      
 65 
     | 
    
         
            +
                  assert_equal("Foo::Bar", entries.first&.name)
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                  entries = @index.resolve("Foo::Bar", ["Foo", "Baz"])
         
     | 
| 
      
 67 
     | 
    
         
            +
                  entries = @index.resolve("Foo::Bar", ["Foo", "Baz"]) #: as !nil
         
     | 
| 
       68 
68 
     | 
    
         
             
                  refute_empty(entries)
         
     | 
| 
       69 
     | 
    
         
            -
                  assert_equal("Foo::Bar", entries.first 
     | 
| 
      
 69 
     | 
    
         
            +
                  assert_equal("Foo::Bar", entries.first&.name)
         
     | 
| 
       70 
70 
     | 
    
         | 
| 
       71 
71 
     | 
    
         
             
                  assert_nil(@index.resolve("DoesNotExist", ["Foo"]))
         
     | 
| 
       72 
72 
     | 
    
         
             
                end
         
     | 
| 
         @@ -86,9 +86,9 @@ module RubyIndexer 
     | 
|
| 
       86 
86 
     | 
    
         
             
                    end
         
     | 
| 
       87 
87 
     | 
    
         
             
                  RUBY
         
     | 
| 
       88 
88 
     | 
    
         | 
| 
       89 
     | 
    
         
            -
                  entries = @index["::Foo::Baz::Something"]
         
     | 
| 
      
 89 
     | 
    
         
            +
                  entries = @index["::Foo::Baz::Something"] #: as !nil
         
     | 
| 
       90 
90 
     | 
    
         
             
                  refute_empty(entries)
         
     | 
| 
       91 
     | 
    
         
            -
                  assert_equal("Foo::Baz::Something", entries.first 
     | 
| 
      
 91 
     | 
    
         
            +
                  assert_equal("Foo::Baz::Something", entries.first&.name)
         
     | 
| 
       92 
92 
     | 
    
         
             
                end
         
     | 
| 
       93 
93 
     | 
    
         | 
| 
       94 
94 
     | 
    
         
             
                def test_fuzzy_search
         
     | 
| 
         @@ -140,7 +140,7 @@ module RubyIndexer 
     | 
|
| 
       140 
140 
     | 
    
         
             
                    end
         
     | 
| 
       141 
141 
     | 
    
         
             
                  RUBY
         
     | 
| 
       142 
142 
     | 
    
         | 
| 
       143 
     | 
    
         
            -
                  assert_equal(["path/ 
     | 
| 
      
 143 
     | 
    
         
            +
                  assert_equal(["path/other_foo", "path/foo"], @index.search_require_paths("path").map(&:require_path))
         
     | 
| 
       144 
144 
     | 
    
         
             
                end
         
     | 
| 
       145 
145 
     | 
    
         | 
| 
       146 
146 
     | 
    
         
             
                def test_searching_for_entries_based_on_prefix
         
     | 
| 
         @@ -157,10 +157,10 @@ module RubyIndexer 
     | 
|
| 
       157 
157 
     | 
    
         
             
                  RUBY
         
     | 
| 
       158 
158 
     | 
    
         | 
| 
       159 
159 
     | 
    
         
             
                  results = @index.prefix_search("Foo", []).map { |entries| entries.map(&:name) }
         
     | 
| 
       160 
     | 
    
         
            -
                  assert_equal([["Foo:: 
     | 
| 
      
 160 
     | 
    
         
            +
                  assert_equal([["Foo::Bizt"], ["Foo::Bizw", "Foo::Bizw"]], results)
         
     | 
| 
       161 
161 
     | 
    
         | 
| 
       162 
162 
     | 
    
         
             
                  results = @index.prefix_search("Biz", ["Foo"]).map { |entries| entries.map(&:name) }
         
     | 
| 
       163 
     | 
    
         
            -
                  assert_equal([["Foo:: 
     | 
| 
      
 163 
     | 
    
         
            +
                  assert_equal([["Foo::Bizt"], ["Foo::Bizw", "Foo::Bizw"]], results)
         
     | 
| 
       164 
164 
     | 
    
         
             
                end
         
     | 
| 
       165 
165 
     | 
    
         | 
| 
       166 
166 
     | 
    
         
             
                def test_resolve_normalizes_top_level_names
         
     | 
| 
         @@ -172,15 +172,15 @@ module RubyIndexer 
     | 
|
| 
       172 
172 
     | 
    
         
             
                    end
         
     | 
| 
       173 
173 
     | 
    
         
             
                  RUBY
         
     | 
| 
       174 
174 
     | 
    
         | 
| 
       175 
     | 
    
         
            -
                  entries = @index.resolve("::Foo::Bar", [])
         
     | 
| 
      
 175 
     | 
    
         
            +
                  entries = @index.resolve("::Foo::Bar", []) #: as !nil
         
     | 
| 
       176 
176 
     | 
    
         
             
                  refute_nil(entries)
         
     | 
| 
       177 
177 
     | 
    
         | 
| 
       178 
     | 
    
         
            -
                  assert_equal("Foo::Bar", entries.first 
     | 
| 
      
 178 
     | 
    
         
            +
                  assert_equal("Foo::Bar", entries.first&.name)
         
     | 
| 
       179 
179 
     | 
    
         | 
| 
       180 
     | 
    
         
            -
                  entries = @index.resolve("::Bar", ["Foo"])
         
     | 
| 
      
 180 
     | 
    
         
            +
                  entries = @index.resolve("::Bar", ["Foo"]) #: as !nil
         
     | 
| 
       181 
181 
     | 
    
         
             
                  refute_nil(entries)
         
     | 
| 
       182 
182 
     | 
    
         | 
| 
       183 
     | 
    
         
            -
                  assert_equal("Bar", entries.first 
     | 
| 
      
 183 
     | 
    
         
            +
                  assert_equal("Bar", entries.first&.name)
         
     | 
| 
       184 
184 
     | 
    
         
             
                end
         
     | 
| 
       185 
185 
     | 
    
         | 
| 
       186 
186 
     | 
    
         
             
                def test_resolving_aliases_to_non_existing_constants_with_conflicting_names
         
     | 
| 
         @@ -195,7 +195,7 @@ module RubyIndexer 
     | 
|
| 
       195 
195 
     | 
    
         
             
                    end
         
     | 
| 
       196 
196 
     | 
    
         
             
                  RUBY
         
     | 
| 
       197 
197 
     | 
    
         | 
| 
       198 
     | 
    
         
            -
                  entry = @index.resolve("BAZ", ["Foo", "Bar"]) 
     | 
| 
      
 198 
     | 
    
         
            +
                  entry = @index.resolve("BAZ", ["Foo", "Bar"])&.first
         
     | 
| 
       199 
199 
     | 
    
         
             
                  refute_nil(entry)
         
     | 
| 
       200 
200 
     | 
    
         | 
| 
       201 
201 
     | 
    
         
             
                  assert_instance_of(Entry::UnresolvedConstantAlias, entry)
         
     | 
| 
         @@ -233,9 +233,10 @@ module RubyIndexer 
     | 
|
| 
       233 
233 
     | 
    
         
             
                    end
         
     | 
| 
       234 
234 
     | 
    
         
             
                  RUBY
         
     | 
| 
       235 
235 
     | 
    
         | 
| 
       236 
     | 
    
         
            -
                  entries =  
     | 
| 
       237 
     | 
    
         
            -
                  assert_equal("baz", entries.first 
     | 
| 
       238 
     | 
    
         
            -
                   
     | 
| 
      
 236 
     | 
    
         
            +
                  entries = @index.resolve_method("baz", "Foo::Bar") #: as !nil
         
     | 
| 
      
 237 
     | 
    
         
            +
                  assert_equal("baz", entries.first&.name)
         
     | 
| 
      
 238 
     | 
    
         
            +
                  owner = entries.first&.owner #: as !nil
         
     | 
| 
      
 239 
     | 
    
         
            +
                  assert_equal("Foo::Bar", owner.name)
         
     | 
| 
       239 
240 
     | 
    
         
             
                end
         
     | 
| 
       240 
241 
     | 
    
         | 
| 
       241 
242 
     | 
    
         
             
                def test_resolve_method_with_class_name_conflict
         
     | 
| 
         @@ -248,9 +249,10 @@ module RubyIndexer 
     | 
|
| 
       248 
249 
     | 
    
         
             
                    end
         
     | 
| 
       249 
250 
     | 
    
         
             
                  RUBY
         
     | 
| 
       250 
251 
     | 
    
         | 
| 
       251 
     | 
    
         
            -
                  entries =  
     | 
| 
       252 
     | 
    
         
            -
                  assert_equal("Array", entries.first 
     | 
| 
       253 
     | 
    
         
            -
                   
     | 
| 
      
 252 
     | 
    
         
            +
                  entries = @index.resolve_method("Array", "Foo") #: as !nil
         
     | 
| 
      
 253 
     | 
    
         
            +
                  assert_equal("Array", entries.first&.name)
         
     | 
| 
      
 254 
     | 
    
         
            +
                  owner = entries.first&.owner #: as !nil
         
     | 
| 
      
 255 
     | 
    
         
            +
                  assert_equal("Foo", owner.name)
         
     | 
| 
       254 
256 
     | 
    
         
             
                end
         
     | 
| 
       255 
257 
     | 
    
         | 
| 
       256 
258 
     | 
    
         
             
                def test_resolve_method_attribute
         
     | 
| 
         @@ -260,9 +262,10 @@ module RubyIndexer 
     | 
|
| 
       260 
262 
     | 
    
         
             
                    end
         
     | 
| 
       261 
263 
     | 
    
         
             
                  RUBY
         
     | 
| 
       262 
264 
     | 
    
         | 
| 
       263 
     | 
    
         
            -
                  entries =  
     | 
| 
       264 
     | 
    
         
            -
                  assert_equal("bar", entries.first 
     | 
| 
       265 
     | 
    
         
            -
                   
     | 
| 
      
 265 
     | 
    
         
            +
                  entries = @index.resolve_method("bar", "Foo") #: as !nil
         
     | 
| 
      
 266 
     | 
    
         
            +
                  assert_equal("bar", entries.first&.name)
         
     | 
| 
      
 267 
     | 
    
         
            +
                  owner = entries.first&.owner #: as !nil
         
     | 
| 
      
 268 
     | 
    
         
            +
                  assert_equal("Foo", owner.name)
         
     | 
| 
       266 
269 
     | 
    
         
             
                end
         
     | 
| 
       267 
270 
     | 
    
         | 
| 
       268 
271 
     | 
    
         
             
                def test_resolve_method_with_two_definitions
         
     | 
| 
         @@ -278,15 +281,17 @@ module RubyIndexer 
     | 
|
| 
       278 
281 
     | 
    
         
             
                    end
         
     | 
| 
       279 
282 
     | 
    
         
             
                  RUBY
         
     | 
| 
       280 
283 
     | 
    
         | 
| 
       281 
     | 
    
         
            -
                  first_entry, second_entry =  
     | 
| 
      
 284 
     | 
    
         
            +
                  first_entry, second_entry = @index.resolve_method("bar", "Foo") #: as !nil
         
     | 
| 
       282 
285 
     | 
    
         | 
| 
       283 
     | 
    
         
            -
                  assert_equal("bar", first_entry 
     | 
| 
       284 
     | 
    
         
            -
                   
     | 
| 
       285 
     | 
    
         
            -
                   
     | 
| 
      
 286 
     | 
    
         
            +
                  assert_equal("bar", first_entry&.name)
         
     | 
| 
      
 287 
     | 
    
         
            +
                  owner = first_entry&.owner #: as !nil
         
     | 
| 
      
 288 
     | 
    
         
            +
                  assert_equal("Foo", owner.name)
         
     | 
| 
      
 289 
     | 
    
         
            +
                  assert_includes(first_entry&.comments, "Hello from first `bar`")
         
     | 
| 
       286 
290 
     | 
    
         | 
| 
       287 
     | 
    
         
            -
                  assert_equal("bar", second_entry 
     | 
| 
       288 
     | 
    
         
            -
                   
     | 
| 
       289 
     | 
    
         
            -
                   
     | 
| 
      
 291 
     | 
    
         
            +
                  assert_equal("bar", second_entry&.name)
         
     | 
| 
      
 292 
     | 
    
         
            +
                  owner = second_entry&.owner #: as !nil
         
     | 
| 
      
 293 
     | 
    
         
            +
                  assert_equal("Foo", owner.name)
         
     | 
| 
      
 294 
     | 
    
         
            +
                  assert_includes(second_entry&.comments, "Hello from second `bar`")
         
     | 
| 
       290 
295 
     | 
    
         
             
                end
         
     | 
| 
       291 
296 
     | 
    
         | 
| 
       292 
297 
     | 
    
         
             
                def test_resolve_method_inherited_only
         
     | 
| 
         @@ -300,9 +305,8 @@ module RubyIndexer 
     | 
|
| 
       300 
305 
     | 
    
         
             
                    end
         
     | 
| 
       301 
306 
     | 
    
         
             
                  RUBY
         
     | 
| 
       302 
307 
     | 
    
         | 
| 
       303 
     | 
    
         
            -
                  entry =  
     | 
| 
       304 
     | 
    
         
            -
             
     | 
| 
       305 
     | 
    
         
            -
                  assert_equal("Bar", T.must(entry.owner).name)
         
     | 
| 
      
 308 
     | 
    
         
            +
                  entry = @index.resolve_method("baz", "Foo", inherited_only: true)&.first #: as !nil
         
     | 
| 
      
 309 
     | 
    
         
            +
                  assert_equal("Bar", entry.owner&.name)
         
     | 
| 
       306 
310 
     | 
    
         
             
                end
         
     | 
| 
       307 
311 
     | 
    
         | 
| 
       308 
312 
     | 
    
         
             
                def test_resolve_method_inherited_only_for_prepended_module
         
     | 
| 
         @@ -338,7 +342,7 @@ module RubyIndexer 
     | 
|
| 
       338 
342 
     | 
    
         
             
                  entries = @index.prefix_search("qz")
         
     | 
| 
       339 
343 
     | 
    
         
             
                  refute_empty(entries)
         
     | 
| 
       340 
344 
     | 
    
         | 
| 
       341 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 345 
     | 
    
         
            +
                  entry = entries.first&.first #: as !nil
         
     | 
| 
       342 
346 
     | 
    
         
             
                  assert_equal("qzx", entry.name)
         
     | 
| 
       343 
347 
     | 
    
         
             
                end
         
     | 
| 
       344 
348 
     | 
    
         | 
| 
         @@ -739,13 +743,13 @@ module RubyIndexer 
     | 
|
| 
       739 
743 
     | 
    
         
             
                    end
         
     | 
| 
       740 
744 
     | 
    
         
             
                  RUBY
         
     | 
| 
       741 
745 
     | 
    
         | 
| 
       742 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 746 
     | 
    
         
            +
                  entry = @index.resolve_method("baz", "Wow")&.first #: as !nil
         
     | 
| 
       743 
747 
     | 
    
         
             
                  assert_equal("baz", entry.name)
         
     | 
| 
       744 
     | 
    
         
            -
                  assert_equal("Foo",  
     | 
| 
      
 748 
     | 
    
         
            +
                  assert_equal("Foo", entry.owner&.name)
         
     | 
| 
       745 
749 
     | 
    
         | 
| 
       746 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 750 
     | 
    
         
            +
                  entry = @index.resolve_method("qux", "Wow")&.first #: as !nil
         
     | 
| 
       747 
751 
     | 
    
         
             
                  assert_equal("qux", entry.name)
         
     | 
| 
       748 
     | 
    
         
            -
                  assert_equal("Bar",  
     | 
| 
      
 752 
     | 
    
         
            +
                  assert_equal("Bar", entry.owner&.name)
         
     | 
| 
       749 
753 
     | 
    
         
             
                end
         
     | 
| 
       750 
754 
     | 
    
         | 
| 
       751 
755 
     | 
    
         
             
                def test_resolving_an_inherited_method_lands_on_first_match
         
     | 
| 
         @@ -765,12 +769,12 @@ module RubyIndexer 
     | 
|
| 
       765 
769 
     | 
    
         
             
                    end
         
     | 
| 
       766 
770 
     | 
    
         
             
                  RUBY
         
     | 
| 
       767 
771 
     | 
    
         | 
| 
       768 
     | 
    
         
            -
                  entries =  
     | 
| 
      
 772 
     | 
    
         
            +
                  entries = @index.resolve_method("qux", "Wow") #: as !nil
         
     | 
| 
       769 
773 
     | 
    
         
             
                  assert_equal(1, entries.length)
         
     | 
| 
       770 
774 
     | 
    
         | 
| 
       771 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 775 
     | 
    
         
            +
                  entry = entries.first #: as !nil
         
     | 
| 
       772 
776 
     | 
    
         
             
                  assert_equal("qux", entry.name)
         
     | 
| 
       773 
     | 
    
         
            -
                  assert_equal("Foo",  
     | 
| 
      
 777 
     | 
    
         
            +
                  assert_equal("Foo", entry.owner&.name)
         
     | 
| 
       774 
778 
     | 
    
         
             
                end
         
     | 
| 
       775 
779 
     | 
    
         | 
| 
       776 
780 
     | 
    
         
             
                def test_handle_change_clears_ancestor_cache_if_tree_changed
         
     | 
| 
         @@ -800,7 +804,8 @@ module RubyIndexer 
     | 
|
| 
       800 
804 
     | 
    
         
             
                        end
         
     | 
| 
       801 
805 
     | 
    
         
             
                      RUBY
         
     | 
| 
       802 
806 
     | 
    
         | 
| 
       803 
     | 
    
         
            -
                       
     | 
| 
      
 807 
     | 
    
         
            +
                      path = uri.full_path #: as !nil
         
     | 
| 
      
 808 
     | 
    
         
            +
                      @index.handle_change(uri, File.read(path))
         
     | 
| 
       804 
809 
     | 
    
         
             
                      assert_empty(@index.instance_variable_get(:@ancestors))
         
     | 
| 
       805 
810 
     | 
    
         
             
                      assert_equal(["Bar", "Object", "Kernel", "BasicObject"], @index.linearized_ancestors_of("Bar"))
         
     | 
| 
       806 
811 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -837,7 +842,8 @@ module RubyIndexer 
     | 
|
| 
       837 
842 
     | 
    
         
             
                        end
         
     | 
| 
       838 
843 
     | 
    
         
             
                      RUBY
         
     | 
| 
       839 
844 
     | 
    
         | 
| 
       840 
     | 
    
         
            -
                       
     | 
| 
      
 845 
     | 
    
         
            +
                      path = uri.full_path #: as !nil
         
     | 
| 
      
 846 
     | 
    
         
            +
                      @index.handle_change(uri, File.read(path))
         
     | 
| 
       841 
847 
     | 
    
         
             
                      refute_empty(@index.instance_variable_get(:@ancestors))
         
     | 
| 
       842 
848 
     | 
    
         
             
                      assert_equal(["Bar", "Foo", "Object", "Kernel", "BasicObject"], @index.linearized_ancestors_of("Bar"))
         
     | 
| 
       843 
849 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -870,7 +876,8 @@ module RubyIndexer 
     | 
|
| 
       870 
876 
     | 
    
         
             
                        end
         
     | 
| 
       871 
877 
     | 
    
         
             
                      RUBY
         
     | 
| 
       872 
878 
     | 
    
         | 
| 
       873 
     | 
    
         
            -
                       
     | 
| 
      
 879 
     | 
    
         
            +
                      path = uri.full_path #: as !nil
         
     | 
| 
      
 880 
     | 
    
         
            +
                      @index.handle_change(uri, File.read(path))
         
     | 
| 
       874 
881 
     | 
    
         
             
                      assert_empty(@index.instance_variable_get(:@ancestors))
         
     | 
| 
       875 
882 
     | 
    
         
             
                      assert_equal(["Bar", "Object", "Kernel", "BasicObject"], @index.linearized_ancestors_of("Bar"))
         
     | 
| 
       876 
883 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -904,7 +911,7 @@ module RubyIndexer 
     | 
|
| 
       904 
911 
     | 
    
         
             
                    CONST = 4
         
     | 
| 
       905 
912 
     | 
    
         
             
                  RUBY
         
     | 
| 
       906 
913 
     | 
    
         | 
| 
       907 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 914 
     | 
    
         
            +
                  entry = @index.resolve("CONST", ["Namespace", "Bar"])&.first #: as !nil
         
     | 
| 
       908 
915 
     | 
    
         
             
                  assert_equal(14, entry.location.start_line)
         
     | 
| 
       909 
916 
     | 
    
         
             
                end
         
     | 
| 
       910 
917 
     | 
    
         | 
| 
         @@ -925,10 +932,10 @@ module RubyIndexer 
     | 
|
| 
       925 
932 
     | 
    
         
             
                    end
         
     | 
| 
       926 
933 
     | 
    
         
             
                  RUBY
         
     | 
| 
       927 
934 
     | 
    
         | 
| 
       928 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 935 
     | 
    
         
            +
                  entry = @index.resolve("Foo::CONST::TARGET", [])&.first #: as !nil
         
     | 
| 
       929 
936 
     | 
    
         
             
                  assert_equal(2, entry.location.start_line)
         
     | 
| 
       930 
937 
     | 
    
         | 
| 
       931 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 938 
     | 
    
         
            +
                  entry = @index.resolve("Namespace::Bar::CONST::TARGET", [])&.first #: as !nil
         
     | 
| 
       932 
939 
     | 
    
         
             
                  assert_equal(2, entry.location.start_line)
         
     | 
| 
       933 
940 
     | 
    
         
             
                end
         
     | 
| 
       934 
941 
     | 
    
         | 
| 
         @@ -946,10 +953,10 @@ module RubyIndexer 
     | 
|
| 
       946 
953 
     | 
    
         
             
                    end
         
     | 
| 
       947 
954 
     | 
    
         
             
                  RUBY
         
     | 
| 
       948 
955 
     | 
    
         | 
| 
       949 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 956 
     | 
    
         
            +
                  entry = @index.resolve("CONST", ["Namespace", "Child"])&.first #: as !nil
         
     | 
| 
       950 
957 
     | 
    
         
             
                  assert_equal(2, entry.location.start_line)
         
     | 
| 
       951 
958 
     | 
    
         | 
| 
       952 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 959 
     | 
    
         
            +
                  entry = @index.resolve("Namespace::Child::CONST", [])&.first #: as !nil
         
     | 
| 
       953 
960 
     | 
    
         
             
                  assert_equal(5, entry.location.start_line)
         
     | 
| 
       954 
961 
     | 
    
         
             
                end
         
     | 
| 
       955 
962 
     | 
    
         | 
| 
         @@ -975,13 +982,13 @@ module RubyIndexer 
     | 
|
| 
       975 
982 
     | 
    
         
             
                    end
         
     | 
| 
       976 
983 
     | 
    
         
             
                  RUBY
         
     | 
| 
       977 
984 
     | 
    
         | 
| 
       978 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 985 
     | 
    
         
            +
                  entry = @index.resolve("CONST", ["Foo"])&.first #: as !nil
         
     | 
| 
       979 
986 
     | 
    
         
             
                  assert_equal(6, entry.location.start_line)
         
     | 
| 
       980 
987 
     | 
    
         | 
| 
       981 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 988 
     | 
    
         
            +
                  entry = @index.resolve("Foo::CONST", [])&.first #: as !nil
         
     | 
| 
       982 
989 
     | 
    
         
             
                  assert_equal(6, entry.location.start_line)
         
     | 
| 
       983 
990 
     | 
    
         | 
| 
       984 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 991 
     | 
    
         
            +
                  entry = @index.resolve("Bar::CONST", [])&.first #: as !nil
         
     | 
| 
       985 
992 
     | 
    
         
             
                  assert_equal(15, entry.location.start_line)
         
     | 
| 
       986 
993 
     | 
    
         
             
                end
         
     | 
| 
       987 
994 
     | 
    
         | 
| 
         @@ -1005,7 +1012,7 @@ module RubyIndexer 
     | 
|
| 
       1005 
1012 
     | 
    
         
             
                    end
         
     | 
| 
       1006 
1013 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1007 
1014 
     | 
    
         | 
| 
       1008 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1015 
     | 
    
         
            +
                  entry = @index.resolve("CONST", ["First", "Second"])&.first #: as !nil
         
     | 
| 
       1009 
1016 
     | 
    
         
             
                  assert_equal(6, entry.location.start_line)
         
     | 
| 
       1010 
1017 
     | 
    
         
             
                end
         
     | 
| 
       1011 
1018 
     | 
    
         | 
| 
         @@ -1017,11 +1024,11 @@ module RubyIndexer 
     | 
|
| 
       1017 
1024 
     | 
    
         
             
                    end
         
     | 
| 
       1018 
1025 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1019 
1026 
     | 
    
         | 
| 
       1020 
     | 
    
         
            -
                  foo_entry =  
     | 
| 
      
 1027 
     | 
    
         
            +
                  foo_entry = @index.resolve("FOO", ["Namespace"])&.first #: as !nil
         
     | 
| 
       1021 
1028 
     | 
    
         
             
                  assert_equal(2, foo_entry.location.start_line)
         
     | 
| 
       1022 
1029 
     | 
    
         
             
                  assert_instance_of(Entry::ConstantAlias, foo_entry)
         
     | 
| 
       1023 
1030 
     | 
    
         | 
| 
       1024 
     | 
    
         
            -
                  bar_entry =  
     | 
| 
      
 1031 
     | 
    
         
            +
                  bar_entry = @index.resolve("BAR", ["Namespace"])&.first #: as !nil
         
     | 
| 
       1025 
1032 
     | 
    
         
             
                  assert_equal(3, bar_entry.location.start_line)
         
     | 
| 
       1026 
1033 
     | 
    
         
             
                  assert_instance_of(Entry::ConstantAlias, bar_entry)
         
     | 
| 
       1027 
1034 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1035,15 +1042,15 @@ module RubyIndexer 
     | 
|
| 
       1035 
1042 
     | 
    
         
             
                    end
         
     | 
| 
       1036 
1043 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1037 
1044 
     | 
    
         | 
| 
       1038 
     | 
    
         
            -
                  foo_entry =  
     | 
| 
      
 1045 
     | 
    
         
            +
                  foo_entry = @index.resolve("FOO", ["Namespace"])&.first #: as !nil
         
     | 
| 
       1039 
1046 
     | 
    
         
             
                  assert_equal(2, foo_entry.location.start_line)
         
     | 
| 
       1040 
1047 
     | 
    
         
             
                  assert_instance_of(Entry::ConstantAlias, foo_entry)
         
     | 
| 
       1041 
1048 
     | 
    
         | 
| 
       1042 
     | 
    
         
            -
                  bar_entry =  
     | 
| 
      
 1049 
     | 
    
         
            +
                  bar_entry = @index.resolve("BAR", ["Namespace"])&.first #: as !nil
         
     | 
| 
       1043 
1050 
     | 
    
         
             
                  assert_equal(3, bar_entry.location.start_line)
         
     | 
| 
       1044 
1051 
     | 
    
         
             
                  assert_instance_of(Entry::ConstantAlias, bar_entry)
         
     | 
| 
       1045 
1052 
     | 
    
         | 
| 
       1046 
     | 
    
         
            -
                  baz_entry =  
     | 
| 
      
 1053 
     | 
    
         
            +
                  baz_entry = @index.resolve("BAZ", ["Namespace"])&.first #: as !nil
         
     | 
| 
       1047 
1054 
     | 
    
         
             
                  assert_equal(4, baz_entry.location.start_line)
         
     | 
| 
       1048 
1055 
     | 
    
         
             
                  assert_instance_of(Entry::ConstantAlias, baz_entry)
         
     | 
| 
       1049 
1056 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1065,7 +1072,7 @@ module RubyIndexer 
     | 
|
| 
       1065 
1072 
     | 
    
         
             
                    end
         
     | 
| 
       1066 
1073 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1067 
1074 
     | 
    
         | 
| 
       1068 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1075 
     | 
    
         
            +
                  entry = @index.resolve("Other::ALIAS::CONST", ["Third"])&.first #: as !nil
         
     | 
| 
       1069 
1076 
     | 
    
         
             
                  assert_kind_of(Entry::Constant, entry)
         
     | 
| 
       1070 
1077 
     | 
    
         
             
                  assert_equal("Original::Something::CONST", entry.name)
         
     | 
| 
       1071 
1078 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1080,7 +1087,7 @@ module RubyIndexer 
     | 
|
| 
       1080 
1087 
     | 
    
         
             
                    FOO::CONST
         
     | 
| 
       1081 
1088 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1082 
1089 
     | 
    
         | 
| 
       1083 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1090 
     | 
    
         
            +
                  entry = @index.resolve("FOO::CONST", [])&.first #: as !nil
         
     | 
| 
       1084 
1091 
     | 
    
         
             
                  assert_kind_of(Entry::Constant, entry)
         
     | 
| 
       1085 
1092 
     | 
    
         
             
                  assert_equal("Foo::CONST", entry.name)
         
     | 
| 
       1086 
1093 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1091,7 +1098,7 @@ module RubyIndexer 
     | 
|
| 
       1091 
1098 
     | 
    
         
             
                    end
         
     | 
| 
       1092 
1099 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1093 
1100 
     | 
    
         | 
| 
       1094 
     | 
    
         
            -
                  foo_entry =  
     | 
| 
      
 1101 
     | 
    
         
            +
                  foo_entry = @index.resolve("Foo::Bar", [])&.first #: as !nil
         
     | 
| 
       1095 
1102 
     | 
    
         
             
                  assert_equal(1, foo_entry.location.start_line)
         
     | 
| 
       1096 
1103 
     | 
    
         
             
                  assert_instance_of(Entry::Class, foo_entry)
         
     | 
| 
       1097 
1104 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1117,7 +1124,7 @@ module RubyIndexer 
     | 
|
| 
       1117 
1124 
     | 
    
         
             
                    end
         
     | 
| 
       1118 
1125 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1119 
1126 
     | 
    
         | 
| 
       1120 
     | 
    
         
            -
                  foo_entry =  
     | 
| 
      
 1127 
     | 
    
         
            +
                  foo_entry = @index.resolve("A::B::Foo::CONST", ["A", "B"])&.first #: as !nil
         
     | 
| 
       1121 
1128 
     | 
    
         
             
                  assert_equal(2, foo_entry.location.start_line)
         
     | 
| 
       1122 
1129 
     | 
    
         
             
                end
         
     | 
| 
       1123 
1130 
     | 
    
         | 
| 
         @@ -1135,7 +1142,7 @@ module RubyIndexer 
     | 
|
| 
       1135 
1142 
     | 
    
         
             
                    end
         
     | 
| 
       1136 
1143 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1137 
1144 
     | 
    
         | 
| 
       1138 
     | 
    
         
            -
                  foo_entry =  
     | 
| 
      
 1145 
     | 
    
         
            +
                  foo_entry = @index.resolve("Entry::CONST", ["Namespace", "Index"])&.first #: as !nil
         
     | 
| 
       1139 
1146 
     | 
    
         
             
                  assert_equal(3, foo_entry.location.start_line)
         
     | 
| 
       1140 
1147 
     | 
    
         
             
                end
         
     | 
| 
       1141 
1148 
     | 
    
         | 
| 
         @@ -1154,7 +1161,7 @@ module RubyIndexer 
     | 
|
| 
       1154 
1161 
     | 
    
         
             
                    end
         
     | 
| 
       1155 
1162 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1156 
1163 
     | 
    
         | 
| 
       1157 
     | 
    
         
            -
                  foo_entry =  
     | 
| 
      
 1164 
     | 
    
         
            +
                  foo_entry = @index.resolve("CONST", ["Namespace", "Index"])&.first #: as !nil
         
     | 
| 
       1158 
1165 
     | 
    
         
             
                  assert_equal(6, foo_entry.location.start_line)
         
     | 
| 
       1159 
1166 
     | 
    
         
             
                end
         
     | 
| 
       1160 
1167 
     | 
    
         | 
| 
         @@ -1171,7 +1178,7 @@ module RubyIndexer 
     | 
|
| 
       1171 
1178 
     | 
    
         
             
                    end
         
     | 
| 
       1172 
1179 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1173 
1180 
     | 
    
         | 
| 
       1174 
     | 
    
         
            -
                  foo_entry =  
     | 
| 
      
 1181 
     | 
    
         
            +
                  foo_entry = @index.resolve("CONST", ["Namespace", "Index"])&.first #: as !nil
         
     | 
| 
       1175 
1182 
     | 
    
         
             
                  assert_equal(1, foo_entry.location.start_line)
         
     | 
| 
       1176 
1183 
     | 
    
         
             
                end
         
     | 
| 
       1177 
1184 
     | 
    
         | 
| 
         @@ -1190,9 +1197,9 @@ module RubyIndexer 
     | 
|
| 
       1190 
1197 
     | 
    
         
             
                    end
         
     | 
| 
       1191 
1198 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1192 
1199 
     | 
    
         | 
| 
       1193 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1200 
     | 
    
         
            +
                  entry = @index.instance_variable_completion_candidates("@", "Bar").first #: as !nil
         
     | 
| 
       1194 
1201 
     | 
    
         
             
                  assert_equal("@bar", entry.name)
         
     | 
| 
       1195 
     | 
    
         
            -
                  assert_equal("Bar",  
     | 
| 
      
 1202 
     | 
    
         
            +
                  assert_equal("Bar", entry.owner&.name)
         
     | 
| 
       1196 
1203 
     | 
    
         
             
                end
         
     | 
| 
       1197 
1204 
     | 
    
         | 
| 
       1198 
1205 
     | 
    
         
             
                def test_resolving_a_qualified_reference
         
     | 
| 
         @@ -1213,7 +1220,7 @@ module RubyIndexer 
     | 
|
| 
       1213 
1220 
     | 
    
         
             
                    end
         
     | 
| 
       1214 
1221 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1215 
1222 
     | 
    
         | 
| 
       1216 
     | 
    
         
            -
                  foo_entry =  
     | 
| 
      
 1223 
     | 
    
         
            +
                  foo_entry = @index.resolve("Third::CONST", ["Foo"])&.first #: as !nil
         
     | 
| 
       1217 
1224 
     | 
    
         
             
                  assert_equal(9, foo_entry.location.start_line)
         
     | 
| 
       1218 
1225 
     | 
    
         
             
                end
         
     | 
| 
       1219 
1226 
     | 
    
         | 
| 
         @@ -1226,9 +1233,9 @@ module RubyIndexer 
     | 
|
| 
       1226 
1233 
     | 
    
         
             
                    class Object; end
         
     | 
| 
       1227 
1234 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1228 
1235 
     | 
    
         | 
| 
       1229 
     | 
    
         
            -
                  entries = @index["Object"]
         
     | 
| 
      
 1236 
     | 
    
         
            +
                  entries = @index["Object"] #: as !nil
         
     | 
| 
       1230 
1237 
     | 
    
         
             
                  assert_equal(2, entries.length)
         
     | 
| 
       1231 
     | 
    
         
            -
                  reopened_entry = entries.last
         
     | 
| 
      
 1238 
     | 
    
         
            +
                  reopened_entry = entries.last #: as Entry::Class
         
     | 
| 
       1232 
1239 
     | 
    
         
             
                  assert_equal("::BasicObject", reopened_entry.parent_class)
         
     | 
| 
       1233 
1240 
     | 
    
         
             
                  assert_equal(["Object", "Kernel", "BasicObject"], @index.linearized_ancestors_of("Object"))
         
     | 
| 
       1234 
1241 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1238,9 +1245,9 @@ module RubyIndexer 
     | 
|
| 
       1238 
1245 
     | 
    
         
             
                    class BasicObject; end
         
     | 
| 
       1239 
1246 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1240 
1247 
     | 
    
         | 
| 
       1241 
     | 
    
         
            -
                  entries = @index["BasicObject"]
         
     | 
| 
      
 1248 
     | 
    
         
            +
                  entries = @index["BasicObject"] #: as !nil
         
     | 
| 
       1242 
1249 
     | 
    
         
             
                  assert_equal(2, entries.length)
         
     | 
| 
       1243 
     | 
    
         
            -
                  reopened_entry = entries.last
         
     | 
| 
      
 1250 
     | 
    
         
            +
                  reopened_entry = entries.last #: as Entry::Class
         
     | 
| 
       1244 
1251 
     | 
    
         
             
                  assert_nil(reopened_entry.parent_class)
         
     | 
| 
       1245 
1252 
     | 
    
         
             
                  assert_equal(["BasicObject"], @index.linearized_ancestors_of("BasicObject"))
         
     | 
| 
       1246 
1253 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1318,10 +1325,9 @@ module RubyIndexer 
     | 
|
| 
       1318 
1325 
     | 
    
         
             
                    end
         
     | 
| 
       1319 
1326 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1320 
1327 
     | 
    
         | 
| 
       1321 
     | 
    
         
            -
                  entry = @index.resolve_method("found_me!", "Foo::Bar::<Class:Bar>::Baz::<Class:Baz>")&.first
         
     | 
| 
      
 1328 
     | 
    
         
            +
                  entry = @index.resolve_method("found_me!", "Foo::Bar::<Class:Bar>::Baz::<Class:Baz>")&.first #: as !nil
         
     | 
| 
       1322 
1329 
     | 
    
         
             
                  refute_nil(entry)
         
     | 
| 
       1323 
     | 
    
         
            -
             
     | 
| 
       1324 
     | 
    
         
            -
                  assert_equal("found_me!", T.must(entry).name)
         
     | 
| 
      
 1330 
     | 
    
         
            +
                  assert_equal("found_me!", entry.name)
         
     | 
| 
       1325 
1331 
     | 
    
         
             
                end
         
     | 
| 
       1326 
1332 
     | 
    
         | 
| 
       1327 
1333 
     | 
    
         
             
                def test_resolving_constants_in_singleton_contexts
         
     | 
| 
         @@ -1344,9 +1350,9 @@ module RubyIndexer 
     | 
|
| 
       1344 
1350 
     | 
    
         
             
                    end
         
     | 
| 
       1345 
1351 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1346 
1352 
     | 
    
         | 
| 
       1347 
     | 
    
         
            -
                  entry = @index.resolve("CONST", ["Foo", "Bar", "<Class:Bar>", "Baz", "<Class:Baz>"])&.first
         
     | 
| 
      
 1353 
     | 
    
         
            +
                  entry = @index.resolve("CONST", ["Foo", "Bar", "<Class:Bar>", "Baz", "<Class:Baz>"])&.first #: as !nil
         
     | 
| 
       1348 
1354 
     | 
    
         
             
                  refute_nil(entry)
         
     | 
| 
       1349 
     | 
    
         
            -
                  assert_equal(9,  
     | 
| 
      
 1355 
     | 
    
         
            +
                  assert_equal(9, entry.location.start_line)
         
     | 
| 
       1350 
1356 
     | 
    
         
             
                end
         
     | 
| 
       1351 
1357 
     | 
    
         | 
| 
       1352 
1358 
     | 
    
         
             
                def test_resolving_instance_variables_in_singleton_contexts
         
     | 
| 
         @@ -1366,17 +1372,17 @@ module RubyIndexer 
     | 
|
| 
       1366 
1372 
     | 
    
         
             
                    end
         
     | 
| 
       1367 
1373 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1368 
1374 
     | 
    
         | 
| 
       1369 
     | 
    
         
            -
                  entry = @index.resolve_instance_variable("@a", "Foo::Bar::<Class:Bar>")&.first
         
     | 
| 
      
 1375 
     | 
    
         
            +
                  entry = @index.resolve_instance_variable("@a", "Foo::Bar::<Class:Bar>")&.first #: as !nil
         
     | 
| 
       1370 
1376 
     | 
    
         
             
                  refute_nil(entry)
         
     | 
| 
       1371 
     | 
    
         
            -
                  assert_equal("@a",  
     | 
| 
      
 1377 
     | 
    
         
            +
                  assert_equal("@a", entry.name)
         
     | 
| 
       1372 
1378 
     | 
    
         | 
| 
       1373 
     | 
    
         
            -
                  entry = @index.resolve_instance_variable("@b", "Foo::Bar::<Class:Bar>")&.first
         
     | 
| 
      
 1379 
     | 
    
         
            +
                  entry = @index.resolve_instance_variable("@b", "Foo::Bar::<Class:Bar>")&.first #: as !nil
         
     | 
| 
       1374 
1380 
     | 
    
         
             
                  refute_nil(entry)
         
     | 
| 
       1375 
     | 
    
         
            -
                  assert_equal("@b",  
     | 
| 
      
 1381 
     | 
    
         
            +
                  assert_equal("@b", entry.name)
         
     | 
| 
       1376 
1382 
     | 
    
         | 
| 
       1377 
     | 
    
         
            -
                  entry = @index.resolve_instance_variable("@c", "Foo::Bar::<Class:Bar>::<Class:<Class:Bar>>")&.first
         
     | 
| 
      
 1383 
     | 
    
         
            +
                  entry = @index.resolve_instance_variable("@c", "Foo::Bar::<Class:Bar>::<Class:<Class:Bar>>")&.first #: as !nil
         
     | 
| 
       1378 
1384 
     | 
    
         
             
                  refute_nil(entry)
         
     | 
| 
       1379 
     | 
    
         
            -
                  assert_equal("@c",  
     | 
| 
      
 1385 
     | 
    
         
            +
                  assert_equal("@c", entry.name)
         
     | 
| 
       1380 
1386 
     | 
    
         
             
                end
         
     | 
| 
       1381 
1387 
     | 
    
         | 
| 
       1382 
1388 
     | 
    
         
             
                def test_instance_variable_completion_in_singleton_contexts
         
     | 
| 
         @@ -1422,7 +1428,7 @@ module RubyIndexer 
     | 
|
| 
       1422 
1428 
     | 
    
         | 
| 
       1423 
1429 
     | 
    
         
             
                  results = @index.fuzzy_search("Zwq")
         
     | 
| 
       1424 
1430 
     | 
    
         
             
                  assert_equal(1, results.length)
         
     | 
| 
       1425 
     | 
    
         
            -
                  assert_equal("Zwq", results.first 
     | 
| 
      
 1431 
     | 
    
         
            +
                  assert_equal("Zwq", results.first&.name)
         
     | 
| 
       1426 
1432 
     | 
    
         
             
                end
         
     | 
| 
       1427 
1433 
     | 
    
         | 
| 
       1428 
1434 
     | 
    
         
             
                def test_resolving_method_aliases
         
     | 
| 
         @@ -1444,39 +1450,39 @@ module RubyIndexer 
     | 
|
| 
       1444 
1450 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1445 
1451 
     | 
    
         | 
| 
       1446 
1452 
     | 
    
         
             
                  # baz
         
     | 
| 
       1447 
     | 
    
         
            -
                  methods = @index.resolve_method("baz", "Bar")
         
     | 
| 
      
 1453 
     | 
    
         
            +
                  methods = @index.resolve_method("baz", "Bar") #: as !nil
         
     | 
| 
       1448 
1454 
     | 
    
         
             
                  refute_nil(methods)
         
     | 
| 
       1449 
1455 
     | 
    
         | 
| 
       1450 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1456 
     | 
    
         
            +
                  entry = methods.first #: as Entry::MethodAlias
         
     | 
| 
       1451 
1457 
     | 
    
         
             
                  assert_kind_of(Entry::MethodAlias, entry)
         
     | 
| 
       1452 
1458 
     | 
    
         
             
                  assert_equal("bar", entry.target.name)
         
     | 
| 
       1453 
     | 
    
         
            -
                  assert_equal("Foo",  
     | 
| 
      
 1459 
     | 
    
         
            +
                  assert_equal("Foo", entry.target.owner&.name)
         
     | 
| 
       1454 
1460 
     | 
    
         | 
| 
       1455 
1461 
     | 
    
         
             
                  # qux
         
     | 
| 
       1456 
     | 
    
         
            -
                  methods = @index.resolve_method("qux", "Bar")
         
     | 
| 
      
 1462 
     | 
    
         
            +
                  methods = @index.resolve_method("qux", "Bar") #: as !nil
         
     | 
| 
       1457 
1463 
     | 
    
         
             
                  refute_nil(methods)
         
     | 
| 
       1458 
1464 
     | 
    
         | 
| 
       1459 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1465 
     | 
    
         
            +
                  entry = methods.first #: as Entry::MethodAlias
         
     | 
| 
       1460 
1466 
     | 
    
         
             
                  assert_kind_of(Entry::MethodAlias, entry)
         
     | 
| 
       1461 
1467 
     | 
    
         
             
                  assert_equal("hello", entry.target.name)
         
     | 
| 
       1462 
     | 
    
         
            -
                  assert_equal("Bar",  
     | 
| 
      
 1468 
     | 
    
         
            +
                  assert_equal("Bar", entry.target.owner&.name)
         
     | 
| 
       1463 
1469 
     | 
    
         | 
| 
       1464 
1470 
     | 
    
         
             
                  # double
         
     | 
| 
       1465 
     | 
    
         
            -
                  methods = @index.resolve_method("double", "Bar")
         
     | 
| 
      
 1471 
     | 
    
         
            +
                  methods = @index.resolve_method("double", "Bar") #: as !nil
         
     | 
| 
       1466 
1472 
     | 
    
         
             
                  refute_nil(methods)
         
     | 
| 
       1467 
1473 
     | 
    
         | 
| 
       1468 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1474 
     | 
    
         
            +
                  entry = methods.first #: as Entry::MethodAlias
         
     | 
| 
       1469 
1475 
     | 
    
         
             
                  assert_kind_of(Entry::MethodAlias, entry)
         
     | 
| 
       1470 
1476 
     | 
    
         | 
| 
       1471 
     | 
    
         
            -
                  target = entry.target
         
     | 
| 
      
 1477 
     | 
    
         
            +
                  target = entry.target #: as Entry::MethodAlias
         
     | 
| 
       1472 
1478 
     | 
    
         
             
                  assert_equal("double_alias", target.name)
         
     | 
| 
       1473 
1479 
     | 
    
         
             
                  assert_kind_of(Entry::MethodAlias, target)
         
     | 
| 
       1474 
     | 
    
         
            -
                  assert_equal("Foo",  
     | 
| 
      
 1480 
     | 
    
         
            +
                  assert_equal("Foo", target.owner&.name)
         
     | 
| 
       1475 
1481 
     | 
    
         | 
| 
       1476 
1482 
     | 
    
         
             
                  final_target = target.target
         
     | 
| 
       1477 
1483 
     | 
    
         
             
                  assert_equal("bar", final_target.name)
         
     | 
| 
       1478 
1484 
     | 
    
         
             
                  assert_kind_of(Entry::Method, final_target)
         
     | 
| 
       1479 
     | 
    
         
            -
                  assert_equal("Foo",  
     | 
| 
      
 1485 
     | 
    
         
            +
                  assert_equal("Foo", final_target.owner&.name)
         
     | 
| 
       1480 
1486 
     | 
    
         
             
                end
         
     | 
| 
       1481 
1487 
     | 
    
         | 
| 
       1482 
1488 
     | 
    
         
             
                def test_resolving_circular_method_aliases
         
     | 
| 
         @@ -1490,7 +1496,7 @@ module RubyIndexer 
     | 
|
| 
       1490 
1496 
     | 
    
         
             
                  methods = @index.resolve_method("bar", "Foo")
         
     | 
| 
       1491 
1497 
     | 
    
         
             
                  assert_nil(methods)
         
     | 
| 
       1492 
1498 
     | 
    
         | 
| 
       1493 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1499 
     | 
    
         
            +
                  entry = @index["bar"]&.first
         
     | 
| 
       1494 
1500 
     | 
    
         
             
                  assert_kind_of(Entry::UnresolvedMethodAlias, entry)
         
     | 
| 
       1495 
1501 
     | 
    
         
             
                end
         
     | 
| 
       1496 
1502 
     | 
    
         | 
| 
         @@ -1505,7 +1511,7 @@ module RubyIndexer 
     | 
|
| 
       1505 
1511 
     | 
    
         
             
                  methods = @index.resolve_method("bar", "Foo")
         
     | 
| 
       1506 
1512 
     | 
    
         
             
                  assert_nil(methods)
         
     | 
| 
       1507 
1513 
     | 
    
         | 
| 
       1508 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1514 
     | 
    
         
            +
                  entry = @index["bar"]&.first
         
     | 
| 
       1509 
1515 
     | 
    
         
             
                  assert_kind_of(Entry::UnresolvedMethodAlias, entry)
         
     | 
| 
       1510 
1516 
     | 
    
         
             
                end
         
     | 
| 
       1511 
1517 
     | 
    
         | 
| 
         @@ -1521,18 +1527,18 @@ module RubyIndexer 
     | 
|
| 
       1521 
1527 
     | 
    
         
             
                    end
         
     | 
| 
       1522 
1528 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1523 
1529 
     | 
    
         | 
| 
       1524 
     | 
    
         
            -
                  methods = @index.resolve_method("decorated_name", "Foo")
         
     | 
| 
      
 1530 
     | 
    
         
            +
                  methods = @index.resolve_method("decorated_name", "Foo") #: as !nil
         
     | 
| 
       1525 
1531 
     | 
    
         
             
                  refute_nil(methods)
         
     | 
| 
       1526 
1532 
     | 
    
         | 
| 
       1527 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1533 
     | 
    
         
            +
                  entry = methods.first #: as Entry::MethodAlias
         
     | 
| 
       1528 
1534 
     | 
    
         
             
                  assert_kind_of(Entry::MethodAlias, entry)
         
     | 
| 
       1529 
1535 
     | 
    
         | 
| 
       1530 
1536 
     | 
    
         
             
                  target = entry.target
         
     | 
| 
       1531 
1537 
     | 
    
         
             
                  assert_equal("name", target.name)
         
     | 
| 
       1532 
1538 
     | 
    
         
             
                  assert_kind_of(Entry::Accessor, target)
         
     | 
| 
       1533 
     | 
    
         
            -
                  assert_equal("Foo",  
     | 
| 
      
 1539 
     | 
    
         
            +
                  assert_equal("Foo", target.owner&.name)
         
     | 
| 
       1534 
1540 
     | 
    
         | 
| 
       1535 
     | 
    
         
            -
                  other_decorated_name =  
     | 
| 
      
 1541 
     | 
    
         
            +
                  other_decorated_name = @index["decorated_name"]&.find { |e| e.is_a?(Entry::UnresolvedMethodAlias) }
         
     | 
| 
       1536 
1542 
     | 
    
         
             
                  assert_kind_of(Entry::UnresolvedMethodAlias, other_decorated_name)
         
     | 
| 
       1537 
1543 
     | 
    
         
             
                end
         
     | 
| 
       1538 
1544 
     | 
    
         | 
| 
         @@ -1557,7 +1563,7 @@ module RubyIndexer 
     | 
|
| 
       1557 
1563 
     | 
    
         
             
                    end
         
     | 
| 
       1558 
1564 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1559 
1565 
     | 
    
         | 
| 
       1560 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1566 
     | 
    
         
            +
                  entry = @index.first_unqualified_const("Bar")&.first #: as !nil
         
     | 
| 
       1561 
1567 
     | 
    
         
             
                  assert_equal("Foo::Bar", entry.name)
         
     | 
| 
       1562 
1568 
     | 
    
         
             
                end
         
     | 
| 
       1563 
1569 
     | 
    
         | 
| 
         @@ -1574,7 +1580,7 @@ module RubyIndexer 
     | 
|
| 
       1574 
1580 
     | 
    
         
             
                    end
         
     | 
| 
       1575 
1581 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1576 
1582 
     | 
    
         | 
| 
       1577 
     | 
    
         
            -
                  entry =  
     | 
| 
      
 1583 
     | 
    
         
            +
                  entry = @index.first_unqualified_const("Type")&.first #: as !nil
         
     | 
| 
       1578 
1584 
     | 
    
         
             
                  assert_equal("Namespace::Type", entry.name)
         
     | 
| 
       1579 
1585 
     | 
    
         
             
                end
         
     | 
| 
       1580 
1586 
     | 
    
         | 
| 
         @@ -1591,7 +1597,7 @@ module RubyIndexer 
     | 
|
| 
       1591 
1597 
     | 
    
         | 
| 
       1592 
1598 
     | 
    
         
             
                  entries = @index.method_completion_candidates("bar", "Baz")
         
     | 
| 
       1593 
1599 
     | 
    
         
             
                  assert_equal(["bar"], entries.map(&:name))
         
     | 
| 
       1594 
     | 
    
         
            -
                  assert_equal("Baz",  
     | 
| 
      
 1600 
     | 
    
         
            +
                  assert_equal("Baz", entries.first&.owner&.name)
         
     | 
| 
       1595 
1601 
     | 
    
         
             
                end
         
     | 
| 
       1596 
1602 
     | 
    
         | 
| 
       1597 
1603 
     | 
    
         
             
                def test_completion_does_not_duplicate_methods_overridden_by_aliases
         
     | 
| 
         @@ -1607,7 +1613,7 @@ module RubyIndexer 
     | 
|
| 
       1607 
1613 
     | 
    
         | 
| 
       1608 
1614 
     | 
    
         
             
                  entries = @index.method_completion_candidates("bar", "Baz")
         
     | 
| 
       1609 
1615 
     | 
    
         
             
                  assert_equal(["bar"], entries.map(&:name))
         
     | 
| 
       1610 
     | 
    
         
            -
                  assert_equal("Baz",  
     | 
| 
      
 1616 
     | 
    
         
            +
                  assert_equal("Baz", entries.first&.owner&.name)
         
     | 
| 
       1611 
1617 
     | 
    
         
             
                end
         
     | 
| 
       1612 
1618 
     | 
    
         | 
| 
       1613 
1619 
     | 
    
         
             
                def test_decorated_parameters
         
     | 
| 
         @@ -1618,11 +1624,10 @@ module RubyIndexer 
     | 
|
| 
       1618 
1624 
     | 
    
         
             
                    end
         
     | 
| 
       1619 
1625 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1620 
1626 
     | 
    
         | 
| 
       1621 
     | 
    
         
            -
                  methods = @index.resolve_method("bar", "Foo")
         
     | 
| 
      
 1627 
     | 
    
         
            +
                  methods = @index.resolve_method("bar", "Foo") #: as !nil
         
     | 
| 
       1622 
1628 
     | 
    
         
             
                  refute_nil(methods)
         
     | 
| 
       1623 
1629 
     | 
    
         | 
| 
       1624 
     | 
    
         
            -
                  entry =  
     | 
| 
       1625 
     | 
    
         
            -
             
     | 
| 
      
 1630 
     | 
    
         
            +
                  entry = methods.first #: as Entry::Method
         
     | 
| 
       1626 
1631 
     | 
    
         
             
                  assert_equal("(a, b = <default>, c: <default>)", entry.decorated_parameters)
         
     | 
| 
       1627 
1632 
     | 
    
         
             
                end
         
     | 
| 
       1628 
1633 
     | 
    
         | 
| 
         @@ -1634,11 +1639,10 @@ module RubyIndexer 
     | 
|
| 
       1634 
1639 
     | 
    
         
             
                    end
         
     | 
| 
       1635 
1640 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1636 
1641 
     | 
    
         | 
| 
       1637 
     | 
    
         
            -
                  methods = @index.resolve_method("bar", "Foo")
         
     | 
| 
      
 1642 
     | 
    
         
            +
                  methods = @index.resolve_method("bar", "Foo") #: as !nil
         
     | 
| 
       1638 
1643 
     | 
    
         
             
                  refute_nil(methods)
         
     | 
| 
       1639 
1644 
     | 
    
         | 
| 
       1640 
     | 
    
         
            -
                  entry =  
     | 
| 
       1641 
     | 
    
         
            -
             
     | 
| 
      
 1645 
     | 
    
         
            +
                  entry = methods.first #: as Entry::Method
         
     | 
| 
       1642 
1646 
     | 
    
         
             
                  assert_equal("()", entry.decorated_parameters)
         
     | 
| 
       1643 
1647 
     | 
    
         
             
                end
         
     | 
| 
       1644 
1648 
     | 
    
         | 
| 
         @@ -1707,9 +1711,9 @@ module RubyIndexer 
     | 
|
| 
       1707 
1711 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1708 
1712 
     | 
    
         | 
| 
       1709 
1713 
     | 
    
         
             
                  ["bar", "baz"].product(["Foo", "Foo::<Class:Foo>"]).each do |method, receiver|
         
     | 
| 
       1710 
     | 
    
         
            -
                    entry = @index.resolve_method(method, receiver)&.first
         
     | 
| 
      
 1714 
     | 
    
         
            +
                    entry = @index.resolve_method(method, receiver)&.first #: as !nil
         
     | 
| 
       1711 
1715 
     | 
    
         
             
                    refute_nil(entry)
         
     | 
| 
       1712 
     | 
    
         
            -
                    assert_equal(method,  
     | 
| 
      
 1716 
     | 
    
         
            +
                    assert_equal(method, entry.name)
         
     | 
| 
       1713 
1717 
     | 
    
         
             
                  end
         
     | 
| 
       1714 
1718 
     | 
    
         | 
| 
       1715 
1719 
     | 
    
         
             
                  assert_equal(
         
     | 
| 
         @@ -1888,7 +1892,7 @@ module RubyIndexer 
     | 
|
| 
       1888 
1892 
     | 
    
         
             
                    end
         
     | 
| 
       1889 
1893 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1890 
1894 
     | 
    
         | 
| 
       1891 
     | 
    
         
            -
                  method = @index.resolve_method("==", "Foo") 
     | 
| 
      
 1895 
     | 
    
         
            +
                  method = @index.resolve_method("==", "Foo")&.first #: as Entry::Method
         
     | 
| 
       1892 
1896 
     | 
    
         
             
                  assert_kind_of(Entry::Method, method)
         
     | 
| 
       1893 
1897 
     | 
    
         
             
                  assert_equal("==", method.name)
         
     | 
| 
       1894 
1898 
     | 
    
         | 
| 
         @@ -1906,13 +1910,13 @@ module RubyIndexer 
     | 
|
| 
       1906 
1910 
     | 
    
         
             
                    end
         
     | 
| 
       1907 
1911 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1908 
1912 
     | 
    
         | 
| 
       1909 
     | 
    
         
            -
                  entries = @index.entries_for("file:///fake/path/foo.rb", Entry)
         
     | 
| 
      
 1913 
     | 
    
         
            +
                  entries = @index.entries_for("file:///fake/path/foo.rb", Entry) #: as !nil
         
     | 
| 
       1910 
1914 
     | 
    
         
             
                  assert_equal(["Foo", "Bar", "my_def", "Bar::<Class:Bar>", "my_singleton_def"], entries.map(&:name))
         
     | 
| 
       1911 
1915 
     | 
    
         | 
| 
       1912 
     | 
    
         
            -
                  entries = @index.entries_for("file:///fake/path/foo.rb", RubyIndexer::Entry::Namespace)
         
     | 
| 
      
 1916 
     | 
    
         
            +
                  entries = @index.entries_for("file:///fake/path/foo.rb", RubyIndexer::Entry::Namespace) #: as !nil
         
     | 
| 
       1913 
1917 
     | 
    
         
             
                  assert_equal(["Foo", "Bar", "Bar::<Class:Bar>"], entries.map(&:name))
         
     | 
| 
       1914 
1918 
     | 
    
         | 
| 
       1915 
     | 
    
         
            -
                  entries = @index.entries_for("file:///fake/path/foo.rb")
         
     | 
| 
      
 1919 
     | 
    
         
            +
                  entries = @index.entries_for("file:///fake/path/foo.rb") #: as !nil
         
     | 
| 
       1916 
1920 
     | 
    
         
             
                  assert_equal(["Foo", "Bar", "my_def", "Bar::<Class:Bar>", "my_singleton_def"], entries.map(&:name))
         
     | 
| 
       1917 
1921 
     | 
    
         
             
                end
         
     | 
| 
       1918 
1922 
     | 
    
         | 
| 
         @@ -1945,14 +1949,14 @@ module RubyIndexer 
     | 
|
| 
       1945 
1949 
     | 
    
         
             
                  result = @index.constant_completion_candidates("X", ["Namespace", "Baz"])
         
     | 
| 
       1946 
1950 
     | 
    
         | 
| 
       1947 
1951 
     | 
    
         
             
                  result.each do |entries|
         
     | 
| 
       1948 
     | 
    
         
            -
                    name = entries.first 
     | 
| 
      
 1952 
     | 
    
         
            +
                    name = entries.first&.name
         
     | 
| 
       1949 
1953 
     | 
    
         
             
                    assert(entries.all? { |e| e.name == name })
         
     | 
| 
       1950 
1954 
     | 
    
         
             
                  end
         
     | 
| 
       1951 
1955 
     | 
    
         | 
| 
       1952 
     | 
    
         
            -
                  assert_equal(["Namespace::XQRK", "Bar::XQRK", "XQRK"], result.map { |entries| entries.first 
     | 
| 
      
 1956 
     | 
    
         
            +
                  assert_equal(["Namespace::XQRK", "Bar::XQRK", "XQRK"], result.map { |entries| entries.first&.name })
         
     | 
| 
       1953 
1957 
     | 
    
         | 
| 
       1954 
1958 
     | 
    
         
             
                  result = @index.constant_completion_candidates("::X", ["Namespace", "Baz"])
         
     | 
| 
       1955 
     | 
    
         
            -
                  assert_equal(["XQRK"], result.map { |entries| entries.first 
     | 
| 
      
 1959 
     | 
    
         
            +
                  assert_equal(["XQRK"], result.map { |entries| entries.first&.name })
         
     | 
| 
       1956 
1960 
     | 
    
         
             
                end
         
     | 
| 
       1957 
1961 
     | 
    
         | 
| 
       1958 
1962 
     | 
    
         
             
                def test_constant_completion_candidates_for_empty_name
         
     | 
| 
         @@ -1967,7 +1971,7 @@ module RubyIndexer 
     | 
|
| 
       1967 
1971 
     | 
    
         
             
                  RUBY
         
     | 
| 
       1968 
1972 
     | 
    
         | 
| 
       1969 
1973 
     | 
    
         
             
                  result = @index.constant_completion_candidates("Baz::", [])
         
     | 
| 
       1970 
     | 
    
         
            -
                  assert_includes(result.map { |entries| entries.first 
     | 
| 
      
 1974 
     | 
    
         
            +
                  assert_includes(result.map { |entries| entries.first&.name }, "Foo::Bar")
         
     | 
| 
       1971 
1975 
     | 
    
         
             
                end
         
     | 
| 
       1972 
1976 
     | 
    
         | 
| 
       1973 
1977 
     | 
    
         
             
                def test_follow_alias_namespace
         
     | 
| 
         @@ -2025,7 +2029,7 @@ module RubyIndexer 
     | 
|
| 
       2025 
2029 
     | 
    
         
             
                    end
         
     | 
| 
       2026 
2030 
     | 
    
         
             
                  RUBY
         
     | 
| 
       2027 
2031 
     | 
    
         | 
| 
       2028 
     | 
    
         
            -
                  entry = @index.resolve("Namespace::Foo::CONST", ["First", "Namespace", "Foo", "InnerNamespace"])&.first
         
     | 
| 
      
 2032 
     | 
    
         
            +
                  entry = @index.resolve("Namespace::Foo::CONST", ["First", "Namespace", "Foo", "InnerNamespace"])&.first #: as !nil
         
     | 
| 
       2029 
2033 
     | 
    
         
             
                  assert_equal("Parent::CONST", entry.name)
         
     | 
| 
       2030 
2034 
     | 
    
         
             
                  assert_instance_of(Entry::Constant, entry)
         
     | 
| 
       2031 
2035 
     | 
    
         
             
                end
         
     | 
| 
         @@ -2093,7 +2097,7 @@ module RubyIndexer 
     | 
|
| 
       2093 
2097 
     | 
    
         
             
                    end
         
     | 
| 
       2094 
2098 
     | 
    
         
             
                  RUBY
         
     | 
| 
       2095 
2099 
     | 
    
         | 
| 
       2096 
     | 
    
         
            -
                  entry = @index["Foo"]&.first
         
     | 
| 
      
 2100 
     | 
    
         
            +
                  entry = @index["Foo"]&.first #: as !nil
         
     | 
| 
       2097 
2101 
     | 
    
         
             
                  refute_nil(entry, "Expected indexer to be able to handle unsaved URIs")
         
     | 
| 
       2098 
2102 
     | 
    
         
             
                  assert_equal("untitled:Untitled-1", entry.uri.to_s)
         
     | 
| 
       2099 
2103 
     | 
    
         
             
                  assert_equal("Untitled-1", entry.file_name)
         
     | 
| 
         @@ -2105,7 +2109,7 @@ module RubyIndexer 
     | 
|
| 
       2105 
2109 
     | 
    
         
             
                    end
         
     | 
| 
       2106 
2110 
     | 
    
         
             
                  RUBY
         
     | 
| 
       2107 
2111 
     | 
    
         | 
| 
       2108 
     | 
    
         
            -
                  entry = @index["Foo"]&.first
         
     | 
| 
      
 2112 
     | 
    
         
            +
                  entry = @index["Foo"]&.first #: as !nil
         
     | 
| 
       2109 
2113 
     | 
    
         
             
                  refute_nil(entry, "Expected indexer to be able to handle unsaved URIs")
         
     | 
| 
       2110 
2114 
     | 
    
         
             
                  assert_equal("I added this comment!", entry.comments)
         
     | 
| 
       2111 
2115 
     | 
    
         
             
                end
         
     | 
| 
         @@ -2124,13 +2128,13 @@ module RubyIndexer 
     | 
|
| 
       2124 
2128 
     | 
    
         
             
                    end
         
     | 
| 
       2125 
2129 
     | 
    
         
             
                  RUBY
         
     | 
| 
       2126 
2130 
     | 
    
         | 
| 
       2127 
     | 
    
         
            -
                   
     | 
| 
      
 2131 
     | 
    
         
            +
                  adf, abc = @index.instance_variable_completion_candidates("@", "Child::<Class:Child>")
         
     | 
| 
       2128 
2132 
     | 
    
         | 
| 
       2129 
2133 
     | 
    
         
             
                  refute_nil(abc)
         
     | 
| 
       2130 
2134 
     | 
    
         
             
                  refute_nil(adf)
         
     | 
| 
       2131 
2135 
     | 
    
         | 
| 
       2132 
     | 
    
         
            -
                  assert_equal("@@abc", abc 
     | 
| 
       2133 
     | 
    
         
            -
                  assert_equal("@@adf", adf 
     | 
| 
      
 2136 
     | 
    
         
            +
                  assert_equal("@@abc", abc&.name)
         
     | 
| 
      
 2137 
     | 
    
         
            +
                  assert_equal("@@adf", adf&.name)
         
     | 
| 
       2134 
2138 
     | 
    
         
             
                end
         
     | 
| 
       2135 
2139 
     | 
    
         | 
| 
       2136 
2140 
     | 
    
         
             
                def test_class_variable_completion_from_singleton_context
         
     | 
| 
         @@ -2156,7 +2160,7 @@ module RubyIndexer 
     | 
|
| 
       2156 
2160 
     | 
    
         
             
                    end
         
     | 
| 
       2157 
2161 
     | 
    
         
             
                  RUBY
         
     | 
| 
       2158 
2162 
     | 
    
         | 
| 
       2159 
     | 
    
         
            -
                  candidates = @index.resolve_class_variable("@@hello", "Foo::<Class:Foo>")
         
     | 
| 
      
 2163 
     | 
    
         
            +
                  candidates = @index.resolve_class_variable("@@hello", "Foo::<Class:Foo>") #: as !nil
         
     | 
| 
       2160 
2164 
     | 
    
         
             
                  refute_empty(candidates)
         
     | 
| 
       2161 
2165 
     | 
    
         | 
| 
       2162 
2166 
     | 
    
         
             
                  assert_equal("@@hello", candidates.first&.name)
         
     |