Как переопределить функцию или тип переменной в Elixir и Dialyzer? - PullRequest
0 голосов
/ 18 апреля 2020

Я использую 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.

...