VSCode + ElixirLS вроде как приличную часть ошибок подчёркивают, форматирование при сохранении работает и всё вроде ничего, но например когда не написан какой-то вариант функции для матча — не видит. Компилишь, пробуешь использовать, получаешь своё (FunctionClauseError) no function clause matching in… и только тогда становится ясно, что накосячил.
Было бы здорово, если бы намекал на проблемы, а то я пока смотрю в книгу и вижу фигу 🙂
Ты же понимаешь что «компилишь, пробуешь использовать» падает в рантайме?
Ну нормальные языки умеют отлавливать частичный кейс-анализ.
Используй dialyzer
Понимаю. Не очень понимаю пока, почему нет возможности отследить, если вот вызов функции, а не все кейсы написаны или опечатка какая-то в одном из. Но я без опыта, так что хз должно так быть или не сделано пока просто, или невозможно в принципе
Что значит "все кейсы"?
Ну от опечаток действительно спасает dialyzer.
А лол, точно, у нас же в эликсире нет юнион типов. Запутал человека, посыпаю голову пеплом!
Это все ещё происходило бы в compile time
Elixir ls запускает из коробки диалайзер
Да, и чтобы они правильно работал, нужно писать спеки
Ну даже в водном туториале по спекам написано что оно занимаются отловом того что точно не работает. А что может работать должен программист продумывать. Если хочется наоборот - то это к совсем другим языкам.
Обсуждают сегодня