Skip to content

Commit afbac81

Browse files
author
José Valim
committed
Do not require all compilers available on manifest
Closes #4228 Signed-off-by: José Valim <[email protected]>
1 parent 0b78f86 commit afbac81

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

lib/mix/lib/mix/tasks/compile.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ defmodule Mix.Tasks.Compile do
127127
"""
128128
def manifests do
129129
Enum.flat_map(compilers(), fn(compiler) ->
130-
module = Mix.Task.get!("compile.#{compiler}")
131-
if function_exported?(module, :manifests, 0) do
130+
module = Mix.Task.get("compile.#{compiler}")
131+
if module && function_exported?(module, :manifests, 0) do
132132
module.manifests
133133
else
134134
[]

lib/mix/test/mix/tasks/compile_test.exs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ defmodule Mix.Tasks.CompileTest do
2626
assert_received {:mix_shell, :info, ["\nEnabled compilers: elixir, app, custom, protocols"]}
2727
end
2828

29+
test "compile does not require all compilers available on manifest" do
30+
Mix.Project.push CustomCompilers
31+
assert Mix.Tasks.Compile.manifests |> Enum.map(&Path.basename/1) ==
32+
[".compile.elixir"]
33+
end
34+
2935
test "compile a project with mixfile" do
3036
in_fixture "no_mixfile", fn ->
3137
assert Mix.Tasks.Compile.run([]) == :ok

0 commit comments

Comments
 (0)