Avoid purging non-loaded modules
This commit is contained in:
@@ -711,16 +711,22 @@ defmodule Mix.Compilers.Elixir do
|
||||
|
||||
defp remove_and_purge(beam, module) do
|
||||
_ = File.rm(beam)
|
||||
:code.purge(module)
|
||||
:code.delete(module)
|
||||
|
||||
if Code.loaded?(module) do
|
||||
:code.purge(module)
|
||||
:code.delete(module)
|
||||
end
|
||||
end
|
||||
|
||||
defp purge_modules_in_path(path) do
|
||||
with {:ok, beams} <- File.ls(path) do
|
||||
Enum.each(beams, fn beam ->
|
||||
module = beam |> Path.rootname() |> String.to_atom()
|
||||
:code.purge(module)
|
||||
:code.delete(module)
|
||||
|
||||
if Code.loaded?(module) do
|
||||
:code.purge(module)
|
||||
:code.delete(module)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
@@ -898,9 +904,7 @@ defmodule Mix.Compilers.Elixir do
|
||||
end
|
||||
|
||||
for {module, _} <- data do
|
||||
File.rm(beam_path(compile_path, module))
|
||||
:code.purge(module)
|
||||
:code.delete(module)
|
||||
remove_and_purge(beam_path(compile_path, module), module)
|
||||
end
|
||||
rescue
|
||||
_ ->
|
||||
|
||||
Reference in New Issue
Block a user