Files
TransPyC/lib/core
TermiNexus 0392ccdea0 fix(tpc): fail-fast 报文补「属性基址取证事实」,属性读返回 None 不再靠反推
类别:a(编译器缺陷 —— fail-fast 报文缺取证事实,无法一眼定位根因)

现象:HandlesBase._RaiseUnresolvedExpr 与 HandlesExprCall._RequireArgValue 在
「属性读取值失败」时只报 Node 形态(Attribute),报错点与真因相隔数层调用,
需要人工从 Gen.var_struct_class / Gen.structs / Gen.class_members 反推。

改动:
1. HandlesBase 抽出公开方法 _DescribeAttrBase(Gen, Node) -> str(原 _RaiseUnresolvedExpr
   内联代码抽出,行为不变),对两类基座给事实:
   - Name 基座:var_struct_class / global_struct_class / alloca 类型 / 是否命中
     Gen.structs / class_members 字段数与字段名单(前 12)。
   - Call(func=BinOp(BitOr)) 强转基座:联合基类名 + 短名是否命中 Gen.structs +
     字段数,并显式标注「强转基座本应走 _FailFastAttrCallBase 详细报文,此处仍是本条
     ⇒ 那条 fail-fast 未触发」,把「另一处缺口」这一事实直接写进报文。
2. _RaiseUnresolvedExpr 改调 _DescribeAttrBase(删除内联重复代码)。
3. HandlesExprCall._RequireArgValue 在实参是 Attribute 时追加同一份基址诊断
   (与 HandlesBase 共用,保证两处口径逐字一致)。

不改变任何判定逻辑,仅补取证事实。
2026-09-29 17:40:23 +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-07-18 19:25:40 +08:00