Skip to content

v0.1.372 — tuple concatenation a + b (PMAT-673)

Choose a tag to compare

@noahgift noahgift released this 15 Jun 15:12
· 38 commits to main since this release
3109129

Capability / correctness (PMAT-673): a + b over two tuples now transpiles as concatenation ((1, 2) + (3, 4)(1, 2, 3, 4)). Rust tuples have no +, so the old path fell through to the i64-arith lowering — the result mis-typed as I64 and was rejected ("body produces I64") or would have emitted (a).checked_add(b) (E0599). Fixed by building a fresh tuple of all fields of both operands (via TupleIndex over the original operand, so it type-infers correctly for any element type). Restricted to side-effect-free operands (a name or tuple literal); a call-result operand rejects cleanly rather than re-evaluating it per field. Found by the HUNT-V5 differential hunt; verified vs python3 (int/str tuples, chained a + b + c). Extends the tuple cluster. 430 e2e fixtures.