TermiNexus
c8817cacb1
fix(vipeye-internal): CArray 元素访问解析出元素类型(成员可高亮)
- kbd_buf: [KBD_BUF_SIZE]usb_kbd_event 的 kbd_buf[i].modifier 原先报
「无法解析类型上的成员“modifier”访问」且该成员拿不到语义 token(纯白)
- 根因:t.vpi 的 CArray 是 Generic[T, N] + __getitem__ -> T,但 Viper 侧
TypeVar(...) 不产出可替换类型变量(类型参数落到合成参数 __P0/__P1),
返回类型永远具体化不了 → 下标恒为 Unknown
- 修法:getTypeOfIndexedObjectOrClass 新增 Viper 分支,按 C 语义直接取
CArray 第一个类型实参(与 CPtr 分支读 priv.typeArgs[0] 同法),
`[SIZE]T` 与显式 t.CArray[T, N] 两种写法都覆盖
- 回归用例 +1(元素类型 + modifier 语义 token),jest 808 -> 809