2020-03-09 21:14:07 +00:00
|
|
|
contract C {
|
|
|
|
uint256[] data;
|
|
|
|
uint256[] m_c;
|
|
|
|
|
|
|
|
function g() internal returns (uint256 a, uint256 b, uint256[] storage c) {
|
|
|
|
return (1, 2, data);
|
|
|
|
}
|
|
|
|
|
|
|
|
function h() external returns (uint256 a, uint256 b) {
|
|
|
|
return (5, 6);
|
|
|
|
}
|
|
|
|
|
|
|
|
function f() public returns (uint256) {
|
|
|
|
data.push(3);
|
|
|
|
uint256 a;
|
|
|
|
uint256 b;
|
|
|
|
(a, b) = this.h();
|
|
|
|
if (a != 5 || b != 6) return 1;
|
|
|
|
uint256[] storage c = m_c;
|
|
|
|
(a, b, c) = g();
|
|
|
|
if (a != 1 || b != 2 || c[0] != 3) return 2;
|
|
|
|
(a, b) = (b, a);
|
|
|
|
if (a != 2 || b != 1) return 3;
|
|
|
|
(a, , b, , ) = (8, 9, 10, 11, 12);
|
|
|
|
if (a != 8 || b != 10) return 4;
|
|
|
|
}
|
|
|
|
}
|
2020-04-17 20:24:33 +00:00
|
|
|
// ====
|
|
|
|
// compileViaYul: also
|
2020-03-09 21:14:07 +00:00
|
|
|
// ----
|
|
|
|
// f() -> 0
|