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 集成指南。

另请参阅 ​