mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
50 lines
1.3 KiB
Solidity
50 lines
1.3 KiB
Solidity
contract C {
|
|
function g() public returns (uint256 a, uint256 b, uint256 c) {
|
|
a = 1;
|
|
b = 2;
|
|
c = 3;
|
|
}
|
|
|
|
function h() public returns (uint256 a, uint256 b, uint256 c, uint256 d) {
|
|
a = 1;
|
|
b = 2;
|
|
c = 3;
|
|
d = 4;
|
|
}
|
|
|
|
function f1() public returns (bool) {
|
|
(uint256 x, uint256 y, uint256 z) = g();
|
|
if (x != 1 || y != 2 || z != 3) return false;
|
|
(, uint256 a, ) = g();
|
|
if (a != 2) return false;
|
|
(uint256 b, , ) = g();
|
|
if (b != 1) return false;
|
|
(, , uint256 c) = g();
|
|
if (c != 3) return false;
|
|
return true;
|
|
}
|
|
|
|
function f2() public returns (bool) {
|
|
(uint256 a1, , uint256 a3, ) = h();
|
|
if (a1 != 1 || a3 != 3) return false;
|
|
(uint256 b1, uint256 b2, , ) = h();
|
|
if (b1 != 1 || b2 != 2) return false;
|
|
(, uint256 c2, uint256 c3, ) = h();
|
|
if (c2 != 2 || c3 != 3) return false;
|
|
(, , uint256 d3, uint256 d4) = h();
|
|
if (d3 != 3 || d4 != 4) return false;
|
|
(uint256 e1, , uint256 e3, uint256 e4) = h();
|
|
if (e1 != 1 || e3 != 3 || e4 != 4) return false;
|
|
return true;
|
|
}
|
|
|
|
function f() public returns (bool) {
|
|
return f1() && f2();
|
|
}
|
|
}
|
|
// ====
|
|
// compileToEwasm: also
|
|
// compileViaYul: also
|
|
// ----
|
|
// f() -> true
|