@@ -212,9 +212,7 @@ defmodule Mix.Compilers.Elixir do
212
212
# If I changed in disk or have a compile time dependency
213
213
# on something stale, I need to be recompiled.
214
214
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 )
218
216
{ rest , Map . put ( stale , module , true ) , Map . put ( removed , source , true ) }
219
217
220
218
# If I have a runtime time dependency on something stale,
@@ -238,6 +236,12 @@ defmodule Mix.Compilers.Elixir do
238
236
into: % { }
239
237
end
240
238
239
+ defp remove_and_purge ( beam , module ) do
240
+ _ = File . rm ( beam )
241
+ _ = :code . purge ( module )
242
+ _ = :code . delete ( module )
243
+ end
244
+
241
245
## Manifest handling
242
246
243
247
defp read_manifest ( manifest ) do
@@ -255,7 +259,9 @@ defmodule Mix.Compilers.Elixir do
255
259
{ :ok , [ @ manifest_vsn | data ] } ->
256
260
parse_manifest ( data , keep_paths , state )
257
261
{ :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
259
265
state
260
266
_ ->
261
267
state
0 commit comments