Skip to content

yx check ​

Выполняет статическую проверку исходного кода YaoXiang (проверка типов, проверка владения) без генерации какого-либо кода.

Использование ​

yx check [OPTIONS] [PATH]...

Аргументы ​

АргументОписание
PATHОдин или несколько путей к файлам или каталогам. Если не указан, проверяется текущий проект.

Параметры ​

ПараметрОписаниеЗначение по умолчанию
--jsonВывод диагностической информации в формате JSONнет
--color <MODE>Режим цветного вывода: auto, always, neverauto
--exclude <PATH>Исключить указанный путь (можно использовать несколько раз)нет
--no-progressПодавить сообщения о прогрессе и сводкунет
--deny-warningsСчитать предупреждения ошибками: завершать с ненулевым кодом при наличии предупрежденийнет

Коды выхода ​

КодОписание
0Ошибок нет
1В ходе проверки обнаружены ошибки; либо при использовании --deny-warnings имеются предупреждения
2Файлы .yx не найдены

Межфайловый анализ ​

yx check поддерживает межфайловую проверку типов. При проверке нескольких файлов:

  1. Все файлы .yx разбираются параллельно
  2. Строится граф зависимостей модулей
  3. Обнаруживаются циклические зависимости (с выдачей ошибки)
  4. Проверка выполняется в порядке топологической сортировки
  5. Используется общее окружение типов, что позволяет корректно обнаруживать межфайловые ссылки
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.

См. также ​