Skip to content

Commit e21959d

Browse files
committed
Rust: Add more unreachable test cases.
1 parent a92de0d commit e21959d

File tree

3 files changed

+59
-9
lines changed

3 files changed

+59
-9
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,11 @@
1010
| unreachable.rs:147:3:147:17 | ExprStmt | This code is never reached. |
1111
| unreachable.rs:156:4:156:18 | ExprStmt | This code is never reached. |
1212
| unreachable.rs:162:3:162:17 | ExprStmt | This code is never reached. |
13+
| unreachable.rs:168:4:168:18 | ExprStmt | This code is never reached. |
1314
| unreachable.rs:176:4:176:18 | ExprStmt | This code is never reached. |
1415
| unreachable.rs:179:2:179:16 | ExprStmt | This code is never reached. |
16+
| unreachable.rs:193:3:193:17 | ExprStmt | This code is never reached. |
17+
| unreachable.rs:196:2:196:16 | ExprStmt | This code is never reached. |
18+
| unreachable.rs:201:3:201:17 | ExprStmt | This code is never reached. |
19+
| unreachable.rs:216:2:216:16 | ExprStmt | This code is never reached. |
20+
| unreachable.rs:225:2:225:16 | ExprStmt | This code is never reached. |

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,9 +456,13 @@ fn main() {
456456
func_ptrs();
457457
folds_and_closures();
458458

459-
unreachable_if();
459+
unreachable_if_1();
460460
unreachable_panic();
461461
unreachable_match();
462462
unreachable_loop();
463463
unreachable_paren();
464+
unreachable_let_1();
465+
unreachable_let_2();
466+
unreachable_if_2();
467+
unreachable_if_3();
464468
}

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

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
fn do_something() {
88
}
99

10-
fn unreachable_if() {
10+
fn unreachable_if_1() {
1111
if false {
1212
do_something(); // BAD: unreachable code
1313
} else {
@@ -162,13 +162,13 @@ fn unreachable_loop() {
162162
do_something(); // BAD: unreachable code
163163
}
164164

165-
166-
167-
168-
169-
170-
171-
165+
for x in 1..10 {
166+
if cond() {
167+
continue;
168+
do_something(); // BAD: unreachable code
169+
}
170+
do_something();
171+
}
172172

173173
loop {
174174
if cond() {
@@ -184,3 +184,43 @@ fn unreachable_loop() {
184184
fn unreachable_paren() {
185185
let _ = (((1)));
186186
}
187+
188+
fn unreachable_let_1() {
189+
if let a = get_a_number() {
190+
do_something();
191+
return;
192+
} else {
193+
do_something(); // SPURIOUS: unreachable code
194+
}
195+
196+
do_something(); // SPURIOUS: unreachable code
197+
}
198+
199+
fn unreachable_let_2() {
200+
let a = get_a_number() else {
201+
do_something(); // SPURIOUS: unreachable code
202+
return;
203+
};
204+
205+
do_something();
206+
}
207+
208+
fn unreachable_if_2() {
209+
if cond() {
210+
do_something();
211+
return;
212+
} else {
213+
do_something();
214+
}
215+
216+
do_something(); // SPURIOUS: unreachable code
217+
}
218+
219+
fn unreachable_if_3() {
220+
if !cond() {
221+
do_something();
222+
return;
223+
}
224+
225+
do_something(); // SPURIOUS: unreachable code
226+
}

0 commit comments

Comments
 (0)