Fix .push() not considering external functions

This commit is contained in:
Marenz
2022-01-18 16:30:31 +01:00
parent a07b3ec70f
commit 89d6bff72a
3 changed files with 30 additions and 1 deletions
@@ -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