Комментарии 3
Если мы зашли в новый файл — очищаем стек.
А что, линтер в несколько потоков вызвать нельзя?
Да, в несколько потоков вызвать линтер не получится. Фреймворк golang.org/x/tools/go/analysis
, на котором построен линтер, запускает анализатор один раз на весь пакет. То есть pass.Files
содержит сразу все файлы, и они обрабатываются последовательно в рамках одного анализа. Конечно, можно было бы распараллелить обработку вручную, но тогда пришлось бы синхронизировать доступ к общим структурам и усложнять архитектуру. Пока в этом просто нет смысла — проверка порядка функций достаточно быстрая и больше локальна.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
В поисках хорошего стиля. Часть 2. Пишем свой линтер на Go для golangci-lint