solidity/test/libsolidity/semanticTests/array/dynamic_multi_array_cleanup.sol

27 lines
622 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
// ----
// storageEmpty -> 1
// fill() -> 8
// gas irOptimized: 168980
// gas legacy: 165456
// gas legacyOptimized: 164387
// storageEmpty -> 0
// clear() ->
// storageEmpty -> 1