diff options
-rw-r--r-- | src/rebar_digraph.erl | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/rebar_digraph.erl b/src/rebar_digraph.erl index 1198530..bbcb736 100644 --- a/src/rebar_digraph.erl +++ b/src/rebar_digraph.erl @@ -18,7 +18,9 @@ restore_graph({Vs, Es}) -> Graph. solve(Graph, Vertices) -> - solve(Graph, Vertices, dict:new()). + solve(Graph, Vertices, lists:foldl(fun({Key, _}=N, Solution) -> + dict:store(Key, N, Solution) + end, dict:new(), Vertices)). solve(_Graph, [], Solution) -> {_, Vertices} = lists:unzip(dict:to_list(Solution)), @@ -28,8 +30,7 @@ solve(Graph, Vertices, Solution) -> lists:foldl(fun(V, {NewVertices, SolutionAcc}) -> OutNeighbors = digraph:out_neighbours(Graph, V), lists:foldl(fun({Key, _}=N, {NewVertices1, SolutionAcc1}) -> - case dict:is_key(Key, SolutionAcc1) orelse - lists:keymember(Key, 1, Vertices) of + case dict:is_key(Key, SolutionAcc1) of true -> {NewVertices1, SolutionAcc1}; false -> |