solidity/test/libsolidity/semanticTests/viaYul/short_circuit.sol

19 lines
434 B
Solidity

contract C {
function or(uint x) public returns (bool t, uint y) {
t = (x == 0 || ((x = 8) > 0));
y = x;
}
function and(uint x) public returns (bool t, uint y) {
t = (x == 0 && ((x = 8) > 0));
y = x;
}
}
// ====
// compileViaYul: true
// compileToEwasm: also
// ----
// or(uint256): 0 -> true, 0
// and(uint256): 0 -> true, 8
// or(uint256): 1 -> true, 8
// and(uint256): 1 -> false, 1