我正在使用 Elixir,但出现 Dialyzer (via 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
正确。
他们将其定义为
@spec from_seconds(non_neg_integer) :: DateTime.t :: {:error, atom}
但我认为它应该是
@spec from_seconds(non_neg_integer) :: DateTime.t | {:error, atom}
有没有办法通过以某种方式覆盖类型规范或date
类型来解决这个问题?
由于其他原因,我无法将 Timex 升级到版本 3。