Files
ViperC/App
TermiNexus 7b0c05b70b fix(TypeGenResolve): 类名前缀校正为真定义模块,消 ast.AST(包) 与裸 AST 的前缀分裂
规则 4b 对 ast.AST(模块限定属名)走"模块名→SHA1"表,对包名回退到 ast/__init__.vp 的 sha1 1abcd5277fa442de(re-export 模块),而裸名 AST(stmts.vp 字段注解)经规则 5 后缀匹配得到真定义模块 d1ed020479454541(ast/base.vp)⇒ list[1abcd….AST*] 与 list[d1ed….AST*] 两个特化体并存,main.vp:63 classify_list(ifn.orelse,…) 报"指针隐式转指针已禁止"。新增 _class_true_def_sha1:在 cand 名下精确找登记项(find_struct_by_module,不按名回落,避免同名类跨模块误改),取其结构体 IR 名 %"<sha>.{类名}" 的前缀作真定义模块(不能取 entry.ModuleSha1——包 re-export 的别名 entry 记的是包 sha1、Ty 复用源 entry);无证据或前缀相同则原样返回 cand(已一致情形逐字不变)。接线:规则 4a/4b/5 各一行。
2026-09-30 22:16:15 +08:00
..