I’m getting a dialyzer error and I don’t understand why.
lib/conduit/plug/retry.ex:74:pattern_match
The pattern
:nack, _, _wait_time
can never match the type
%{:__exception__ => true, :__struct__ => atom(), atom() => _}, _, integer()
This is basically what dialyzer is telling you. It is saying that that particular clause of the log_error/3 function will never match as it will never be called with the first argument as :nack. It is not complaining about the function as a whole.
Yes, sometimes dialyzer warnings can be a bit cryptic to understand. It is generally trying to work both ways with functions and match a definition of a function and the calls to it and check if they work. It uses something called Success typing.