| {:error, :reason1} | {:error, :reason2, details}
Диалайзер видит сигнатуру возврата только {:error, :reason1}.
Когда делаю
case myfunc(x) do
{:ok, value} ->
или
{:error, :reason2, _}
ругается.
Что делать?
Функция может вернуть три различных паттерна, а ты матчишь по одному или двум
Во-первых, матчу по трём. Во-вторых, какая разница? Он ругается на The pattern can never match the type.
А почему у тебя в спеке reason — атом?
Потому что я так возвращаю, и соответственно так описал в спеке
a value что в себя включает? может диалайзер имеет ввиду как раз то, что вариант {:error, :reason1} никогда не сможет сматчиться.
Обсуждают сегодня