nodes 9 · edges 14 · slice nodes 7 · slice lines 5 · target n5 on line 7
1 // EXPECT-BACKWARD 7 -> [4, 5, 6, 7, 8] 2 // EXPECT-FORWARD 7 -> [7, 10] 3 fn loop_sum(n : Int) -> Int { • 4 let mut i = 0 • 5 let mut total = 0 • 6 while i < n { • 7 total = total + i // target • 8 i = i + 1 9 } 10 return total 11 } 12
| node | kind | line | defs | uses |
|---|---|---|---|---|
| n1 | let mut | 4 | i#2 | |
| n2 | let mut | 5 | total#3 | |
| n3 | while | 6 | i#2, n#1 | |
| n4 | while | 6 | ||
| n5 | assign | 7 | total#3 | total#3, i#2 |
| n6 | assign | 8 | i#2 | i#2 |
digraph pdg {
rankdir=LR;
n0 -> n3 [label="data"];
n1 -> n3 [label="data"];
n1 -> n5 [label="data"];
n1 -> n6 [label="data"];
n2 -> n5 [label="data"];
n2 -> n7 [label="data"];
n3 -> n4 [label="control"];
n3 -> n5 [label="control"];
n3 -> n6 [label="control"];
n4 -> n5 [label="control"];
n4 -> n6 [label="control"];
n5 -> n7 [label="data"];
n6 -> n3 [label="data"];
n6 -> n5 [label="data"];
}