Skip to content

Commit 480945a

Browse files
authored
Load modules for mix recompile all-at-once (#14006)
1 parent 051bffa commit 480945a

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,19 +373,26 @@ defmodule Mix.Compilers.Elixir do
373373
Map.has_key?(stale_modules, module) ->
374374
{[module | modules_to_recompile], modules_to_mix_check}
375375

376-
recompile? and Code.ensure_loaded?(module) and
377-
function_exported?(module, :__mix_recompile__?, 0) ->
376+
recompile? ->
378377
{modules_to_recompile, [module | modules_to_mix_check]}
379378

380379
true ->
381380
{modules_to_recompile, modules_to_mix_check}
382381
end
383382
end
384383

384+
_ = Code.ensure_all_loaded(modules_to_mix_check)
385+
385386
modules_to_recompile =
386387
modules_to_recompile ++
387388
for {:ok, {module, true}} <-
388-
Task.async_stream(modules_to_mix_check, &{&1, &1.__mix_recompile__?()},
389+
Task.async_stream(
390+
modules_to_mix_check,
391+
fn module ->
392+
{module,
393+
function_exported?(module, :__mix_recompile__?, 0) and
394+
module.__mix_recompile__?()}
395+
end,
389396
ordered: false,
390397
timeout: :infinity
391398
) do

0 commit comments

Comments
 (0)