mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Test case for internal dispatch with functions that have arguments that take up multiple slots
This commit is contained in:
parent
b0ae85b6b0
commit
16e80b7bcd
@ -0,0 +1,31 @@
|
||||
contract C {
|
||||
function m(
|
||||
function() external returns (uint) a,
|
||||
function() external returns (uint) b
|
||||
) internal returns (function() external returns (uint)) {
|
||||
return a;
|
||||
}
|
||||
|
||||
function s(uint a, uint b) internal returns (uint) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
function foo() external returns (uint) {
|
||||
return 6;
|
||||
}
|
||||
|
||||
function test() public returns (uint) {
|
||||
function(uint, uint) internal returns (uint) single_slot_function = s;
|
||||
|
||||
function(
|
||||
function() external returns (uint),
|
||||
function() external returns (uint)
|
||||
) internal returns (function() external returns (uint)) multi_slot_function = m;
|
||||
|
||||
return multi_slot_function(this.foo, this.foo)() + single_slot_function(5, 1);
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// test() -> 12
|
Loading…
Reference in New Issue
Block a user