agra
b322dcfe61
fix: type-safe stores + Any unbox/eq; finish multi-return deferrals
...
Type-checking gaps (segfault/corruption → compile errors):
- 0197: reject a store into an annotated slot whose value has no modeled
coercion AND a different byte width (a 16-byte string into a 4-byte i32
overran the slot and segfaulted). New checkAssignable / noneReinterpretIsUnsafe
(coerce.zig, width via the LLVM-accurate typeSizeBytes) wired into every store
site: var/const-decl, single + multi assignment (identifier/field/index/
element/deref), named-return defaults. Same-width reinterpretations (*T→[*]T,
i64→isize, fn-ref) and explicit xx/cast stay allowed; cascades suppressed via
externalErrorsExist. Examples 1205, 1206.
- 0198: an implicit `Any → T` unbox is now a compile error (it blindly
reinterpreted the boxed payload — silent garbage for a wrong scalar, a segfault
for an aggregate). xx and compiler-generated match/pack unboxes are unaffected.
Example 1207.
- 0199: `Any == <concrete>` (one operand Any) aborted the LLVM verifier — the
comparison arm now fires when either operand is Any, boxing the concrete side
first. Example 0654.
Multi-return deferrals (PLAN-MULTIRET #6 + named-order + D3 + generic):
- Reorder named return elements by name instead of requiring slot order; error on
unknown/duplicate/missing (value-only AND full-failable-tuple forms). Examples
0210, 0214.
- Reject a bare-paren (A, B) multi-return signature in generic-arg position
(return-position-only). Example 0215.
- Multi-return closure types / lambda literals work via the reused tuple
machinery (destructure, single-bind+field, lambda arg). Example 0216.
- Generic multi-return: positional works (0217); 0200: the named-slot
implicit-return form now works for generic free fns + struct methods —
monomorphizeFunction now calls bindNamedReturnSlots. Example 0218.
readme.md documents the annotated-store coercion rule; CHECKPOINT-MULTIRET.md
updated. Full corpus green (850/0).
2026-06-27 17:28:27 +03:00
..
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-22 21:54:12 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-25 17:53:57 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-22 11:55:19 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-21 14:41:34 +03:00
2026-06-22 09:45:17 +03:00
2026-06-22 09:45:17 +03:00
2026-06-22 09:45:17 +03:00
2026-06-22 10:15:18 +03:00
2026-06-22 10:15:18 +03:00
2026-06-22 10:15:18 +03:00
2026-06-22 17:55:18 +03:00
2026-06-22 17:55:18 +03:00
2026-06-22 17:55:18 +03:00
2026-06-22 21:04:05 +03:00
2026-06-22 21:04:05 +03:00
2026-06-22 21:04:05 +03:00
2026-06-25 20:35:02 +03:00
2026-06-25 20:35:02 +03:00
2026-06-25 20:35:02 +03:00
2026-06-23 00:25:28 +03:00
2026-06-23 00:25:28 +03:00
2026-06-23 00:25:28 +03:00
2026-06-23 02:13:30 +03:00
2026-06-23 02:13:30 +03:00
2026-06-23 02:13:30 +03:00
2026-06-23 02:13:30 +03:00
2026-06-23 02:13:30 +03:00
2026-06-23 02:13:30 +03:00
2026-06-23 02:47:51 +03:00
2026-06-23 02:47:51 +03:00
2026-06-23 02:47:51 +03:00
2026-06-23 03:31:58 +03:00
2026-06-23 03:31:58 +03:00
2026-06-23 03:31:58 +03:00
2026-06-23 08:48:31 +03:00
2026-06-23 08:48:31 +03:00
2026-06-23 08:48:31 +03:00
2026-06-23 16:16:47 +03:00
2026-06-23 16:16:47 +03:00
2026-06-23 16:16:47 +03:00
2026-06-23 17:29:12 +03:00
2026-06-23 17:29:12 +03:00
2026-06-23 17:29:12 +03:00
2026-06-23 19:29:11 +03:00
2026-06-23 19:29:11 +03:00
2026-06-23 19:29:11 +03:00
2026-06-27 17:28:27 +03:00
2026-06-27 17:28:27 +03:00
2026-06-27 17:28:27 +03:00
2026-06-27 17:28:27 +03:00
2026-06-27 17:28:27 +03:00
2026-06-27 17:28:27 +03:00
2026-06-27 17:28:27 +03:00
2026-06-27 17:28:27 +03:00
2026-06-27 17:28:27 +03:00