Skip to content

Commit d5b4884

Browse files
committed
Don't fail if there is no protocol implementation
1 parent 53b42ba commit d5b4884

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

lib/ecto/dev_logger.ex

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,16 @@ defmodule Ecto.DevLogger do
117117
<<_prefix::utf8, index::binary>> = replacement ->
118118
case Map.fetch(params_by_index, String.to_integer(index)) do
119119
{:ok, value} ->
120-
value
121-
|> Ecto.DevLogger.PrintableParameter.to_expression()
122-
|> colorize(IO.ANSI.color(0, 2, 3), apply(IO.ANSI, return_to_color, []))
120+
try do
121+
value
122+
|> Ecto.DevLogger.PrintableParameter.to_expression()
123+
|> colorize(IO.ANSI.color(0, 2, 3), apply(IO.ANSI, return_to_color, []))
124+
rescue
125+
Protocol.UndefinedError ->
126+
value
127+
|> inspect()
128+
|> colorize(IO.ANSI.color(5, 0, 0), apply(IO.ANSI, return_to_color, []))
129+
end
123130

124131
:error ->
125132
replacement

0 commit comments

Comments
 (0)