Я использую Elixir и получаю ошибку Dialyzer (через Dialyxir), которая говорит
The pattern
variableVdate
can never match, because previous clauses completely cover the type
{:error, :badarg}.
Вот код
date = Timex.DateTime.from_seconds(0)
case date do
{:error, :badarg} ->
{:error, "Bad Date"}
date ->
{:ok, date}
end
Я полагаю, что это потому, что Timex.DateTime.from_seconds
имеет неправильный тип spe c.
Они определяют его как
@spec from_seconds(non_neg_integer) :: DateTime.t :: {:error, atom}
Но я думаю, это должно быть
@spec from_seconds(non_neg_integer) :: DateTime.t | {:error, atom}
Есть ли способ обойти эту проблему, возможно, путем переопределения типа spe c или типа date
каким-либо образом?
По другим причинам я не могу обновить Timex до версии 3.