Skip to content

Commit a8badfc

Browse files
authored
fix(engine): don't crash when calling references on an atom (#396)
1 parent 71c33f1 commit a8badfc

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

apps/engine/lib/engine/code_intelligence/references.ex

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,14 @@ defmodule Engine.CodeIntelligence.References do
1313
require Logger
1414

1515
def references(%Analysis{} = analysis, %Position{} = position, include_definitions?) do
16-
with {:ok, resolved, _range} <- Entity.resolve(analysis, position) do
17-
resolved
18-
|> maybe_rewrite_resolution(analysis, position)
19-
|> find_references(analysis, position, include_definitions?)
16+
case Entity.resolve(analysis, position) do
17+
{:ok, resolved, _range} ->
18+
resolved
19+
|> maybe_rewrite_resolution(analysis, position)
20+
|> find_references(analysis, position, include_definitions?)
21+
22+
{:error, _} ->
23+
[]
2024
end
2125
end
2226

apps/engine/test/engine/code_intelligence/references_test.exs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,22 @@ defmodule Engine.CodeIntelligence.ReferencesTest do
311311
end
312312
end
313313

314+
describe "unsupported entities" do
315+
test "returns an empty list for plain atoms", %{project: project} do
316+
query = ~S[
317+
defmodule MyModule do
318+
def my_fun do
319+
:stub_create_consent|
320+
end
321+
end
322+
]
323+
324+
{_, code} = pop_cursor(query)
325+
326+
assert [] == references(project, query, code)
327+
end
328+
end
329+
314330
defp references(project, referenced, code, include_definitions? \\ false) do
315331
with {position, referenced} <- pop_cursor(referenced, as: :document),
316332
{:ok, document} <- project_module(project, code),

0 commit comments

Comments
 (0)