Skip to content

Norm 0.12 ​

Norm 0.12 完成 Annotation 与类型反射的纵向语言实现。

语言 ​

  • annotation 声明显式指定目标集合与 source、binary 或 runtime 保留策略;
  • annotation 字段使用受限标量常量类型,可声明默认值;
  • @Name(...) 支持 package、类型、字段、构造器、函数、参数和局部变量目标;
  • annotation 参数必须命名,编译器统一完成目标检查、常量检查与默认值归一化;
  • reflect<T>() 产生 Type<T>,name() 返回完整类型显示名,annotation<A>() 类型安全地读取 runtime annotation;
  • 反射查询只读取静态 metadata,不改变类型检查或程序控制流。

工具链 ​

  • Syntax、Semantic、Bound 与 Core 使用专用 annotation schema、application、target 和 value 模型;
  • Core 身份边界升级为 Schema V8 与 Language Semantics V8;
  • source application 只存在于语义模型,binary/runtime application 进入 Core,Truffle 只注册 runtime application;
  • formatter、package header、parser recovery、Language Server 与 VS Code 语法规则识别 annotation;
  • 跨 package 编译与真实执行使用相同的 metadata 模型。

完整规则见 Annotation 规范、Annotation 语法与 Annotation Tour。

Norm 0.25