TermiNexus
61f074ffa4
fix(tpc): Name 注解路径的类/枚举同名判据补齐 _struct_sha1_map
a 编译器缺陷:HandlesTypeMerge._GetCTypeInfoInternal 的 ast.Name 分支在「类名与
枚举成员同名」时只查 Gen.structs,漏了 Gen._struct_sha1_map(跨模块类只登记了
类名→模块 sha1、本模块尚未建出结构体)。同文件的 Attribute 分支(L241-269)与
HandlesClassDef._HasClassDefinition、TypeConvert._type_str_to_llvm_base 的
同一判据都是「structs 或 _struct_sha1_map」,Name 路径独缺,属判据分裂。
现场:rawptr[Constant](includes/ast/exprs.vp:59 accessor,class Constant 声明在
同文件更后面)在导入侧解析时,先命中平坦符号表里的枚举成员 Constant: t.State
(ast/base.vp)→ 返回枚举 → 与 t.CPtr 合并后经 _ctype_to_llvm 的 IsEnum 分支
(枚举名未登记 ⇒ 宽度退化为 i32)得 i32*,与调用点实参 %"<exprs_sha1>.Constant"*
分裂 → FuncGen._adjust_args 报「指针隐式转换已禁止」。
补齐后 BaseType=CStruct(Constant),_get_or_create_struct 按 _struct_sha1_map 拼出
"<exprs_sha1>.Constant"(BaseGen.py:527-528),与声明端/实参同一结构体对象。
2026-09-28 19:40:06 +08:00
..
2026-09-28 19:40:06 +08:00
2026-09-28 16:48:58 +08:00
2026-09-28 13:57:04 +08:00
2026-07-18 19:25:40 +08:00
2026-08-17 09:36:38 +08:00
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-07-18 19:25:40 +08:00
2026-09-28 18:25:57 +08:00
2026-07-30 16:33:56 +08:00
2026-09-26 19:27:22 +08:00
2026-09-26 19:27:22 +08:00
2026-09-28 18:14:45 +08:00
2026-07-18 19:25:40 +08:00
2026-09-26 19:27:22 +08:00
2026-09-28 18:14:45 +08:00
2026-09-28 18:25:57 +08:00
2026-09-28 13:49:28 +08:00
2026-07-18 19:25:40 +08:00
2026-09-26 19:27:22 +08:00
2026-07-18 19:25:40 +08:00
2026-07-22 21:55:36 +08:00