File tree Expand file tree Collapse file tree 3 files changed +19
-4
lines changed
apps/language_server/lib/language_server Expand file tree Collapse file tree 3 files changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -359,7 +359,7 @@ defmodule ElixirLS.LanguageServer.Dialyzer do
359359
360360 files_to_analyze =
361361 for module <- modules_to_analyze do
362- temp_modules [ module ] || :code . which ( module )
362+ temp_modules [ module ] || Utils . get_beam_file ( module )
363363 end
364364
365365 # Clear warnings for files that changed or need to be re-analyzed
Original file line number Diff line number Diff line change 11defmodule ElixirLS.LanguageServer.Dialyzer.Manifest do
2- alias ElixirLS.LanguageServer . { Dialyzer , JsonRpc }
2+ alias ElixirLS.LanguageServer . { Dialyzer , Dialyzer.Utils , JsonRpc }
33 import Record
44 import Dialyzer.Utils
55
@@ -125,7 +125,7 @@ defmodule ElixirLS.LanguageServer.Dialyzer.Manifest do
125125 |> Path . wildcard ( )
126126 |> Enum . map ( & pathname_to_module / 1 )
127127 |> expand_references ( )
128- |> Enum . map ( & :code . which / 1 )
128+ |> Enum . map ( & Utils . get_beam_file / 1 )
129129 |> Enum . filter ( & is_list / 1 )
130130
131131 File . mkdir_p! ( Path . dirname ( elixir_plt_path ( ) ) )
Original file line number Diff line number Diff line change 11defmodule ElixirLS.LanguageServer.Dialyzer.Utils do
22 @ epoch_gregorian_seconds 62_167_219_200
33
4+ @ spec dialyzable? ( module ( ) ) :: boolean ( )
45 def dialyzable? ( module ) do
5- file = :code . which ( module )
6+ file = get_beam_file ( module )
67 is_list ( file ) and match? ( { :ok , _ } , :dialyzer_utils . get_core_from_beam ( file ) )
78 end
89
10+ @ spec get_beam_file ( module ( ) ) :: charlist ( ) | :preloaded | :non_existing | :cover_compiled
11+ def get_beam_file ( module ) do
12+ case :code . which ( module ) do
13+ file when is_list ( file ) ->
14+ file
15+
16+ other ->
17+ case :code . get_object_code ( module ) do
18+ { _module , _binary , beam_filename } -> beam_filename
19+ :error -> other
20+ end
21+ end
22+ end
23+
924 def pathname_to_module ( path ) do
1025 String . to_atom ( Path . basename ( path , ".beam" ) )
1126 end
You can’t perform that action at this time.
0 commit comments