Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 10ab11c

Browse files
atorralbaigfoo
authored andcommitted
Handle WhenBranch CFG properly
1 parent 5ea3228 commit 10ab11c

8 files changed

Lines changed: 76 additions & 230 deletions

File tree

java/ql/lib/semmle/code/java/ControlFlowGraph.qll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,16 @@ class ControlFlowNode extends Top, @exprparent {
8888
/** Gets the statement containing this node, if any. */
8989
Stmt getEnclosingStmt() {
9090
result = this or
91-
result = this.(Expr).getEnclosingStmt()
91+
result = this.(Expr).getEnclosingStmt() or
92+
result = this.(WhenBranch).getWhenExpr().getEnclosingStmt()
9293
}
9394

9495
/** Gets the immediately enclosing callable whose body contains this node. */
9596
Callable getEnclosingCallable() {
9697
result = this or
9798
result = this.(Stmt).getEnclosingCallable() or
98-
result = this.(Expr).getEnclosingCallable()
99+
result = this.(Expr).getEnclosingCallable() or
100+
result = this.(WhenBranch).getWhenExpr().getEnclosingCallable()
99101
}
100102

101103
/** Gets an immediate successor of this node. */
@@ -556,9 +558,7 @@ private module ControlFlowGraphImpl {
556558
result = e.getArgument(index)
557559
)
558560
or
559-
exists(StringTemplateExpr e | e = this |
560-
result = e.getComponent(index)
561-
)
561+
exists(StringTemplateExpr e | e = this | result = e.getComponent(index))
562562
or
563563
index = 0 and result = this.(ClassExpr).getExpr()
564564
or

java/ql/test/kotlin/library-tests/controlflow/basic/bbStmts.expected

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@
2121
| Test.kt:4:13:79:2 | { ... } | 16 | Test.kt:11:7:11:7 | x |
2222
| Test.kt:4:13:79:2 | { ... } | 17 | Test.kt:11:11:11:11 | 0 |
2323
| Test.kt:4:13:79:2 | { ... } | 18 | Test.kt:11:7:11:11 | ... > ... |
24-
| Test.kt:4:13:79:2 | { ... } | 19 | Test.kt:11:14:14:3 | { ... } |
25-
| Test.kt:4:13:79:2 | { ... } | 20 | Test.kt:12:4:12:4 | <Expr>; |
26-
| Test.kt:4:13:79:2 | { ... } | 21 | Test.kt:12:8:12:9 | 20 |
27-
| Test.kt:4:13:79:2 | { ... } | 22 | Test.kt:12:4:12:9 | ...=... |
28-
| Test.kt:4:13:79:2 | { ... } | 23 | Test.kt:13:4:13:4 | <Expr>; |
29-
| Test.kt:4:13:79:2 | { ... } | 24 | Test.kt:13:8:13:9 | 10 |
30-
| Test.kt:4:13:79:2 | { ... } | 25 | Test.kt:13:4:13:9 | ...=... |
3124
| Test.kt:11:3:16:3 | ... -> ... | 0 | Test.kt:11:3:16:3 | ... -> ... |
3225
| Test.kt:11:3:16:3 | ... -> ... | 1 | Test.kt:11:3:16:3 | true |
3326
| Test.kt:11:3:16:3 | ... -> ... | 2 | Test.kt:14:10:16:3 | { ... } |
3427
| Test.kt:11:3:16:3 | ... -> ... | 3 | Test.kt:15:4:15:4 | <Expr>; |
3528
| Test.kt:11:3:16:3 | ... -> ... | 4 | Test.kt:15:8:15:9 | 30 |
3629
| Test.kt:11:3:16:3 | ... -> ... | 5 | Test.kt:15:4:15:9 | ...=... |
30+
| Test.kt:11:14:14:3 | { ... } | 0 | Test.kt:11:14:14:3 | { ... } |
31+
| Test.kt:11:14:14:3 | { ... } | 1 | Test.kt:12:4:12:4 | <Expr>; |
32+
| Test.kt:11:14:14:3 | { ... } | 2 | Test.kt:12:8:12:9 | 20 |
33+
| Test.kt:11:14:14:3 | { ... } | 3 | Test.kt:12:4:12:9 | ...=... |
34+
| Test.kt:11:14:14:3 | { ... } | 4 | Test.kt:13:4:13:4 | <Expr>; |
35+
| Test.kt:11:14:14:3 | { ... } | 5 | Test.kt:13:8:13:9 | 10 |
36+
| Test.kt:11:14:14:3 | { ... } | 6 | Test.kt:13:4:13:9 | ...=... |
3737
| Test.kt:18:3:18:3 | <Expr>; | 0 | Test.kt:18:3:18:3 | <Expr>; |
3838
| Test.kt:18:3:18:3 | <Expr>; | 1 | Test.kt:18:7:18:7 | 0 |
3939
| Test.kt:18:3:18:3 | <Expr>; | 2 | Test.kt:18:3:18:7 | ...=... |
@@ -43,22 +43,22 @@
4343
| Test.kt:18:3:18:3 | <Expr>; | 6 | Test.kt:21:6:21:6 | x |
4444
| Test.kt:18:3:18:3 | <Expr>; | 7 | Test.kt:21:10:21:10 | 0 |
4545
| Test.kt:18:3:18:3 | <Expr>; | 8 | Test.kt:21:6:21:10 | ... < ... |
46-
| Test.kt:18:3:18:3 | <Expr>; | 9 | Test.kt:22:4:22:4 | <Expr>; |
47-
| Test.kt:18:3:18:3 | <Expr>; | 10 | Test.kt:22:8:22:9 | 40 |
48-
| Test.kt:18:3:18:3 | <Expr>; | 11 | Test.kt:22:4:22:9 | ...=... |
49-
| Test.kt:18:3:18:3 | <Expr>; | 12 | Test.kt:27:3:27:3 | <Expr>; |
50-
| Test.kt:18:3:18:3 | <Expr>; | 13 | Test.kt:27:7:27:8 | 10 |
51-
| Test.kt:18:3:18:3 | <Expr>; | 14 | Test.kt:27:3:27:8 | ...=... |
52-
| Test.kt:18:3:18:3 | <Expr>; | 15 | Test.kt:30:3:33:3 | <Expr>; |
53-
| Test.kt:18:3:18:3 | <Expr>; | 16 | Test.kt:30:3:33:3 | when ... |
54-
| Test.kt:18:3:18:3 | <Expr>; | 17 | Test.kt:30:3:33:3 | ... -> ... |
55-
| Test.kt:18:3:18:3 | <Expr>; | 18 | Test.kt:30:7:30:7 | x |
56-
| Test.kt:18:3:18:3 | <Expr>; | 19 | Test.kt:30:12:30:12 | 0 |
57-
| Test.kt:18:3:18:3 | <Expr>; | 20 | Test.kt:30:7:30:12 | ... (value equals) ... |
5846
| Test.kt:21:3:24:9 | ... -> ... | 0 | Test.kt:21:3:24:9 | ... -> ... |
5947
| Test.kt:21:3:24:9 | ... -> ... | 1 | Test.kt:21:3:24:9 | true |
6048
| Test.kt:21:3:24:9 | ... -> ... | 2 | Test.kt:24:4:24:9 | INSTANCE |
6149
| Test.kt:21:3:24:9 | ... -> ... | 3 | Test.kt:24:4:24:9 | return ... |
50+
| Test.kt:22:4:22:4 | <Expr>; | 0 | Test.kt:22:4:22:4 | <Expr>; |
51+
| Test.kt:22:4:22:4 | <Expr>; | 1 | Test.kt:22:8:22:9 | 40 |
52+
| Test.kt:22:4:22:4 | <Expr>; | 2 | Test.kt:22:4:22:9 | ...=... |
53+
| Test.kt:22:4:22:4 | <Expr>; | 3 | Test.kt:27:3:27:3 | <Expr>; |
54+
| Test.kt:22:4:22:4 | <Expr>; | 4 | Test.kt:27:7:27:8 | 10 |
55+
| Test.kt:22:4:22:4 | <Expr>; | 5 | Test.kt:27:3:27:8 | ...=... |
56+
| Test.kt:22:4:22:4 | <Expr>; | 6 | Test.kt:30:3:33:3 | <Expr>; |
57+
| Test.kt:22:4:22:4 | <Expr>; | 7 | Test.kt:30:3:33:3 | when ... |
58+
| Test.kt:22:4:22:4 | <Expr>; | 8 | Test.kt:30:3:33:3 | ... -> ... |
59+
| Test.kt:22:4:22:4 | <Expr>; | 9 | Test.kt:30:7:30:7 | x |
60+
| Test.kt:22:4:22:4 | <Expr>; | 10 | Test.kt:30:12:30:12 | 0 |
61+
| Test.kt:22:4:22:4 | <Expr>; | 11 | Test.kt:30:7:30:12 | ... (value equals) ... |
6262
| Test.kt:30:15:33:3 | { ... } | 0 | Test.kt:30:15:33:3 | { ... } |
6363
| Test.kt:30:15:33:3 | { ... } | 1 | Test.kt:31:4:31:4 | <Expr>; |
6464
| Test.kt:30:15:33:3 | { ... } | 2 | Test.kt:31:8:31:9 | 60 |

java/ql/test/kotlin/library-tests/controlflow/basic/bbStrictDominance.expected

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
11
| Test.kt:4:13:79:2 | { ... } | Test.kt:4:2:79:2 | test |
2+
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... |
3+
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } |
24
| Test.kt:4:13:79:2 | { ... } | Test.kt:18:3:18:3 | <Expr>; |
5+
| Test.kt:4:13:79:2 | { ... } | Test.kt:21:3:24:9 | ... -> ... |
6+
| Test.kt:4:13:79:2 | { ... } | Test.kt:22:4:22:4 | <Expr>; |
37
| Test.kt:4:13:79:2 | { ... } | Test.kt:30:15:33:3 | { ... } |
48
| Test.kt:4:13:79:2 | { ... } | Test.kt:35:3:35:3 | <Expr>; |
59
| Test.kt:4:13:79:2 | { ... } | Test.kt:38:9:38:9 | x |
610
| Test.kt:4:13:79:2 | { ... } | Test.kt:38:16:41:3 | { ... } |
711
| Test.kt:4:13:79:2 | { ... } | Test.kt:43:3:43:3 | <Expr>; |
812
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:4:2:79:2 | test |
13+
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:21:3:24:9 | ... -> ... |
14+
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
915
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
1016
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:35:3:35:3 | <Expr>; |
1117
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:38:9:38:9 | x |
1218
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:38:16:41:3 | { ... } |
1319
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:43:3:43:3 | <Expr>; |
14-
| Test.kt:35:3:35:3 | <Expr>; | Test.kt:4:2:79:2 | test |
20+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
21+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:35:3:35:3 | <Expr>; |
22+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:38:9:38:9 | x |
23+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:38:16:41:3 | { ... } |
24+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:43:3:43:3 | <Expr>; |
1525
| Test.kt:35:3:35:3 | <Expr>; | Test.kt:38:9:38:9 | x |
1626
| Test.kt:35:3:35:3 | <Expr>; | Test.kt:38:16:41:3 | { ... } |
1727
| Test.kt:35:3:35:3 | <Expr>; | Test.kt:43:3:43:3 | <Expr>; |
18-
| Test.kt:38:9:38:9 | x | Test.kt:4:2:79:2 | test |
1928
| Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } |
2029
| Test.kt:38:9:38:9 | x | Test.kt:43:3:43:3 | <Expr>; |
21-
| Test.kt:43:3:43:3 | <Expr>; | Test.kt:4:2:79:2 | test |
2230
| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | t1 |
2331
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x |
2432
| Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) |

