mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-08 08:44:37 +08:00
The keyed and tuple-index dispatches read the receiver and key inside a discard statement, which re-evaluated an effectful receiver expression (an `in` test over a call result) and ignored a key call that rebinds the receiver binding. Both now settle the receiver into a hidden local before the key evaluates, and the inherited-key probe returns its answer directly instead of wrapping it in a discard statement. Narrow the union field write's no-static-supertype path to unions that have a dynamic arm, so a union of unrelated static storage types keeps its refusal, matching the read path; a runtime-keyed spread into a record is covered by the checked extraction test instead of the refusal table. Review threads: - 4403396631 inherited-key probe evaluated an effectful receiver twice - 4403396650 key/index calls that reassign the receiver binding Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>