@@ -212,9 +212,7 @@ defmodule Mix.Compilers.Elixir do
212212 # If I changed in disk or have a compile time dependency
213213 # on something stale, I need to be recompiled.
214214 Map . has_key? ( removed , source ) or Enum . any? ( compile , & Map . has_key? ( stale , & 1 ) ) ->
215- _ = File . rm ( beam )
216- _ = :code . purge ( module )
217- _ = :code . delete ( module )
215+ remove_and_purge ( beam , module )
218216 { rest , Map . put ( stale , module , true ) , Map . put ( removed , source , true ) }
219217
220218 # If I have a runtime time dependency on something stale,
@@ -238,6 +236,12 @@ defmodule Mix.Compilers.Elixir do
238236 into: % { }
239237 end
240238
239+ defp remove_and_purge ( beam , module ) do
240+ _ = File . rm ( beam )
241+ _ = :code . purge ( module )
242+ _ = :code . delete ( module )
243+ end
244+
241245 ## Manifest handling
242246
243247 defp read_manifest ( manifest ) do
@@ -255,7 +259,9 @@ defmodule Mix.Compilers.Elixir do
255259 { :ok , [ @ manifest_vsn | data ] } ->
256260 parse_manifest ( data , keep_paths , state )
257261 { :ok , [ :v2 | data ] } ->
258- for { beam , _ , _ , _ , _ , _ , _ , _ } <- data , do: File . rm ( beam )
262+ for { beam , module , _ , _ , _ , _ , _ , _ } <- data do
263+ remove_and_purge ( beam , module )
264+ end
259265 state
260266 _ ->
261267 state
0 commit comments