Skip to content

Commit fce9750

Browse files
author
José Valim
committed
Do not include remotes on reachable results
1 parent 3f5e6de commit fce9750

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

lib/elixir/lib/module/dispatch_tracker.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ defmodule Module.DispatchTracker do
148148
end
149149

150150
defp reduce_reachable(d, vertex, vertices) do
151-
neighbours = :digraph.out_neighbours(d, vertex) |> :ordsets.from_list
151+
neighbours = :digraph.out_neighbours(d, vertex)
152+
neighbours = (lc { _, _ } = t inlist neighbours, do: t) |> :ordsets.from_list
152153
remaining = :ordsets.subtract(neighbours, vertices)
153154
vertices = :ordsets.union(neighbours, vertices)
154155
:lists.foldl(reduce_reachable(d, &1, &2), vertices, remaining)

lib/elixir/test/elixir/module/dispatch_tracker_test.exs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,12 @@ defmodule Module.DispatchTrackerTest do
157157
refute Module in D.remotes_with_dispatch(config[:pid], { :unknown, 1 })
158158
end
159159

160+
test "remotes are not reachable", config do
161+
D.add_definition(config[:pid], :def, { :public, 1 })
162+
D.add_remote(config[:pid], { :public, 1 }, Module, { :concat, 1 })
163+
assert D.reachable(config[:pid]) == [{ :public, 1 }]
164+
end
165+
160166
## All
161167

162168
test "can query dispatches", config do

0 commit comments

Comments
 (0)