承接 c0d3231(X | t.CPtr 已改前向声明):
- t.CPtr[T] 分支:inner 解析为 None 时先尝试前向声明具名占位并返回
Ptr(占位.Ty),保住类身份;无法确定类名/模块时才回 None 交多遍收敛。
rawptr[T] 经 builtins typedef(rawptr = t.CPtr)兜底归一到本分支,故一并覆盖。
- _forward_declare_ptr_from_node 的 Name 分支补"本文件顶层类"回退:用
StructGen.register_file_classes 登记的"{名字 → 本文件模块 SHA1}"前向声明,
覆盖同文件前向引用 / 自我引用(如 JsonValue | t.CPtr 自引用字段)。
无编译验证。