You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 64f132d
Browse filesBrowse the repository at this point in the historyBrowse files
Core: Augmented assignment to a map-lookup local rebinds it, as v = v + 1 does
`v = m.lookup(k); v += 1` was rejected with "augmented assignment needs
an integer target, got i64*": the Name branch took the local's slot type,
the pointer, as the target type. `v = v + 1` already compiles, and to a
rebinding: the value is read through the pointer, null-checked, and the
local is pointed at its spare `v_tmp` slot holding the result; the map is
not written. `v += 1` now does the same. The read is get_typed_operand's,
so the operation takes the map's declared value type and sign (u64 >>= is
an lshr); the write is a rebind_map_value_local helper, now shared with
plain assignment so the two cannot drift apart. A struct-valued lookup
local is refused with a pointer to its fields.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0 commit comments