Skip to content

Commit 9fba85d

Browse files
authored
don't build a symbol that is already in the state (#70)
1 parent 7c81701 commit 9fba85d

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

lib/grpc_reflection/service/builder.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ defmodule GrpcReflection.Service.Builder do
9191
symbol: Enum.find(fields, fn f -> f.name == name end).type_name
9292
}
9393
end)
94-
|> Enum.reject(fn %{symbol: s} -> s == nil end)
94+
|> Enum.reject(fn %{symbol: s} -> is_nil(s) or State.has_symbol?(state, s) end)
9595
|> Enum.reduce(state, fn %{mod: mod, symbol: symbol}, state ->
9696
symbol = Util.trim_symbol(symbol)
9797

test/service/builder_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,12 @@ defmodule GrpcReflection.Service.BuilderTest do
141141
assert %State{services: [WrappedService]} = tree
142142
end
143143

144-
@tag skip: "Recursive message structure currently fails to parse"
145144
test "handles a recursive message structure" do
146145
assert {:ok, tree} = Builder.build_reflection_tree([RecursiveMessage.Service.Service])
147146

148147
assert tree.files |> Map.keys() |> Enum.sort() == [
149148
"recursive_message.Reply.proto",
149+
"recursive_message.Request.proto",
150150
"recursive_message.Service.proto"
151151
]
152152

0 commit comments

Comments
 (0)