给编译器一张人话嘴

2026-05 · 工具链

早期奇语的语法错误长这样:

解析错误: General("UnrecognizedToken { token: (3206,
  Token(110, \"结果\"), 3212), expected: [...] }")

没行号、没源码、看不懂。现在换成 rustc 风格:

语法错误:意外的标记 `结果`
  --> 第 3 行第 8 列
   3 |     变量 结果: 整数 = 1;
                ^^^^^^
  期望:<标识符> / 长度
  提示:`结果` 是 qi 的保留字,不能作为标识符名。换个别名(如 `结果值`)

关键改动

错误信息的质量,往往决定一门新语言「能不能用得下去」。