solidity/test/libsolidity/semanticTests/structs/structs.sol
2023-08-07 17:33:16 +02:00

37 lines
942 B
Solidity

contract test {
struct s1 {
uint8 x;
bool y;
}
struct s2 {
uint32 z;
s1 s1data;
mapping(uint8 => s2) recursive;
}
s2 data;
function check() public returns (bool ok) {
return data.z == 1 && data.s1data.x == 2 &&
data.s1data.y == true &&
data.recursive[3].recursive[4].z == 5 &&
data.recursive[4].recursive[3].z == 6 &&
data.recursive[0].s1data.y == false &&
data.recursive[4].z == 9;
}
function set() public {
data.z = 1;
data.s1data.x = 2;
data.s1data.y = true;
data.recursive[3].recursive[4].z = 5;
data.recursive[4].recursive[3].z = 6;
data.recursive[0].s1data.y = false;
data.recursive[4].z = 9;
}
}
// ----
// check() -> false
// set() ->
// gas irOptimized: 134417
// gas legacy: 135246
// gas legacyOptimized: 134062
// check() -> true