Skip to content

玄铁类型系统哲学设计 ​

具体看 02_类型系统哲学设计.md 是由两套方案组成:

  1. 多档开关——在执行编译指令时加入指令参数--严格、--禁止、--默认 即可切换编译器语法检查等级,具体分级制度如下

    • 错误等级:
      • 宽松级:未使用的变量  |  静默处理
      • 警告级:隐式类型、若抑否逻辑表达式出现多个 否 编译器会只采用第一个否、隐式动态、可推断未声明  |  编译期输出警告,强烈建议开发者修复这个问题
      • 错误级:完全错误的语法  | 编译器完全退出并中断编译任务
    • 默认:按原分级处理(宽松→静默,警告→提示,错误→中断)
    • 严格:所有等级提升一档(宽松→警告,警告→错误,错误→错误)
    • 禁止:所有非错误提升为错误(宽松→错误,警告→错误,错误→错误)
  2. 项目配置文件——玄铁.配置.toml

    [编译]
    严格度 = 禁止
    警告即错误 = ["隐式类型", "未使用变量"]
    忽略警告 = ["注释格式", "W001"]

    项目根的判定(重要):编译器与 LSP 都以源文件所在目录为起点,逐级向上查找 玄铁.配置.toml——找到的第一个即为项目根配置(与 Go 的 go.mod 同理)。所以:

    • 一个项目只需在根目录放一份配置,下属所有子目录的 .xt 文件都受其管辖,无需每个目录都放。
    • 一路向上都找不到 → 视为独立散文件,按无配置处理。
    • 命令行参数(如 --严格)优先级高于配置文件。

    支持的键:

    键取值作用
    严格度默认/严格/禁止全局检查等级(命令行同名参数优先)
    忽略警告["W001","隐式类型",...]按警告码或类别名静默指定警告(编译器与 LSP 诊断同时生效)
    警告即错误["类别名",...]指定类别的警告提升为错误

    LSP 侧:忽略警告 对编辑器里的红色/黄色波浪线同样生效——例如填入 "W001" 后,「变量未标注类型」的黄色提醒不再出现;@允许(码) 注解则可做语句级抑制。

编译期错误与运行时诊断明细(错误格式、触发示例、健壮性诊断对照)见 02_类型系统哲学设计.md 末尾章节。

基于 VitePress 静态构建 · 文档内容与仓库 GUIDE/ 同源

玄铁玄铁 XUANTIE · 中文系统级编程语言MARK 玄·折 120×120 · STROKE 8 · NO CURVES