Skip to content

Commit 9ba89f4

Browse files
committed
Properly handle compile attributes in Erlang sources
1 parent 85b1ad0 commit 9ba89f4

3 files changed

Lines changed: 5 additions & 4 deletions

File tree

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,6 @@ defmodule Mix.Tasks.Compile.Erlang do
185185
{:attribute, _, :behavior, behaviour} ->
186186
%{erl | deps: [behaviour | erl.deps]}
187187

188-
{:attribute, _, :compile, value} when is_list(value) ->
189-
%{erl | deps: Enum.reduce(value, erl.deps, &add_parse_transforms/2)}
190-
191188
{:attribute, _, :compile, value} ->
192189
%{erl | deps: add_parse_transforms(value, erl.deps)}
193190

@@ -232,7 +229,9 @@ defmodule Mix.Tasks.Compile.Erlang do
232229
end
233230

234231
defp add_parse_transforms(compile, deps) do
235-
Enum.reduce(compile, deps, fn
232+
compile
233+
|> List.wrap()
234+
|> Enum.reduce(deps, fn
236235
{:parse_transform, transform}, deps -> [transform | deps]
237236
_, deps -> deps
238237
end)

lib/mix/test/fixtures/compile_erlang/src/b.erl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
-module(b).
22
-export([z/0]).
3+
-compile({nowarn_unused_function, []}).
34

45
-callback b() -> term().
56
-record(br, {cell=undefined}).

lib/mix/test/fixtures/compile_erlang/src/c.erl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
-module(c).
22
-export([b/0]).
3+
-compile([{nowarn_unused_function, []}]).
34

45
-include("r.hrl").
56
-behaviour(b).

0 commit comments

Comments
 (0)