что диалайзер что градуалайзер на чисто моём опыте и моих приложениях в 8/10 случаев ошибаются на ровных местах(даже в чистых функциях) с парой веток кейса в паре случаев помогают, из них один— уточнить тип и один баг буквально сегодня час трахался с очередным кейсом, из которого всего лишь {:error, String.t()} | {:ok, map()} или что-то в этом духе возвращалось, а он этого в упор не видел ещё +1 nowarn_function в проект
градуалайзер этот случай спокойно схавал, но бреда в его аутпуте тоже куча
что диалайзер что градуалайзер на чисто моём опыте и моих приложениях в 8/10 случаев ошибаются на ровных местах(даже в чистых функциях) с парой веток кейса в паре случаев помогают, из них один— уточнить тип и один баг буквально сегодня час трахался с очередным кейсом, из которого всего лишь {:error, String.t()} | {:ok, map()} или что-то в этом духе возвращалось, а он этого в упор не видел ещё +1 nowarn_function в проект
градуалайзер этот случай спокойно схавал, но бреда в его аутпуте тоже куча
каждый раз когда я думал что диалайзер тупой оказывалось ровно наоборот и баг в упор не видел я
например, с дефолтными настройками он может вычислить, что какой-то code path в функции возвращает хуиту, но молчать об этом, как партизан, и тихонечко сузить возвращаемый тип
диалайзер НЕ на дефолтных настройках может выдавать ненужные сообщения (например, у меня функция принимает набор константных бинарей, так он вывел мне формулу для их длины, паразит)