solidity/test/libsolidity/semanticTests/structs/struct_reference.sol

27 lines
655 B
Solidity
Raw Normal View History

2019-07-08 14:04:52 +00:00
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;
}
}
// ====
// compileViaYul: also
2019-07-08 14:04:52 +00:00
// ----
// check() -> false
// set() ->
// check() -> true