тут происходит что то странное, надо бы это по нормальному сделать. А почему берется второй символ (letter[1]), а не первый? Как размер строки, которая выдается через sunparse, можно покрыть все случаи?
выход из этого цикла можно сделать как только встретился исполняемый оператор? еще если не сделать выход
зачем создавать новый тип? его нельзя разве использовать? это тут явно лишнее
вот так просто поменять тип? главное, чтобы он был правильный, то что ниже делается через new - не правильно. Нужно либо через copyPtr или просто сохранять тот тип, что там выдается.
вместо этого нужно использовать printInternalError, примеры есть почти во всех файлах проекта. Вообще везде нужно добавлять проверки и хотя бы это печатать в printInternalError, если поведение отличается от ожидаемого, чтобы потом не искать, где упало.
а как не привязываться к циклу? у нас же замена связана с переменными цикла или с любыми переменными?. А что…
оказывается не нажал на кнопку, подтверждающую начало рецензии...
кодировка файла не позволяет прочитать русский комментарий тут (а может быть и в проекте тоже)