Skip to content

Commit 7e33cee

Browse files
committed
Avoid purging non-loaded modules
1 parent f1ad481 commit 7e33cee

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

lib/mix/lib/mix/compilers/elixir.ex

+11-7
Original file line numberDiff line numberDiff line change
@@ -711,16 +711,22 @@ defmodule Mix.Compilers.Elixir do
711711

712712
defp remove_and_purge(beam, module) do
713713
_ = File.rm(beam)
714-
:code.purge(module)
715-
:code.delete(module)
714+
715+
if Code.loaded?(module) do
716+
:code.purge(module)
717+
:code.delete(module)
718+
end
716719
end
717720

718721
defp purge_modules_in_path(path) do
719722
with {:ok, beams} <- File.ls(path) do
720723
Enum.each(beams, fn beam ->
721724
module = beam |> Path.rootname() |> String.to_atom()
722-
:code.purge(module)
723-
:code.delete(module)
725+
726+
if Code.loaded?(module) do
727+
:code.purge(module)
728+
:code.delete(module)
729+
end
724730
end)
725731
end
726732
end
@@ -898,9 +904,7 @@ defmodule Mix.Compilers.Elixir do
898904
end
899905

900906
for {module, _} <- data do
901-
File.rm(beam_path(compile_path, module))
902-
:code.purge(module)
903-
:code.delete(module)
907+
remove_and_purge(beam_path(compile_path, module), module)
904908
end
905909
rescue
906910
_ ->

0 commit comments

Comments
 (0)