【发布时间】:2020-05-14 03:18:44
【问题描述】:
我正在使用 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 有一个incorrect type spec。
他们将其定义为
@spec from_seconds(non_neg_integer) :: DateTime.t :: {:error, atom}
但我认为应该是
@spec from_seconds(non_neg_integer) :: DateTime.t | {:error, atom}
是否可以通过某种方式覆盖类型规范或date 类型来解决此问题?
由于其他原因,我无法将 Timex 升级到版本 3。
【问题讨论】: