TermiNexus
a7a00a23d5
fix(vipeye-internal): [SIZE]T 支持整型常量运算;const 指针只读(解引用可读不可写)
- [SIZE]T 的 SIZE 是值表达式,允许任意整型常量运算(如
[MAX_VOLUMES * MAX_PARTITIONS]uint8 / [N - 1]uint8 / [1 << 3]uint8)。
parser:解析 SIZE 期间清除 _isParsingTypeAnnotation,否则 Viper 的
「星号是指针后缀 + 注解中停止解析」分支会吞掉 '*',误报「[ 未关闭」与
「类型表达式中不允许使用解包运算符」。
evaluator:operations 的 TypeExpression 分支新增整型常量算术放行
(isViperIntegerConstantArithmetic),此前注释已写明但代码未实现,
t.CArray[T, MAX_ORDER + 1] 同样受益;类名相加仍报 binaryOperationNotAllowed。
- const 指针(lfn: const str = CConst | str)只读:解引用读允许
(*lfn / lfn[0] → char,getTypeOfViperDeref 跳过 C 修饰符子类型,
不再误报 类型"const str"不支持运算符"*"),解引用赋值报新诊断
viperConstDerefAssignment(*lfn = c);非 const 指针 *buf = c 仍合法。
- 新增 viperBracketArrayAndConstPtr.test.ts(3 用例);全量 jest 800 → 803 通过。
2026-09-27 13:44:30 +08:00
..
2026-09-27 12:49:25 +08:00
2026-09-27 12:50:02 +08:00
2026-09-27 13:44:30 +08:00
2026-08-07 03:33:29 +08:00
2026-09-27 13:44:30 +08:00