solidity/test/libsolidity/semanticTests/array/dynamic_multi_array_cleanup.sol
2021-04-08 18:37:24 +02:00

27 lines
616 B
Solidity

contract c {
struct s { uint[][] d; }
s[] data;
function fill() public returns (uint) {
while (data.length < 3)
data.push();
while (data[2].d.length < 4)
data[2].d.push();
while (data[2].d[3].length < 5)
data[2].d[3].push();
data[2].d[3][4] = 8;
return data[2].d[3][4];
}
function clear() public { delete data; }
}
// ====
// compileViaYul: also
// ----
// storage: empty
// fill() -> 8
// gas irOptimized: 170087
// gas legacy: 165456
// gas legacyOptimized: 164387
// storage: nonempty
// clear() ->
// storage: empty