Skip to content

Commit f084bb7

Browse files
committed
Rust: A couple of interesting cases with short-circuiting.
1 parent 7c6239b commit f084bb7

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

rust/ql/test/query-tests/unusedentities/UnreachableCode.expected

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
| unreachable.rs:32:3:32:17 | ExprStmt | This code is never reached. |
33
| unreachable.rs:39:3:39:17 | ExprStmt | This code is never reached. |
44
| unreachable.rs:48:2:48:16 | ExprStmt | This code is never reached. |
5-
| unreachable.rs:89:3:91:3 | MatchArm | This code is never reached. |
6-
| unreachable.rs:92:3:94:3 | MatchArm | This code is never reached. |
7-
| unreachable.rs:96:2:96:16 | ExprStmt | This code is never reached. |
8-
| unreachable.rs:99:3:101:3 | MatchArm | This code is never reached. |
9-
| unreachable.rs:102:3:104:3 | MatchArm | This code is never reached. |
10-
| unreachable.rs:106:2:106:16 | ExprStmt | This code is never reached. |
11-
| unreachable.rs:113:3:113:17 | ExprStmt | This code is never reached. |
12-
| unreachable.rs:118:4:118:18 | ExprStmt | This code is never reached. |
13-
| unreachable.rs:122:4:122:18 | ExprStmt | This code is never reached. |
14-
| unreachable.rs:126:4:126:18 | ExprStmt | This code is never reached. |
5+
| unreachable.rs:105:3:107:3 | MatchArm | This code is never reached. |
6+
| unreachable.rs:108:3:110:3 | MatchArm | This code is never reached. |
7+
| unreachable.rs:112:2:112:16 | ExprStmt | This code is never reached. |
8+
| unreachable.rs:115:3:117:3 | MatchArm | This code is never reached. |
9+
| unreachable.rs:118:3:120:3 | MatchArm | This code is never reached. |
10+
| unreachable.rs:122:2:122:16 | ExprStmt | This code is never reached. |
11+
| unreachable.rs:129:3:129:17 | ExprStmt | This code is never reached. |
1512
| unreachable.rs:134:4:134:18 | ExprStmt | This code is never reached. |
16-
| unreachable.rs:137:2:137:16 | ExprStmt | This code is never reached. |
13+
| unreachable.rs:138:4:138:18 | ExprStmt | This code is never reached. |
14+
| unreachable.rs:142:4:142:18 | ExprStmt | This code is never reached. |
15+
| unreachable.rs:150:4:150:18 | ExprStmt | This code is never reached. |
16+
| unreachable.rs:153:2:153:16 | ExprStmt | This code is never reached. |

rust/ql/test/query-tests/unusedentities/unreachable.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,22 @@ fn unreachable_panic() {
8282
_ = maybe.unwrap(); // (always panics)
8383
do_something(); // BAD: unreachable code [NOT DETECTED]
8484
}
85+
86+
if cond() {
87+
do_something();
88+
_ = false && panic!(); // does not panic due to short-circuiting
89+
do_something();
90+
_ = false || panic!();
91+
do_something(); // BAD: unreachable code [NOT DETECTED]
92+
}
93+
94+
if cond() {
95+
do_something();
96+
_ = true || panic!(); // does not panic due to short-circuiting
97+
do_something();
98+
_ = true && panic!();
99+
do_something(); // BAD: unreachable code [NOT DETECTED]
100+
}
85101
}
86102

87103
fn unreachable_match() {

0 commit comments

Comments
 (0)