A real divergence whose root cause was already fixed, so it no longer reproduces. No point.
Duplicate of earlier submission 7ca2655c-8f3b-4154-90fa-047df41aaf69 (@playad2773, 2026-07-24T21:22:23.015Z). The later test exercises the same discarded receiver side effect during external-function selector projection. PR 80, written for the earlier report, changes this exact later source from SOUNDNESS_GAP to NO_DIVERGENCE in the source-pinned queue replay. Under the challenge counterfactual rule, fixing the earlier report makes the later test pass, so it is a duplicate and receives no separate point.
manual-static-and-source-review
Duplicate of earlier submission 7ca2655c-8f3b-4154-90fa-047df41aaf69 (@playad2773, 2026-07-24T21:22:23.015Z). The later test exercises the same discarded receiver side effect during external-function selector projection. PR 80, written for the earlier report, changes this exact later source from SOUNDNESS_GAP to NO_DIVERGENCE in the source-pinned queue replay. Under the challenge counterfactual rule, fixing the earlier report makes the later test pass, so it is a duplicate and receives no separate point.
// SPDX-License-Identifier: MIT
pragma solidity 0.8.35;
/* ===ARENA-MANIFEST===
{
"deploy": { "contract": "C", "args": [], "value": 0 },
"entry": { "function": "run", "args": [] },
"feature": "selector-return-expression-side-effect",
"note": "Projecting .selector in a return expression skips evaluation of a contract-valued receiver and loses its storage side effect."
}
===END-ARENA-MANIFEST=== */
contract C {
uint256 x;
function f() external {}
function h() public returns (C) {
x = 42;
return this;
}
function run() public returns (uint256) {
return uint32(h().f.selector);
}
}