vet проверяет исходный код Go и сообщает о подозрительных конструкциях, таких как вызовы Printf, аргументы которых не совпадают с форматом строки. vet использует эвристику, которая не гарантирует, что все отчеты являются подлинными проблемами, но он может найти ошибки, не обнаруженные компиляторами.
Vet обычно вызывается с помощью команды go. Эта команда проверяет пакет в текущем каталоге:
go vet
тогда как следующий пример проверяет пакеты, путь которых указан:
go vet my/project/...
Используйте go help packages, чтобы увидеть другие способы указания, какие пакеты проверять.
Код выхода vet не равен нулю для ошибочного вызова инструмента или, если возникла проблема, и 0 в противном случае. Обратите внимание, что инструмент проверяет не все возможные проблемы и зависит от ненадежной эвристики, поэтому его следует использовать только в качестве руководства, а не в качестве надежного индикатора правильности программы.
Чтобы просмотреть список доступных проверок, запустите "go tool vet help":
asmdecl сообщить несоответствия между сборочными
файлами (assembly files) и Go декларациями
assign проверить на бесполезные назначения
atomic проверить на общие ошибки
используемые в sync/atomic пакете
bools проверить на общие ошибки
затрагивающие булевы (boolean) операторы
buildtag проверить что +build теги
правильно сформированы и корректно размещены
cgocall выявить некоторые из нарушений
правил передачи cgo указателей
composites проверить на композитные литералы без ключей
(unkeyed composite literals)
copylocks проверить на locks
ошибочно переданные по значению
httpresponse проверить на ошибки использования HTTP ответов
loopclosure проверить запросы на прохождение циклом
по переменным из вложенных функций
lostcancel проверить cancel функции
возвращенные context.WithCancel при вызове
nilfunc проверить на бесполезные сравнения
между функциями и nil
printf проверить соответствие
строк и аргументов формата Printf
shift проверить на сдвиги которые равны
или превосходят ширину целых чисел
stdmethods проверить сигнатуры методов
хорошо известных интерфейсов
structtag проверить что теги полей структур
соответствуют reflect.StructTag.Get
tests проверить на общие ошибочные
использования тестов и примеров
unmarshal сообщить о передаче unmarshal значений
не-указателей или не-интерфейсов
unreachable проверить на наличие недостижимого кода
unsafeptr проверить на невалидные преобразования
uintptr в unsafe.Pointer
unusedresult проверить на неиспользуемые результаты
вызовов некоторых функций
Для получения подробной информации и флагов конкретной проверки, например printf, запустите "go tool vet help printf".
По умолчанию все проверки выполняются. Если для каких-либо флагов явно задано значение true, запускаются только эти тесты. И наоборот, если какой-либо флаг явно установлен в false, только эти тесты отключаются. Таким образом -printf=true запускает проверку printf, а -printf=false запускает все проверки, кроме проверки printf.
Основные флаги:
-c=N
отображать проблемные строки
плюс N строк окружающего контекста
-json
выводить аналитическую диагностику
(и ошибки) в формате JSON
Читайте также:
Комментариев нет:
Отправить комментарий