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 -> true // fill() -> 8 // storage_empty -> false // clear() -> // storage_empty -> true