fix(test): FakeDuckTest 的 3 个 list 变量注解补上指针(list[str] → list[str] | t.CPtr)

【类别 c 源码违规(注解漏指针)】与 includes/_fakeduck.vp 的 split 返回注解配套:
split 返回的是堆对象指针(list[T] 一律以指针传递),故接收变量也须按指针声明。

  Test/FakeDuckTest/App/main.vp:260  list_s: list[str] → list[str] | t.CPtr
  Test/FakeDuckTest/App/main.vp:274  list_a: list[str] → list[str] | t.CPtr
  Test/FakeDuckTest/App/main.vp:275  list_b: list[str] → list[str] | t.CPtr

行为不变:len(list_s) / zip(list_a, list_b) / for-in 都作用在对象上做方法分派,
指针与值写法在这些用法下等价;改注解只为与新判据(指针↔非基本类型值不隐式互转)自洽。
全仓 list 型声明共 383 处用指针写法,本处 3 处是仅剩的值类型写法。
This commit is contained in:
TermiNexus committed 2026-09-29 16:00:50 +08:00
1 parent 0078102eca
commit cdc6e8bf78
1 file changed
+3 -3
+3 -3
View File
@@ -257,7 +257,7 @@ def main() -> CInt | CExport:
testcheck.check(t.CInt(w_buddy2) != 0, "with multi inject OK", "with multi inject FAIL")
test_s: str = "www.gvsds.com"
list_s: list[str] = test_s.split('.')
list_s: list[str] | t.CPtr = test_s.split('.')
# 迭代器测试: for idx, i in zip(range(len(list_s)), list_s)
iter_count: int = 0
for iter_idx, i in zip(range(len(list_s)), list_s):
@@ -271,8 +271,8 @@ def main() -> CInt | CExport:
testcheck.section("Test 10: zip(list, list) 元组解包")
za: str = "a,b,c"
zb: str = "1,2,3"
list_a: list[str] = za.split(',')
list_b: list[str] = zb.split(',')
list_a: list[str] | t.CPtr = za.split(',')
list_b: list[str] | t.CPtr = zb.split(',')
zip_idx: int = 0
for ca, cb in zip(list_a, list_b):
stdio.printf("zip[%d]: '%s'='%s'\n", zip_idx, ca, cb)