Мне пока только не нравится то, что иногда я не понимаю где искать трейты. Написано into() а во что оно и как превратится, хз, приходится не просто нажать на методе и попасть в имплементацию для структуры, а открывать структуру (иногда еще поди пойми какую) и там просматривать код в поисках. Не найду никак быстрый способ искать такое.
Например есть енам ошибки. Он реализует трейт фром для кучи других и есть обертка, к которой этот енам автоматом можно привести. В итоге я могу в коде сразу вызвать метод обертки. Компилер поймет, что ошибку А можно привести к Б, а Б к В, а у В есть метод context(). В итоге в коде написано только чтото.context() все остальное магия компилятора и автоматического дерефа и прочих конвертаций типа фром. Я привык к тому, что всю цепочку легко отследить и пройти по шагам...тут же иногда не так.
Как ни странно в макросах ошибки понятны сразу, так как они показываются там где произошли, ни разу затыка не было с этим. А вот с автовыаодом, бывает сложно. Единственный метод пока это все выделять в отдельные переменные (среда может по кнопке) и смотреть там типы. В простых случаях это помогает сразу и не надо, а в сложных среда типы частично :) При этом ладно получить исходящий тип, а входящий вообще по сути никак и тут, на входе миллион границ, а на выходе кусок типа, крутись :)
Плюс в vscode стандартное окно показа ошибок работает плохо, я бесился за неясность ошибок пока не нажал "показать полный вывод компилятора" и полный вывод вообще ясный, проблема в том, что его надо все время открывать, целиком читать и это долго. Если бы среда умела в нужных местах кода все показывать нормально, это было бы офигенно удобно. Но подозреваю текст компилер выдает у ошибки "готовый" поди его покажи, только портить.
Если бы была кнопень "развернуть преобразования" в среде разработки, я был бы доволен. Надо поискать, может есть такая. Макросы можно разворачивать нередко.