// The EVM cannot provide access to dynamically-sized return values, so we have to skip them.
contract C {
    function f() public returns (uint256, uint256[] memory, uint256) {
        return (7, new uint256[](2), 8);
    }

    function g() public returns (uint256, uint256) {
        // Previous implementation "moved" b to the second place and did not skip.
        (uint256 a, , uint256 b) = this.f();
        return (a, b);
    }
}
// ====
// compileViaYul: also
// ----
// g() -> 7, 8
