Skip to content

Commit b4623b3

Browse files
committed
Fixes
1 parent ae198ae commit b4623b3

File tree

4 files changed

+30
-22
lines changed

4 files changed

+30
-22
lines changed

lib/iex/lib/iex/helpers.ex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@ defmodule IEx.Helpers do
171171
defp reenable_tasks(config) do
172172
Mix.Task.reenable("compile")
173173
Mix.Task.reenable("compile.all")
174-
Mix.Task.reenable("compile.protocols")
175174
compilers = config[:compilers] || Mix.compilers()
176175
Enum.each(compilers, &Mix.Task.reenable("compile.#{&1}"))
177176
end

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

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ defmodule Mix.Compilers.Elixir do
284284
rescue
285285
_ -> {[], []}
286286
else
287-
{@manifest_vsn, modules, sources, _, _, _, _, _, _} -> {modules, sources}
287+
{@manifest_vsn, modules, sources, _, _, _, _, _, _, _} -> {modules, sources}
288288
_ -> {[], []}
289289
end
290290
end
@@ -293,8 +293,8 @@ defmodule Mix.Compilers.Elixir do
293293
Retrieves all diagnostics from the given manifest.
294294
"""
295295
def diagnostics(manifest, dest) do
296-
{_, all_sources, _, _, _, _, _, _, _} = parse_manifest(manifest, dest)
297-
previous_warnings(all_sources, false)
296+
{_, sources} = read_manifest(manifest, dest)
297+
previous_warnings(sources, false)
298298
end
299299

300300
defp compiler_info_from_force(manifest, all_paths, all_modules, dest) do
@@ -638,7 +638,10 @@ defmodule Mix.Compilers.Elixir do
638638
modules = modules |> Map.merge(dep_modules) |> Map.merge(removed)
639639
exports = Map.merge(exports, removed)
640640
deps_exports = Map.put(deps_exports, app, new_exports)
641-
protocols_and_impls = protocols_and_impls_from_modules(modules, protocols_and_impls)
641+
642+
protocols_and_impls =
643+
protocols_and_impls_from_modules(manifest_modules, protocols_and_impls)
644+
642645
{modules, exports, deps_exports, protocols_and_impls}
643646
end
644647
end
@@ -1153,7 +1156,7 @@ defmodule Mix.Compilers.Elixir do
11531156
{Map.replace!(acc_sources, file, source(size: size, digest: digest)), acc_modules}
11541157
end)
11551158

1156-
state = {modules, exports, sources, [], pending_modules, removed_modules}
1159+
state = {modules, exports, sources, [], pending_modules, removed_modules, consolidate}
11571160
{{:compile, changed, []}, state}
11581161
end
11591162
end

lib/mix/lib/mix/compilers/protocol.ex

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,21 +86,23 @@ defmodule Mix.Compilers.Protocol do
8686

8787
def compile(force?, old_protocols_and_impls, protocols_and_impls, opts) do
8888
output = Mix.Project.consolidation_path()
89-
File.mkdir_p!(output)
90-
Code.prepend_path(output)
9189

92-
if opts[:force] || force? do
93-
clean_consolidated()
94-
paths = consolidation_paths()
95-
96-
paths
97-
|> Protocol.extract_protocols()
98-
|> consolidate(paths, output, opts)
99-
else
100-
protocols_and_impls
101-
|> diff_manifest(old_protocols_and_impls, output)
102-
|> consolidate(consolidation_paths(), output, opts)
103-
end
90+
res =
91+
if opts[:force] || force? do
92+
clean_consolidated()
93+
paths = consolidation_paths()
94+
95+
paths
96+
|> Protocol.extract_protocols()
97+
|> consolidate(paths, output, opts)
98+
else
99+
protocols_and_impls
100+
|> diff_manifest(old_protocols_and_impls, output)
101+
|> consolidate(consolidation_paths(), output, opts)
102+
end
103+
104+
Code.prepend_path(output)
105+
res
104106
end
105107

106108
defp clean_consolidated do
@@ -115,11 +117,15 @@ defmodule Mix.Compilers.Protocol do
115117
Enum.filter(paths, &(not :lists.prefix(otp, &1)))
116118
end
117119

118-
defp consolidate([], _paths, _output, _opts) do
120+
defp consolidate([], _paths, output, _opts) do
121+
File.mkdir_p!(output)
122+
119123
:noop
120124
end
121125

122126
defp consolidate(protocols, paths, output, opts) do
127+
File.mkdir_p!(output)
128+
123129
protocols
124130
|> Enum.uniq()
125131
|> Enum.map(&Task.async(fn -> consolidate_each(&1, paths, output, opts) end))

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ defmodule Mix.Tasks.CompileTest do
2929
msg = "\nEnabled compilers: yecc, leex, erlang, elixir, app, protocols"
3030
assert_received {:mix_shell, :info, [^msg]}
3131

32-
assert_received {:mix_shell, :info, ["mix compile.elixir # " <> _]}
32+
assert_received {:mix_shell, :info, ["mix compile.elixir # " <> _]}
3333
end
3434

3535
@tag project: [compilers: [:elixir, :app, :custom]]

0 commit comments

Comments
 (0)