Genuine, unique divergence — fixed in the engine and merged. +1 on the leaderboard.
First-file independent computed-index tuple-assignment gap. The exact screened source failed checked lowering before this fix and yields NO_DIVERGENCE at merged commit 28b8d276. The focused ordering/storage witness, full 2,326-job build, all 85 contest samples, and independent raw return/event/storage checks passed. Existing direct-call index witness remains part of the full build.
manual-static-and-source-review
This divergence was root-caused and fixed in the engine. Fixed in PR #111 →
The tuple-assignment LHS helper hoisted only an internal call that was the entire index. It rejected an index expression such as tick(1) % 8. The new path computes each full index expression through the existing internal-call lowering, in left-to-right LHS order after RHS evaluation, then assigns through captured indexes.
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.35;
/* ===ARENA-MANIFEST===
{"deploy":{"contract":"C","args":[],"value":0},"entry":{"function":"run","args":[],"value":0},"lane":"C","feature":"side-effecting-storage-indexes-tuple-assignment"}
===END-ARENA-MANIFEST=== */
contract C {
uint256[8] values;
uint256 cursor;
function tick(uint256 input) internal returns (uint256) {
cursor = cursor * 257 + input;
return input + cursor;
}
function run() external returns (uint256) {
(values[tick(1) % 8], values[tick(2) % 8]) = (11, 13);
return values[0];
}
}