chore(gentype): resolve_generic_type_name 加 T 替换断点,定位 list[str].get 类型不匹配

8fbba(ForHandleIter.vp 的 list[str].get)声明返回 i8* 但函数体
ret Value*——get 方法体里 T|t.CPtr 的 T 疑似被替换成 Value(泛型
上下文 GenericTypeArgs 被嵌套特化污染)。打印 T 替换结果确认。
This commit is contained in:
TermiNexus committed 2026-08-18 09:43:10 +08:00
1 parent 8db5dc63a5
commit 5ec6a3baef
1 file changed
+9 -2
+9 -2
View File
@@ -227,6 +227,7 @@ class TypeGenBase:
"""
if name is None:
return name
rv_d: str = name
if self.GenericTpNames is not None and self.GenericTypeArgs is not None:
rg_n: t.CSizeT = len(self.GenericTpNames)
rg_i: t.CSizeT
@@ -235,5 +236,11 @@ class TypeGenBase:
if rg_tpn is not None and string.strcmp(name, rg_tpn) == 0:
rg_ta: str = self.GenericTypeArgs.get(rg_i)
if rg_ta is not None:
return rg_ta
return name
rv_d = rg_ta
break
# 诊断(8fbba list[str].get 返回类型不匹配定位):T 替换结果。
# list[str] 特化时 T 应替换为 str;若替换为 Value 则泛型上下文
# GenericTypeArgs 被嵌套特化污染。
if string.strcmp(name, "T") == 0:
stdio.printf("[DIAG] resolve_generic_type_name: T -> %s\n", rv_d)
return rv_d