solidity/test/libsolidity/syntaxTests/tupleAssignments/err_multiple_storage_storage_copies_fill_left.sol

11 lines
641 B
Solidity
Raw Normal View History

2018-05-04 14:10:25 +00:00
contract C {
struct S { uint a; uint b; }
S x; S y;
function f() public {
(,x, y) = (1, 2, y, x);
}
}
// ----
2018-07-10 10:14:20 +00:00
// TypeError: (89-101): Type tuple(int_const 1,int_const 2,struct C.S storage ref,struct C.S storage ref) is not implicitly convertible to expected type tuple(,struct C.S storage ref,struct C.S storage ref).
2018-05-04 14:10:25 +00:00
// Warning: (79-101): This assignment performs two copies to storage. Since storage copies do not first copy to a temporary location, one of them might be overwritten before the second is executed and thus may have unexpected effects. It is safer to perform the copies separately or assign to storage pointers first.