fix(tpc): rowptr[X] 字段 element_class 登记补短名模糊扫描,修 Unknown module 误报
This commit is contained in:
1 parent
cc2f5d34eb
commit
9257dd841f
4 files changed
+30
-2
No files matched your search
@@ -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] = {}
|
||||
|
||||
@@ -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] = {}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user