Norm 0.22
Norm 0.22 统一编译器、语言服务与应用构建的语义和资源边界,并修复泛型推断、重命名、空值分析和 Native 归档问题。
模块内测试
模块支持独立的生产与测试源码集合。std.testing.Test 标记可单独执行的测试函数,CLI 支持按函数或 package 筛选,编辑器提供 Run Test。测试关联被测声明,API 文档反向展示测试及源码;标准库的 54 个测试纳入 std 模块。配置与执行方式见测试 API。生产构建排除测试源码集合;@Test 本身不是删除生产源码中函数的指令。
类型与编辑器行为
- 泛型参数身份区分所属声明和重载,约束不会在不同声明之间串用。
- 泛型调用支持沿类与接口继承关系推断类型实参;补全和编译共用类型应用、赋值关系及约束求解。
- 重命名覆盖类方法的 override 和接口 witness 关系,保留动态分派;成员查询合并被实现或覆盖的声明。
- 循环结束后的空值分析保留零次迭代路径,nullable 遍历与索引接收者在语义分析阶段报错。
- 字符串插值表达式支持补全,未闭合字面量使用词法恢复结果。
编译与应用边界
CLI、Polyglot 与应用构建共用编译和资源准备入口。编译产物持有捕获的 Java classpath、资源和注解处理结果,运行和打包复用同一份输入。语言服务按项目发布一致快照,标准库源码覆盖层参与同一分析过程。
内建协议从 ABI 契约派生;Java 绑定扫描统一处理有效继承成员。模块化 CLI 的 Native 应用归档支持源码位置类型的序列化。职责和验证入口见编译器架构,交付方式见应用构建。
使用与边界
升级 CLI 与 VS Code 扩展到同一版本,编辑器安装后重新加载窗口。现有 Native 构建与平台依赖要求见发布流程。本版本主要调整编译器内部架构,并收紧原本被错误接受的程序;这不代表所有 Java 框架路径均已验证。