diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 8cc12598f62..d52e9609600 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -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 | diff --git a/rust/ql/test/library-tests/dataflow/local/main.rs b/rust/ql/test/library-tests/dataflow/local/main.rs index fb79baa70bd..dea41118b1d 100644 --- a/rust/ql/test/library-tests/dataflow/local/main.rs +++ b/rust/ql/test/library-tests/dataflow/local/main.rs @@ -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); }