java/ql/test/kotlin/library-tests/controlflow/basic/bbSuccessor.expected

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
| Test.kt:4:13:79:2 | { ... } | Test.kt:18:3:18:3 | <Expr>; |
1+
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... |
2+
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } |
23
| Test.kt:11:3:16:3 | ... -> ... | Test.kt:18:3:18:3 | <Expr>; |
3-
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
4-
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:35:3:35:3 | <Expr>; |
4+
| Test.kt:11:14:14:3 | { ... } | Test.kt:18:3:18:3 | <Expr>; |
5+
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:21:3:24:9 | ... -> ... |
6+
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
57
| Test.kt:21:3:24:9 | ... -> ... | Test.kt:4:2:79:2 | test |
8+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
9+
| Test.kt:22:4:22:4 | <Expr>; | Test.kt:35:3:35:3 | <Expr>; |
610
| Test.kt:30:15:33:3 | { ... } | Test.kt:35:3:35:3 | <Expr>; |
711
| Test.kt:35:3:35:3 | <Expr>; | Test.kt:38:9:38:9 | x |
812
| Test.kt:38:9:38:9 | x | Test.kt:38:16:41:3 | { ... } |

java/ql/test/kotlin/library-tests/controlflow/basic/getASuccessor.expected

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
| Test.kt:11:3:16:3 | true | BooleanLiteral | Test.kt:14:10:16:3 | { ... } | BlockStmt |
2828
| Test.kt:11:3:16:3 | when ... | WhenExpr | Test.kt:11:3:16:3 | ... -> ... | WhenBranch |
2929
| Test.kt:11:7:11:7 | x | VarAccess | Test.kt:11:11:11:11 | 0 | IntegerLiteral |
30+
| Test.kt:11:7:11:11 | ... > ... | GTExpr | Test.kt:11:3:16:3 | ... -> ... | WhenBranch |
3031
| Test.kt:11:7:11:11 | ... > ... | GTExpr | Test.kt:11:14:14:3 | { ... } | BlockStmt |
3132
| Test.kt:11:11:11:11 | 0 | IntegerLiteral | Test.kt:11:7:11:11 | ... > ... | GTExpr |
3233
| Test.kt:11:14:14:3 | { ... } | BlockStmt | Test.kt:12:4:12:4 | <Expr>; | ExprStmt |
@@ -53,6 +54,7 @@
5354
| Test.kt:21:3:24:9 | true | BooleanLiteral | Test.kt:24:4:24:9 | INSTANCE | VarAccess |
5455
| Test.kt:21:3:24:9 | when ... | WhenExpr | Test.kt:21:3:24:9 | ... -> ... | WhenBranch |
5556
| Test.kt:21:6:21:6 | x | VarAccess | Test.kt:21:10:21:10 | 0 | IntegerLiteral |
57+
| Test.kt:21:6:21:10 | ... < ... | LTExpr | Test.kt:21:3:24:9 | ... -> ... | WhenBranch |
5658
| Test.kt:21:6:21:10 | ... < ... | LTExpr | Test.kt:22:4:22:4 | <Expr>; | ExprStmt |
5759
| Test.kt:21:10:21:10 | 0 | IntegerLiteral | Test.kt:21:6:21:10 | ... < ... | LTExpr |
5860
| Test.kt:22:4:22:4 | <Expr>; | ExprStmt | Test.kt:22:8:22:9 | 40 | LongLiteral |

