Skip to content

Commit dc869d5

Browse files
committed
Rust: Add more local data flow tests
1 parent 91ab303 commit dc869d5

File tree

2 files changed

+74
-31
lines changed

2 files changed

+74
-31
lines changed
Lines changed: 45 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,50 @@
11
| main.rs:2:9:2:9 | [SSA] s | main.rs:3:33:3:33 | s |
22
| main.rs:2:13:2:19 | "Hello" | main.rs:2:9:2:9 | s |
33
| main.rs:6:18:6:21 | [SSA] cond | main.rs:9:16:9:19 | cond |
4-
| main.rs:7:9:7:9 | [SSA] a | main.rs:10:9:10:9 | a |
4+
| main.rs:7:9:7:9 | [SSA] a | main.rs:9:23:9:23 | a |
55
| main.rs:7:13:7:13 | 1 | main.rs:7:9:7:9 | a |
6-
| main.rs:8:9:8:9 | [SSA] b | main.rs:12:9:12:9 | b |
6+
| main.rs:8:9:8:9 | [SSA] b | main.rs:9:34:9:34 | b |
77
| main.rs:8:13:8:13 | 2 | main.rs:8:9:8:9 | b |
8-
| main.rs:9:9:9:9 | [SSA] c | main.rs:14:5:14:5 | c |
9-
| main.rs:9:13:13:5 | IfExpr | main.rs:9:9:9:9 | c |
10-
| main.rs:9:21:11:5 | BlockExpr | main.rs:9:13:13:5 | IfExpr |
11-
| main.rs:10:9:10:9 | a | main.rs:9:21:11:5 | BlockExpr |
12-
| main.rs:11:12:13:5 | BlockExpr | main.rs:9:13:13:5 | IfExpr |
13-
| main.rs:12:9:12:9 | b | main.rs:11:12:13:5 | BlockExpr |
14-
| main.rs:14:5:14:5 | c | main.rs:6:37:15:1 | BlockExpr |
15-
| main.rs:18:9:18:9 | [SSA] a | main.rs:20:15:20:15 | a |
16-
| main.rs:18:13:18:13 | 1 | main.rs:18:9:18:9 | a |
17-
| main.rs:19:9:19:9 | [SSA] b | main.rs:22:5:22:5 | b |
18-
| main.rs:19:13:21:5 | LoopExpr | main.rs:19:9:19:9 | b |
19-
| main.rs:20:9:20:15 | BreakExpr | main.rs:19:13:21:5 | LoopExpr |
20-
| main.rs:20:15:20:15 | a | main.rs:20:9:20:15 | BreakExpr |
21-
| main.rs:22:5:22:5 | b | main.rs:17:29:23:1 | BlockExpr |
22-
| main.rs:26:17:26:17 | 1 | main.rs:26:9:26:13 | i |
23-
| main.rs:27:5:27:5 | [SSA] i | main.rs:28:5:28:5 | i |
24-
| main.rs:27:5:27:5 | i | main.rs:27:5:27:5 | [SSA] i |
25-
| main.rs:28:5:28:5 | i | main.rs:25:24:29:1 | BlockExpr |
26-
| main.rs:31:21:31:21 | [SSA] a | main.rs:33:20:33:20 | a |
27-
| main.rs:31:29:31:29 | [SSA] b | main.rs:34:17:34:17 | b |
28-
| main.rs:31:37:31:37 | [SSA] c | main.rs:32:11:32:11 | c |
29-
| main.rs:32:5:35:5 | MatchExpr | main.rs:31:60:36:1 | BlockExpr |
30-
| main.rs:33:20:33:20 | a | main.rs:32:5:35:5 | MatchExpr |
31-
| main.rs:34:17:34:17 | b | main.rs:32:5:35:5 | MatchExpr |
8+
| main.rs:9:9:9:9 | [SSA] c | main.rs:10:5:10:5 | c |
9+
| main.rs:9:13:9:36 | IfExpr | main.rs:9:9:9:9 | c |
10+
| main.rs:9:21:9:25 | BlockExpr | main.rs:9:13:9:36 | IfExpr |
11+
| main.rs:9:23:9:23 | a | main.rs:9:21:9:25 | BlockExpr |
12+
| main.rs:9:32:9:36 | BlockExpr | main.rs:9:13:9:36 | IfExpr |
13+
| main.rs:9:34:9:34 | b | main.rs:9:32:9:36 | BlockExpr |
14+
| main.rs:10:5:10:5 | c | main.rs:6:37:11:1 | BlockExpr |
15+
| main.rs:14:9:14:9 | [SSA] a | main.rs:16:15:16:15 | a |
16+
| main.rs:14:13:14:13 | 1 | main.rs:14:9:14:9 | a |
17+
| main.rs:15:9:15:9 | [SSA] b | main.rs:18:5:18:5 | b |
18+
| main.rs:15:13:17:5 | LoopExpr | main.rs:15:9:15:9 | b |
19+
| main.rs:16:9:16:15 | BreakExpr | main.rs:15:13:17:5 | LoopExpr |
20+
| main.rs:16:15:16:15 | a | main.rs:16:9:16:15 | BreakExpr |
21+
| main.rs:18:5:18:5 | b | main.rs:13:29:19:1 | BlockExpr |
22+
| main.rs:22:17:22:17 | 1 | main.rs:22:9:22:13 | i |
23+
| main.rs:23:5:23:5 | [SSA] i | main.rs:24:5:24:5 | i |
24+
| main.rs:23:5:23:5 | i | main.rs:23:5:23:5 | [SSA] i |
25+
| main.rs:24:5:24:5 | i | main.rs:21:24:25:1 | BlockExpr |
26+
| main.rs:27:21:27:21 | [SSA] a | main.rs:29:20:29:20 | a |
27+
| main.rs:27:29:27:29 | [SSA] b | main.rs:30:17:30:17 | b |
28+
| main.rs:27:37:27:37 | [SSA] c | main.rs:28:11:28:11 | c |
29+
| main.rs:28:5:31:5 | MatchExpr | main.rs:27:60:32:1 | BlockExpr |
30+
| main.rs:29:20:29:20 | a | main.rs:28:5:31:5 | MatchExpr |
31+
| main.rs:30:17:30:17 | b | main.rs:28:5:31:5 | MatchExpr |
32+
| main.rs:35:9:35:9 | [SSA] a | main.rs:36:5:36:5 | a |
33+
| main.rs:35:13:35:17 | BlockExpr | main.rs:35:9:35:9 | a |
34+
| main.rs:35:15:35:15 | 0 | main.rs:35:13:35:17 | BlockExpr |
35+
| main.rs:36:5:36:5 | a | main.rs:34:31:37:1 | BlockExpr |
36+
| main.rs:39:22:39:22 | [SSA] b | main.rs:41:12:41:12 | b |
37+
| main.rs:40:9:40:9 | [SSA] a | main.rs:46:5:46:5 | a |
38+
| main.rs:40:13:45:5 | BlockExpr | main.rs:40:9:40:9 | a |
39+
| main.rs:41:12:41:12 | b | main.rs:41:9:43:9 | IfExpr |
40+
| main.rs:42:13:42:26 | BreakExpr | main.rs:40:13:45:5 | BlockExpr |
41+
| main.rs:42:26:42:26 | 1 | main.rs:42:13:42:26 | BreakExpr |
42+
| main.rs:44:9:44:9 | 2 | main.rs:40:13:45:5 | BlockExpr |
43+
| main.rs:46:5:46:5 | a | main.rs:39:38:47:1 | BlockExpr |
44+
| main.rs:49:22:49:22 | [SSA] b | main.rs:51:12:51:12 | b |
45+
| main.rs:50:9:50:9 | [SSA] a | main.rs:56:5:56:5 | a |
46+
| main.rs:50:13:55:5 | BlockExpr | main.rs:50:9:50:9 | a |
47+
| main.rs:51:12:51:12 | b | main.rs:51:9:53:9 | IfExpr |
48+
| main.rs:52:26:52:26 | 1 | main.rs:52:13:52:26 | BreakExpr |
49+
| main.rs:54:22:54:22 | 2 | main.rs:54:9:54:22 | BreakExpr |
50+
| main.rs:56:5:56:5 | a | main.rs:49:38:57:1 | BlockExpr |

rust/ql/test/library-tests/dataflow/local/main.rs

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@ fn variable() {
66
fn if_expression(cond: bool) -> i64 {
77
let a = 1;
88
let b = 2;
9-
let c = if cond {
10-
a
11-
} else {
12-
b
13-
};
9+
let c = if cond { a } else { b };
1410
c
1511
}
1612

@@ -35,7 +31,35 @@ fn match_expression(a: i64, b: i64, c: Option<i64>) -> i64 {
3531
}
3632
}
3733

34+
fn block_expression1() -> i64 {
35+
let a = { 0 };
36+
a
37+
}
38+
39+
fn block_expression2(b: bool) -> i64 {
40+
let a = 'block: {
41+
if b {
42+
break 'block 1;
43+
};
44+
2
45+
};
46+
a
47+
}
48+
49+
fn block_expression3(b: bool) -> i64 {
50+
let a = 'block: {
51+
if b {
52+
break 'block 1;
53+
}
54+
break 'block 2;
55+
};
56+
a
57+
}
58+
3859
fn main() {
3960
variable();
4061
if_expression(true);
62+
block_expression1();
63+
block_expression2(true);
64+
block_expression3(true);
4165
}

0 commit comments

Comments
 (0)