fix(tpc): rowptr[X] 字段 element_class 登记补短名模糊扫描,修 Unknown module 误报

This commit is contained in:
TermiNexus committed 2026-09-12 11:24:49 +08:00
1 parent cc2f5d34eb
commit 9257dd841f
4 files changed
+30 -2

No files matched your search

+15 -1
View File
@@ -874,7 +874,21 @@ class ClassHandle(BaseHandle):
_ec_target_c = _slc_name_c
else:
_st_sha1_c: str | None = (getattr(Gen, 'class_sha1_map', {}) or {}).get(_slc_name_c)
_ec_target_c = f'{_st_sha1_c}.{_slc_name_c}' if _st_sha1_c and f'{_st_sha1_c}.{_slc_name_c}' in Gen.structs else None
if _st_sha1_c and f'{_st_sha1_c}.{_slc_name_c}' in Gen.structs:
_ec_target_c = f'{_st_sha1_c}.{_slc_name_c}'
else:
# 短名模糊扫描(对齐 HandlesAnnAssign 变量侧
# 补偿 L597-602):跨模块 `mod.Class` 形态的
# rowptr[Class] 字段在 class_sha1_map 尚无该短名
# 时上面两路全 miss → element_class 静默缺失 →
# 字段方法调用(factory.PermPool.alloc)链尾类名
# 丢失 → TPC 调用分派返回 i32 0 哨兵 → 误报
# "Unknown module: ...PermPool"。
for _ec_k_c in Gen.structs:
_ec_short_c: str = _ec_k_c.split('.')[-1] if '.' in _ec_k_c else _ec_k_c
if _ec_short_c == _slc_name_c:
_ec_target_c = _ec_k_c
break
if _ec_target_c:
if ClassName not in Gen.class_member_element_class:
Gen.class_member_element_class[ClassName] = {}
+15 -1
View File
@@ -1864,7 +1864,21 @@ class ImportHandle(BaseHandle):
_ec_target_s = _slc_name_s
else:
_st_sha1_s: str | None = (getattr(Gen, 'class_sha1_map', {}) or {}).get(_slc_name_s)
_ec_target_s = f'{_st_sha1_s}.{_slc_name_s}' if _st_sha1_s and f'{_st_sha1_s}.{_slc_name_s}' in Gen.structs else None
if _st_sha1_s and f'{_st_sha1_s}.{_slc_name_s}' in Gen.structs:
_ec_target_s = f'{_st_sha1_s}.{_slc_name_s}'
else:
# 短名模糊扫描(对齐 HandlesAnnAssign 变量侧
# 补偿 L597-602):跨模块 `mod.Class` 形态的
# rowptr[Class] 字段在 class_sha1_map 尚无该短名
# 时上面两路全 miss → element_class 静默缺失 →
# 字段方法调用(factory.PermPool.alloc)链尾类名
# 丢失 → TPC 调用分派返回 i32 0 哨兵 → 误报
# "Unknown module: ...PermPool"。
for _ec_k_s in Gen.structs:
_ec_short_s: str = _ec_k_s.split('.')[-1] if '.' in _ec_k_s else _ec_k_s
if _ec_short_s == _slc_name_s:
_ec_target_s = _ec_k_s
break
if _ec_target_s:
if ClassName not in Gen.class_member_element_class:
Gen.class_member_element_class[ClassName] = {}