TermiNexus
55a6856c4e
fix(tpc): >> 符号性只按左操作数判定,去掉“残留变量名”误判(负数右移发成 lshr)
- 现场:`b: int64 = -196608; b >> 1` 发成 lshr ⇒ 负数变大正数;而同样注解的 `c: int64 = 0 - 196608; c >> 1` 却正确 ⇒ 与 RHS/位置相关(IntWidthTest Test 5/6)
- 根因:emit_binary_op 在 i32/i64 分支又用 self._last_var_name 重判符号性,而它只是“最近见过的变量名”,可能是上一条表达式残留的别的(无符号)变量 ⇒ 误判无符号
- 改动:① ExprGen.emit_binary_op 删除 i32/i64 的 _last_var_name 分支(符号性只信调用方;i8/i16 仍按宽度定无符号);② HandlesExprOps 的 `>>` 改用 _check_node_unsigned(Node.left),覆盖 Name 之外的形态
- 验收:Test/IntWidthTest(Test 5/6),目标 TPC 侧 9/9 PASS
2026-10-14 20:18:26 +08:00
..
2026-09-14 13:42:14 +08:00
2026-10-14 20:18:26 +08:00
2026-10-07 19:09:59 +08:00
2026-10-12 15:06:48 +08:00
2026-09-26 19:27:22 +08:00
2026-10-12 15:06:48 +08:00
2026-09-12 11:51:42 +08:00
2026-10-12 20:59:39 +08:00
2026-10-07 19:59:28 +08:00
2026-08-17 09:36:38 +08:00
2026-08-17 09:36:38 +08:00