agra
a8fbded567
fix(0129): logical not is truthiness-aware, not a bit flip
...
The unary .not arm emitted bool_not (LLVM bitwise Not) for every
operand. Correct on i1; on an error binding — an error-set value, u32
tag at the LLVM level — a bitwise not of a nonzero tag stays nonzero,
so 'if !e' held even on a SET error and its branch read the
uninitialized success value (real segfault in the distribution repo's
sqlite tests). Plain integers had the same hole ('!7 ' was '~7').
Now: bool keeps bool_not; integers and error-set operands lower as the
truthiness complement (cmp_eq against a typed zero); anything else is
diagnosed instead of silently bit-flipped.
Regression: examples/1057 (set error: !e must not hold; success: !e
holds with a real value; integer truthiness) + examples/1171 (!"text"
diagnosed); both FAIL pre-fix. zig build test 426/426;
tests/run_examples.sh 600/600.
2026-06-12 13:36:54 +03:00
..
2026-06-01 19:38:09 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-05-27 21:29:08 +03:00
2026-05-27 21:44:39 +03:00
2026-05-30 01:16:09 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-01 16:47:51 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-04 02:00:13 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-05 01:32:35 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-04 17:04:41 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-05 20:48:49 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 12:35:20 +03:00
2026-06-05 23:33:22 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-06 16:41:01 +03:00
2026-06-12 09:31:53 +03:00
2026-06-09 22:16:47 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 09:31:53 +03:00
2026-06-12 13:21:19 +03:00
2026-06-12 13:36:54 +03:00