Skip to content

Norm 0.6 ​

Norm 0.6 完成一等函数、闭包、返回类型省略规则与统一源码格式化。本页定义 0.6 的实现契约;具体语法与类型规则由语言规范定义。

函数与闭包 ​

  • Function<R(P...)> 是完整的函数类型,函数值可以存入变量、字段和集合,也可以作为参数和返回值;
  • callable 参数声明 R transform(T value) 与对应的 Function<R(T)> transform 使用同一类型模型;
  • Lambda 支持上下文参数推断、显式参数类型、末尾表达式结果与泛型 expected type 传播;
  • 闭包可以捕获外层局部、参数和 this,局部与参数遵循 effectively-final 规则;
  • 顶层函数引用与 receiver::method 绑定方法引用可以按期望函数类型解析重载;
  • Binder、Core IR、验证器和 Truffle 后端共享闭包目标、捕获布局和调用表示,内容身份边界升级为 Core Schema V3 与 Language Semantics V3。

函数声明 ​

  • 顶层函数省略返回类型时固定为 Void;
  • class 方法省略返回类型时返回同一接收者,支持连续调用;
  • interface 方法继续显式声明返回类型;
  • 顶层声明与成员默认公开,源码格式化使用省略 public 的规范形式。

工具链 ​

  • 编译器提供基于语法树的统一格式化器,使用两空格缩进、100 列布局和稳定的尾换行;
  • Language Server 提供标准 textDocument/formatting,无效源码保持原文;
  • VS Code 扩展默认使用 Norm 格式化器并在保存时格式化;
  • 补全、签名帮助、悬停和符号展示理解函数类型、Lambda、方法引用与省略返回类型;
  • 标准库、示例与验收程序统一使用规范格式。

升级说明 ​

省略返回类型的 class 方法现在具有 owner 类型并在正常结束时返回 this。需要无结果语义的方法应显式声明 Void。顶层函数省略返回类型仍表示 Void。

完整规则见函数与调用、函数高级规则、函数声明语法和VS Code 支持。

Norm 0.25