Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Feature/dead code improve #1770

Draft
wants to merge 6 commits into
base: develop
Choose a base branch
from

Conversation

EvilBeaver
Copy link
Collaborator

@EvilBeaver EvilBeaver commented Aug 31, 2021

Описание

Предыдущий вариант UnreachableCode не отлавливал досрочный выход из процедуры

Если А Тогда
    Возврат 1;
Иначе
    Возврат 2;
КонецЕсли;

ТутОшибка = Истина; // <- недостижимый код

Связанные задачи

нет связанной задачи

Чеклист

Общие

  • Ветка PR обновлена из develop
  • Отладочные, закомментированные и прочие, не имеющие смысла участки кода удалены
  • Изменения покрыты тестами
  • Обязательные действия перед коммитом выполнены (запускал команду gradlew precommit)

Для диагностик

  • Описание диагностики заполнено для обоих языков (перевод на английский не обязателен)

Дополнительно

на голом Cfg сделать не удалось, т.е. UnreachableCode детектирует повторные недостижимые участки на уровне блока кода, а в текущей реализации Cfg нет информации о блоках кода. Диагностика работает по предыдущему алгоритму, затем строит CFG для мертвого кода, и те узлы, которые уже обнаружил старый алгоритм - фильтрует. Оставшиеся после фильра недостижимые узлы - это будут те, которые нашел только CFG, но не старая диагностика.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant