interface I {
    function f(uint[] calldata) external pure;
}
contract A is I {
    function f(uint[] memory) public pure {}
}
contract C {
    function f() public {
        I i = I(new A());
        i.f(new uint[](1));
    }
}
// ----
