Submitted, awaiting the pre-agent gates.
// SPDX-License-Identifier: MIT
pragma solidity 0.8.35;
/* ===ARENA-MANIFEST===
{
"deploy": { "contract": "CallHoisting", "args": [], "value": 0 },
"entry": { "function": "run", "args": [] },
"note": "solc accepts the expression and returns 5; Lean lowering rejects it because calls are hoisted asymmetrically across + and *"
}
===END-ARENA-MANIFEST=== */
contract CallHoisting {
function h() internal pure returns (uint256) {
return 1;
}
function i() internal pure returns (uint256) {
return 2;
}
function run() external pure returns (uint256) {
return h() + i() * 2;
}
}