yx check
Выполняет статическую проверку исходного кода YaoXiang (проверка типов, проверка владения) без генерации какого-либо кода.
Использование
yx check [OPTIONS] [PATH]...Аргументы
| Аргумент | Описание |
|---|---|
PATH | Один или несколько путей к файлам или каталогам. Если не указан, проверяется текущий проект. |
Параметры
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
--json | Вывод диагностической информации в формате JSON | нет |
--color <MODE> | Режим цветного вывода: auto, always, never | auto |
--exclude <PATH> | Исключить указанный путь (можно использовать несколько раз) | нет |
--no-progress | Подавить сообщения о прогрессе и сводку | нет |
--deny-warnings | Считать предупреждения ошибками: завершать с ненулевым кодом при наличии предупреждений | нет |
Коды выхода
| Код | Описание |
|---|---|
0 | Ошибок нет |
1 | В ходе проверки обнаружены ошибки; либо при использовании --deny-warnings имеются предупреждения |
2 | Файлы .yx не найдены |
Межфайловый анализ
yx check поддерживает межфайловую проверку типов. При проверке нескольких файлов:
- Все файлы
.yxразбираются параллельно - Строится граф зависимостей модулей
- Обнаруживаются циклические зависимости (с выдачей ошибки)
- Проверка выполняется в порядке топологической сортировки
- Используется общее окружение типов, что позволяет корректно обнаруживать межфайловые ссылки
bash
# Проверить весь проект (автоматическое обнаружение межфайловых ссылок)
yx check src/
# Проверить указанные файлы
yx check src/main.yx src/lib.yxФормат вывода JSON
При использовании --json формат вывода следующий:
json
{
"error_count": 0,
"warning_count": 0,
"diagnostics": [
{
"file": "src/main.yx",
"severity": "error",
"code": "E1001",
"message": "Unknown variable: 'x'",
"line": 5,
"column": 3,
"end_line": 5,
"end_column": 4,
"lsp": { ... }
}
]
}Примеры
bash
# Проверить текущий проект
yx check
# Проверить указанный файл
yx check src/main.yx
# Проверить каталог и вывести JSON
yx check src/ --json
# Режим CI (без цвета, без прогресса)
yx check --color never --no-progress
# Строгий режим CI (предупреждения также приводят к ошибке)
yx check --deny-warnings
# Исключить каталог с тестами
yx check src/ --exclude tests/Интеграция с CI
yaml
# GitHub Actions
- name: Type check
run: yx check --color never --no-progressПодробную конфигурацию CI см. в Руководстве по интеграции с CI.
См. также
yx format-- форматирование кодаyx test-- запуск тестов- Справочник по кодам ошибок -- полный список кодов ошибок
- Руководство по интеграции с CI -- интеграция с CI/CD
- Проект системы диагностики -- документ об архитектуре
