mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			49 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();
 | 
						|
    }
 | 
						|
}
 | 
						|
// ====
 | 
						|
// compileViaYul: also
 | 
						|
// ----
 | 
						|
// f() -> true
 |