Rust: Add more local data flow tests

This commit is contained in:
Tom Hvitved
2024-11-19 15:19:08 +01:00
parent fab29361cb
commit 1c2fdc29a3
2 changed files with 52 additions and 0 deletions

View File

@@ -83,3 +83,27 @@
| main.rs:111:14:111:14 | n | main.rs:111:14:111:14 | [SSA] n |
| main.rs:111:20:111:26 | CallExpr | main.rs:110:5:113:5 | MatchExpr |
| main.rs:112:17:112:23 | CallExpr | main.rs:110:5:113:5 | MatchExpr |
| main.rs:117:9:117:9 | [SSA] a | main.rs:118:5:118:5 | a |
| main.rs:117:9:117:9 | a | main.rs:117:9:117:9 | [SSA] a |
| main.rs:117:13:117:17 | BlockExpr | main.rs:117:9:117:9 | a |
| main.rs:117:15:117:15 | 0 | main.rs:117:13:117:17 | BlockExpr |
| main.rs:118:5:118:5 | a | main.rs:116:31:119:1 | BlockExpr |
| main.rs:121:22:121:22 | [SSA] b | main.rs:123:12:123:12 | b |
| main.rs:121:22:121:22 | b | main.rs:121:22:121:22 | [SSA] b |
| main.rs:122:9:122:9 | [SSA] a | main.rs:128:5:128:5 | a |
| main.rs:122:9:122:9 | a | main.rs:122:9:122:9 | [SSA] a |
| main.rs:122:13:127:5 | BlockExpr | main.rs:122:9:122:9 | a |
| main.rs:123:12:123:12 | b | main.rs:123:9:125:9 | IfExpr |
| main.rs:124:13:124:26 | BreakExpr | main.rs:122:13:127:5 | BlockExpr |
| main.rs:124:26:124:26 | 1 | main.rs:124:13:124:26 | BreakExpr |
| main.rs:126:9:126:9 | 2 | main.rs:122:13:127:5 | BlockExpr |
| main.rs:128:5:128:5 | a | main.rs:121:38:129:1 | BlockExpr |
| main.rs:131:22:131:22 | [SSA] b | main.rs:133:12:133:12 | b |
| main.rs:131:22:131:22 | b | main.rs:131:22:131:22 | [SSA] b |
| main.rs:132:9:132:9 | [SSA] a | main.rs:138:5:138:5 | a |
| main.rs:132:9:132:9 | a | main.rs:132:9:132:9 | [SSA] a |
| main.rs:132:13:137:5 | BlockExpr | main.rs:132:9:132:9 | a |
| main.rs:133:12:133:12 | b | main.rs:133:9:135:9 | IfExpr |
| main.rs:134:26:134:26 | 1 | main.rs:134:13:134:26 | BreakExpr |
| main.rs:136:22:136:22 | 2 | main.rs:136:9:136:22 | BreakExpr |
| main.rs:138:5:138:5 | a | main.rs:131:38:139:1 | BlockExpr |

View File

@@ -113,6 +113,31 @@ fn option_pattern_match() {
}
}
fn block_expression1() -> i64 {
let a = { 0 };
a
}
fn block_expression2(b: bool) -> i64 {
let a = 'block: {
if b {
break 'block 1;
};
2
};
a
}
fn block_expression3(b: bool) -> i64 {
let a = 'block: {
if b {
break 'block 1;
}
break 'block 2;
};
a
}
fn main() {
direct();
variable_usage();
@@ -125,4 +150,7 @@ fn main() {
struct_field();
struct_pattern_match();
option_pattern_match();
block_expression1();
block_expression2(true);
block_expression3(true);
}