Документ проектирования команды check
yx check — это инструмент статической проверки компилятора YaoXiang, предоставляющий проверку типов, межфайловый анализ и функции инкрементальной проверки.
Принципы проектирования
- Нулевой уровень ложных срабатываний: каждая сообщаемая ошибка должна быть реальной ошибкой
- Межфайловая осведомлённость: корректное обнаружение ошибок типов между модулями и неопределённых ссылок
- Приоритет инкрементальности: режим watch повторно проверяет только затронутые файлы
- Самодокументирование: коды ошибок, шаблоны сообщений и текст справки управляются через i18n
Навигация по документации
- Система диагностики — система кодов ошибок, структура данных Diagnostic, вывод Emitter
- Межфайловый анализ — общая среда типов, граф зависимостей, топологическая сортировка
- Инкрементальная проверка — CheckSession, affected_modules, режим watch
Границы с другими системами
| Система | Обязанности | Связь с check |
|---|---|---|
Компилятор (yx build) | Полная компиляция (парсинг → проверка типов → генерация кода) | check выполняет только первые два этапа |
| LSP | Интеграция с редактором (дополнение, переход, диагностика) | Диагностика check может быть переиспользована |
Форматирование (yx format) | Стиль кода | Независим, используется параллельно в CI |
