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