java/ql/test/kotlin/library-tests/controlflow/basic/strictDominance.expected

Lines changed: 20 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@
77
| Test.kt:4:13:79:2 | { ... } | Test.kt:11:14:14:3 | { ... } |
88
| Test.kt:4:13:79:2 | { ... } | Test.kt:12:4:12:4 | <Expr>; |
99
| Test.kt:4:13:79:2 | { ... } | Test.kt:13:4:13:4 | <Expr>; |
10+
| Test.kt:4:13:79:2 | { ... } | Test.kt:14:10:16:3 | { ... } |
11+
| Test.kt:4:13:79:2 | { ... } | Test.kt:15:4:15:4 | <Expr>; |
1012
| Test.kt:4:13:79:2 | { ... } | Test.kt:18:3:18:3 | <Expr>; |
1113
| Test.kt:4:13:79:2 | { ... } | Test.kt:21:3:24:9 | <Expr>; |
1214
| Test.kt:4:13:79:2 | { ... } | Test.kt:22:4:22:4 | <Expr>; |
15+
| Test.kt:4:13:79:2 | { ... } | Test.kt:24:4:24:9 | return ... |
1316
| Test.kt:4:13:79:2 | { ... } | Test.kt:27:3:27:3 | <Expr>; |
1417
| Test.kt:4:13:79:2 | { ... } | Test.kt:30:3:33:3 | <Expr>; |
1518
| Test.kt:4:13:79:2 | { ... } | Test.kt:30:15:33:3 | { ... } |
@@ -35,9 +38,12 @@
3538
| Test.kt:5:3:5:16 | var ...; | Test.kt:11:14:14:3 | { ... } |
3639
| Test.kt:5:3:5:16 | var ...; | Test.kt:12:4:12:4 | <Expr>; |
3740
| Test.kt:5:3:5:16 | var ...; | Test.kt:13:4:13:4 | <Expr>; |
41+
| Test.kt:5:3:5:16 | var ...; | Test.kt:14:10:16:3 | { ... } |
42+
| Test.kt:5:3:5:16 | var ...; | Test.kt:15:4:15:4 | <Expr>; |
3843
| Test.kt:5:3:5:16 | var ...; | Test.kt:18:3:18:3 | <Expr>; |
3944
| Test.kt:5:3:5:16 | var ...; | Test.kt:21:3:24:9 | <Expr>; |
4045
| Test.kt:5:3:5:16 | var ...; | Test.kt:22:4:22:4 | <Expr>; |
46+
| Test.kt:5:3:5:16 | var ...; | Test.kt:24:4:24:9 | return ... |
4147
| Test.kt:5:3:5:16 | var ...; | Test.kt:27:3:27:3 | <Expr>; |
4248
| Test.kt:5:3:5:16 | var ...; | Test.kt:30:3:33:3 | <Expr>; |
4349
| Test.kt:5:3:5:16 | var ...; | Test.kt:30:15:33:3 | { ... } |
@@ -62,9 +68,12 @@
6268
| Test.kt:6:3:6:18 | var ...; | Test.kt:11:14:14:3 | { ... } |
6369
| Test.kt:6:3:6:18 | var ...; | Test.kt:12:4:12:4 | <Expr>; |
6470
| Test.kt:6:3:6:18 | var ...; | Test.kt:13:4:13:4 | <Expr>; |
71+
| Test.kt:6:3:6:18 | var ...; | Test.kt:14:10:16:3 | { ... } |
72+
| Test.kt:6:3:6:18 | var ...; | Test.kt:15:4:15:4 | <Expr>; |
6573
| Test.kt:6:3:6:18 | var ...; | Test.kt:18:3:18:3 | <Expr>; |
6674
| Test.kt:6:3:6:18 | var ...; | Test.kt:21:3:24:9 | <Expr>; |
6775
| Test.kt:6:3:6:18 | var ...; | Test.kt:22:4:22:4 | <Expr>; |
76+
| Test.kt:6:3:6:18 | var ...; | Test.kt:24:4:24:9 | return ... |
6877
| Test.kt:6:3:6:18 | var ...; | Test.kt:27:3:27:3 | <Expr>; |
6978
| Test.kt:6:3:6:18 | var ...; | Test.kt:30:3:33:3 | <Expr>; |
7079
| Test.kt:6:3:6:18 | var ...; | Test.kt:30:15:33:3 | { ... } |
@@ -88,9 +97,12 @@
8897
| Test.kt:7:3:7:16 | var ...; | Test.kt:11:14:14:3 | { ... } |
8998
| Test.kt:7:3:7:16 | var ...; | Test.kt:12:4:12:4 | <Expr>; |
9099
| Test.kt:7:3:7:16 | var ...; | Test.kt:13:4:13:4 | <Expr>; |
100+
| Test.kt:7:3:7:16 | var ...; | Test.kt:14:10:16:3 | { ... } |
101+
| Test.kt:7:3:7:16 | var ...; | Test.kt:15:4:15:4 | <Expr>; |
91102
| Test.kt:7:3:7:16 | var ...; | Test.kt:18:3:18:3 | <Expr>; |
92103
| Test.kt:7:3:7:16 | var ...; | Test.kt:21:3:24:9 | <Expr>; |
93104
| Test.kt:7:3:7:16 | var ...; | Test.kt:22:4:22:4 | <Expr>; |
105+
| Test.kt:7:3:7:16 | var ...; | Test.kt:24:4:24:9 | return ... |
94106
| Test.kt:7:3:7:16 | var ...; | Test.kt:27:3:27:3 | <Expr>; |
95107
| Test.kt:7:3:7:16 | var ...; | Test.kt:30:3:33:3 | <Expr>; |
96108
| Test.kt:7:3:7:16 | var ...; | Test.kt:30:15:33:3 | { ... } |
@@ -113,9 +125,12 @@
113125
| Test.kt:8:3:8:16 | var ...; | Test.kt:11:14:14:3 | { ... } |
114126
| Test.kt:8:3:8:16 | var ...; | Test.kt:12:4:12:4 | <Expr>; |
115127
| Test.kt:8:3:8:16 | var ...; | Test.kt:13:4:13:4 | <Expr>; |
128+
| Test.kt:8:3:8:16 | var ...; | Test.kt:14:10:16:3 | { ... } |
129+
| Test.kt:8:3:8:16 | var ...; | Test.kt:15:4:15:4 | <Expr>; |
116130
| Test.kt:8:3:8:16 | var ...; | Test.kt:18:3:18:3 | <Expr>; |
117131
| Test.kt:8:3:8:16 | var ...; | Test.kt:21:3:24:9 | <Expr>; |
118132
| Test.kt:8:3:8:16 | var ...; | Test.kt:22:4:22:4 | <Expr>; |
133+
| Test.kt:8:3:8:16 | var ...; | Test.kt:24:4:24:9 | return ... |
119134
| Test.kt:8:3:8:16 | var ...; | Test.kt:27:3:27:3 | <Expr>; |
120135
| Test.kt:8:3:8:16 | var ...; | Test.kt:30:3:33:3 | <Expr>; |
121136
| Test.kt:8:3:8:16 | var ...; | Test.kt:30:15:33:3 | { ... } |
@@ -137,9 +152,12 @@
137152
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:11:14:14:3 | { ... } |
138153
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:12:4:12:4 | <Expr>; |
139154
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:13:4:13:4 | <Expr>; |
155+
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:14:10:16:3 | { ... } |
156+
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:15:4:15:4 | <Expr>; |
140157
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:18:3:18:3 | <Expr>; |
141158
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:21:3:24:9 | <Expr>; |
142159
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
160+
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:24:4:24:9 | return ... |
143161
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:27:3:27:3 | <Expr>; |
144162
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:30:3:33:3 | <Expr>; |
145163
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
@@ -160,73 +178,11 @@
160178
| Test.kt:11:3:16:3 | <Expr>; | Test.kt:78:3:78:8 | return ... |
161179
| Test.kt:11:14:14:3 | { ... } | Test.kt:12:4:12:4 | <Expr>; |
162180
| Test.kt:11:14:14:3 | { ... } | Test.kt:13:4:13:4 | <Expr>; |
163-
| Test.kt:11:14:14:3 | { ... } | Test.kt:18:3:18:3 | <Expr>; |
164-
| Test.kt:11:14:14:3 | { ... } | Test.kt:21:3:24:9 | <Expr>; |
165-
| Test.kt:11:14:14:3 | { ... } | Test.kt:22:4:22:4 | <Expr>; |
166-
| Test.kt:11:14:14:3 | { ... } | Test.kt:27:3:27:3 | <Expr>; |
167-
| Test.kt:11:14:14:3 | { ... } | Test.kt:30:3:33:3 | <Expr>; |
168-
| Test.kt:11:14:14:3 | { ... } | Test.kt:30:15:33:3 | { ... } |
169-
| Test.kt:11:14:14:3 | { ... } | Test.kt:31:4:31:4 | <Expr>; |
170-
| Test.kt:11:14:14:3 | { ... } | Test.kt:32:4:32:4 | <Expr>; |
171-
| Test.kt:11:14:14:3 | { ... } | Test.kt:35:3:35:3 | <Expr>; |
172-
| Test.kt:11:14:14:3 | { ... } | Test.kt:38:3:41:3 | while (...) |
173-
| Test.kt:11:14:14:3 | { ... } | Test.kt:38:16:41:3 | { ... } |
174-
| Test.kt:11:14:14:3 | { ... } | Test.kt:39:4:39:4 | <Expr>; |
175-
| Test.kt:11:14:14:3 | { ... } | Test.kt:40:4:40:4 | <Expr>; |
176-
| Test.kt:11:14:14:3 | { ... } | Test.kt:40:4:40:4 | var ...; |
177-
| Test.kt:11:14:14:3 | { ... } | Test.kt:40:4:40:6 | <Expr>; |
178-
| Test.kt:11:14:14:3 | { ... } | Test.kt:40:4:40:6 | <Expr>; |
179-
| Test.kt:11:14:14:3 | { ... } | Test.kt:40:4:40:6 | { ... } |
180-
| Test.kt:11:14:14:3 | { ... } | Test.kt:43:3:43:3 | <Expr>; |
181-
| Test.kt:11:14:14:3 | { ... } | Test.kt:73:3:73:3 | <Expr>; |
182-
| Test.kt:11:14:14:3 | { ... } | Test.kt:77:3:77:3 | <Expr>; |
183-
| Test.kt:11:14:14:3 | { ... } | Test.kt:78:3:78:8 | return ... |
184181
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:13:4:13:4 | <Expr>; |
185-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:18:3:18:3 | <Expr>; |
186-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:21:3:24:9 | <Expr>; |
187-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
188-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:27:3:27:3 | <Expr>; |
189-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:30:3:33:3 | <Expr>; |
190-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
191-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:31:4:31:4 | <Expr>; |
192-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:32:4:32:4 | <Expr>; |
193-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:35:3:35:3 | <Expr>; |
194-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:38:3:41:3 | while (...) |
195-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:38:16:41:3 | { ... } |
196-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:39:4:39:4 | <Expr>; |
197-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:40:4:40:4 | <Expr>; |
198-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:40:4:40:4 | var ...; |
199-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:40:4:40:6 | <Expr>; |
200-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:40:4:40:6 | <Expr>; |
201-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:40:4:40:6 | { ... } |
202-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:43:3:43:3 | <Expr>; |
203-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:73:3:73:3 | <Expr>; |
204-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:77:3:77:3 | <Expr>; |
205-
| Test.kt:12:4:12:4 | <Expr>; | Test.kt:78:3:78:8 | return ... |
206-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:18:3:18:3 | <Expr>; |
207-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:21:3:24:9 | <Expr>; |
208-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
209-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:27:3:27:3 | <Expr>; |
210-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:30:3:33:3 | <Expr>; |
211-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
212-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:31:4:31:4 | <Expr>; |
213-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:32:4:32:4 | <Expr>; |
214-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:35:3:35:3 | <Expr>; |
215-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:38:3:41:3 | while (...) |
216-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:38:16:41:3 | { ... } |
217-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:39:4:39:4 | <Expr>; |
218-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:40:4:40:4 | <Expr>; |
219-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:40:4:40:4 | var ...; |
220-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:40:4:40:6 | <Expr>; |
221-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:40:4:40:6 | <Expr>; |
222-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:40:4:40:6 | { ... } |
223-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:43:3:43:3 | <Expr>; |
224-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:73:3:73:3 | <Expr>; |
225-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:77:3:77:3 | <Expr>; |
226-
| Test.kt:13:4:13:4 | <Expr>; | Test.kt:78:3:78:8 | return ... |
227182
| Test.kt:14:10:16:3 | { ... } | Test.kt:15:4:15:4 | <Expr>; |
228183
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:21:3:24:9 | <Expr>; |
229184
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
185+
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:24:4:24:9 | return ... |
230186
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:27:3:27:3 | <Expr>; |
231187
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:30:3:33:3 | <Expr>; |
232188
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:30:15:33:3 | { ... } |
@@ -246,6 +202,7 @@
246202
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:77:3:77:3 | <Expr>; |
247203
| Test.kt:18:3:18:3 | <Expr>; | Test.kt:78:3:78:8 | return ... |
248204
| Test.kt:21:3:24:9 | <Expr>; | Test.kt:22:4:22:4 | <Expr>; |
205+
| Test.kt:21:3:24:9 | <Expr>; | Test.kt:24:4:24:9 | return ... |
249206
| Test.kt:21:3:24:9 | <Expr>; | Test.kt:27:3:27:3 | <Expr>; |
250207
| Test.kt:21:3:24:9 | <Expr>; | Test.kt:30:3:33:3 | <Expr>; |
251208
| Test.kt:21:3:24:9 | <Expr>; | Test.kt:30:15:33:3 | { ... } |

0 commit comments

Comments
 (0)