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