bmstu-iu9 / bmstu-iu9/refal-5-lambda
Предупреждения об избыточных функциях и внешних объявлениях
- Dominant language
- C++
- Stars
- 97
- Forks
- 40
- PR merge metrics
- No merged PRs in 30d
Description
Нужно выводить следующие предупреждения:
* [ ] Функция не используется. Это значит, что функция не является точкой входа и прямо или косвенно не доступна из точек входа. Тот факт, что функция вызывается из другой функции, ничего не говорит — в файле может быть несколько взаимно-рекурсивных локальных функций, которые никогда не вызываются.
Если в файле используется хотя бы одна метафункция, значит считаем, что все локальные функции используются.
* [ ] Extern-объявление не используется. Аналогично предыдущему, но метафункции предупреждение не подавляют. Метафункции способны вызывать внешние функции по имени, даже если их нет в области видимости.
* [ ] Для определённой функции есть extern-объявление. Оно избыточное, на него нужно указать.
* [ ] Несколько extern-объявлений для одной функции.
Данную задачу невозможно адекватно решить, пока в языке есть `$INCLUDE` и нативные вставки. Поэтому решать её нужно, когда эти устаревшие элементы (#318) будут удалены из компилятора.
Неиспользуемые функции могут располагаться и в прелюдии — на них предупреждение выдаваться не должно. Возможная реализация: при сканировании прелюдии координаты токенов помечать особым образом, для помеченных координат предупреждения не выдавать.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.