Merge pull request #6660 from ethereum/shortCircuiting

Short circuiting
This commit is contained in:
chriseth
2019-05-07 16:55:12 +02:00
committed by GitHub
3 changed files with 66 additions and 5 deletions
@@ -0,0 +1,17 @@
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
// ----
// or(uint256): 0 -> true, 0
// and(uint256): 0 -> true, 8
// or(uint256): 1 -> true, 8
// and(uint256): 1 -> false, 1