mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Fix .push() not considering external functions
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
contract C {
|
||||
struct Struct {
|
||||
function () external el;
|
||||
}
|
||||
Struct[] array;
|
||||
int externalCalled = 0;
|
||||
|
||||
function ext() external {
|
||||
externalCalled++;
|
||||
}
|
||||
|
||||
function f() public {
|
||||
array.push(Struct(this.ext));
|
||||
array.push(array[0]);
|
||||
|
||||
array[0].el();
|
||||
array[1].el();
|
||||
|
||||
assert(externalCalled == 2);
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// f() ->
|
||||
// gas irOptimized: 113142
|
||||
// gas legacy: 112937
|
||||
// gas legacyOptimized: 112608
|
||||
Reference in New Issue
Block a user