solidity/test/libsolidity/semanticTests/functionTypes/pass_function_types_externally.sol

24 lines
491 B
Solidity

contract C {
function f(uint256 x) public returns (uint256) {
return this.eval(this.g, x);
}
function f2(uint256 x) public returns (uint256) {
return eval(this.g, x);
}
function eval(function(uint) external returns (uint) x, uint a) public returns (uint) {
return x(a);
}
function g(uint256 x) public returns (uint256) {
return x + 1;
}
}
// ====
// compileViaYul: also
// ----
// f(uint256): 7 -> 8
// f2(uint256): 7 -> 8