Skip to content

Commit c4a9e73

Browse files
szajbusaxelson
authored andcommitted
Stop tracking removed files and modules
1 parent 6fb7164 commit c4a9e73

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

apps/language_server/lib/language_server/dialyzer.ex

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,14 +374,16 @@ defmodule ElixirLS.LanguageServer.Dialyzer do
374374

375375
{active_plt, new_mod_deps, raw_warnings} = Analyzer.analyze(active_plt, files_to_analyze)
376376

377-
mod_deps = Map.merge(mod_deps, new_mod_deps)
377+
mod_deps = update_mod_deps(mod_deps, new_mod_deps, removed_modules)
378378
warnings = add_warnings(warnings, raw_warnings)
379379

380380
md5 =
381381
for {file, {_, hash}} <- file_changes, into: md5 do
382382
{file, hash}
383383
end
384384

385+
md5 = remove_files(md5, removed_files)
386+
385387
{active_plt, mod_deps, md5, warnings}
386388
end)
387389

@@ -393,6 +395,18 @@ defmodule ElixirLS.LanguageServer.Dialyzer do
393395
analysis_finished(parent, :ok, active_plt, mod_deps, md5, warnings, timestamp, build_ref)
394396
end
395397

398+
defp update_mod_deps(mod_deps, new_mod_deps, removed_modules) do
399+
mod_deps
400+
|> Map.merge(new_mod_deps)
401+
|> Map.drop(removed_modules)
402+
|> Enum.map(fn {mod, deps} -> {mod, deps -- removed_modules} end)
403+
|> Enum.into(%{})
404+
end
405+
406+
defp remove_files(md5, removed_files) do
407+
Map.drop(md5, removed_files)
408+
end
409+
396410
defp add_warnings(warnings, raw_warnings) do
397411
new_warnings =
398412
for {_, {file, line, m_or_mfa}, _} = warning <- raw_warnings,

0 commit comments

Comments
 (0)