Skip to content

Commit 2de2322

Browse files
committed
Remote converger should receive full dep struct
1 parent f13ae18 commit 2de2322

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

lib/mix/lib/mix/dep/converger.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ defmodule Mix.Dep.Converger do
5454
all(main, [], [], apps, callback, rest, fn dep ->
5555
if not nil?(rest) &&
5656
converger &&
57-
converger.remote?(dep.app) do
57+
converger.remote?(dep) do
5858
{ :loaded, dep }
5959
else
6060
{ :unloaded, dep }
@@ -70,7 +70,7 @@ defmodule Mix.Dep.Converger do
7070
converged_deps = converger.converge(deps)
7171
|> Enum.into(HashDict.new, to_dict)
7272
deps = deps
73-
|> Enum.reject(&converger.remote?(&1.app))
73+
|> Enum.reject(&converger.remote?(&1))
7474
|> Enum.into(HashDict.new, to_dict)
7575

7676
all(main, [], [], apps, callback, rest, fn dep ->

lib/mix/lib/mix/remote_converger.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ defmodule Mix.RemoteConverger do
77
# Useful for things like external package managers
88

99
@doc """
10-
Return `true` if given dependency app name handled by
10+
Return `true` if given dependency is handled by
1111
remote converger.
1212
"""
13-
defcallback remote?(atom) :: boolean
13+
defcallback remote?(Mix.Dep.t) :: boolean
1414

1515
@doc """
1616
Run the remote converger.

lib/mix/lib/mix/scm.ex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,15 @@ defmodule Mix.SCM do
118118
Prepend the given SCM module to the list of available SCMs.
119119
"""
120120
def prepend(mod) when is_atom(mod) do
121+
available = Enum.reject(available(), &(&1 == mod))
121122
:application.set_env(:mix, :scm, [mod|available])
122123
end
123124

124125
@doc """
125126
Aopend the given SCM module to the list of available SCMs.
126127
"""
127128
def append(mod) when is_atom(mod) do
129+
available = Enum.reject(available(), &(&1 == mod))
128130
:application.set_env(:mix, :scm, available ++ [mod])
129131
end
130132
end

0 commit comments

Comments
 (0)