solidity/test/libsolidity/semanticTests/structs/struct_reference.sol
2022-05-19 20:23:28 +02:00

25 lines
624 B
Solidity

contract test {
struct s2 {
uint32 z;
mapping(uint8 => s2) recursive;
}
s2 data;
function check() public returns (bool ok) {
return data.z == 2 &&
data.recursive[0].z == 3 &&
data.recursive[0].recursive[1].z == 0 &&
data.recursive[0].recursive[0].z == 1;
}
function set() public {
data.z = 2;
mapping(uint8 => s2) storage map = data.recursive;
s2 storage inner = map[0];
inner.z = 3;
inner.recursive[0].z = inner.recursive[1].z + 1;
}
}
// ----
// check() -> false
// set() ->
// check() -> true