Skip to content

Commit a50e062

Browse files
committed
Kotlin: Fix enclosing statement of when branches
1 parent 640026d commit a50e062

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ class Stmt extends StmtParent, ExprParent, @stmt {
2929
*/
3030
Stmt getEnclosingStmt() {
3131
result = this.getParent() or
32-
result = this.getParent().(SwitchExpr).getEnclosingStmt()
32+
result = this.getParent().(SwitchExpr).getEnclosingStmt() or
33+
result = this.getParent().(WhenExpr).getEnclosingStmt()
3334
}
3435

3536
/** Holds if this statement is the child of the specified parent at the specified (zero-based) position. */

java/ql/test/kotlin/library-tests/stmts/stmts.expected

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
enclosing
22
| stmts.kt:3:5:6:5 | <Expr>; | stmts.kt:2:41:20:1 | { ... } |
3+
| stmts.kt:3:8:4:5 | ... -> ... | stmts.kt:3:5:6:5 | <Expr>; |
34
| stmts.kt:3:15:4:5 | { ... } | stmts.kt:3:8:4:5 | ... -> ... |
5+
| stmts.kt:4:15:5:5 | ... -> ... | stmts.kt:3:5:6:5 | <Expr>; |
46
| stmts.kt:4:22:5:5 | { ... } | stmts.kt:4:15:5:5 | ... -> ... |
7+
| stmts.kt:5:12:6:5 | ... -> ... | stmts.kt:3:5:6:5 | <Expr>; |
58
| stmts.kt:5:12:6:5 | { ... } | stmts.kt:5:12:6:5 | ... -> ... |
69
| stmts.kt:7:5:8:16 | while (...) | stmts.kt:2:41:20:1 | { ... } |
710
| stmts.kt:8:9:8:16 | return ... | stmts.kt:7:5:8:16 | while (...) |
@@ -14,11 +17,15 @@ enclosing
1417
| stmts.kt:13:9:13:16 | return ... | stmts.kt:12:8:14:5 | { ... } |
1518
| stmts.kt:15:5:15:13 | var ...; | stmts.kt:2:41:20:1 | { ... } |
1619
| stmts.kt:17:5:17:58 | var ...; | stmts.kt:2:41:20:1 | { ... } |
20+
| stmts.kt:17:26:17:58 | ... -> ... | stmts.kt:17:5:17:58 | var ...; |
21+
| stmts.kt:17:26:17:58 | ... -> ... | stmts.kt:17:5:17:58 | var ...; |
1722
| stmts.kt:17:35:17:43 | { ... } | stmts.kt:17:26:17:58 | ... -> ... |
1823
| stmts.kt:17:37:17:37 | <Expr>; | stmts.kt:17:35:17:43 | { ... } |
1924
| stmts.kt:17:50:17:58 | { ... } | stmts.kt:17:26:17:58 | ... -> ... |
2025
| stmts.kt:17:52:17:52 | <Expr>; | stmts.kt:17:50:17:58 | { ... } |
2126
| stmts.kt:18:5:18:56 | var ...; | stmts.kt:2:41:20:1 | { ... } |
27+
| stmts.kt:18:26:18:56 | ... -> ... | stmts.kt:18:5:18:56 | var ...; |
28+
| stmts.kt:18:26:18:56 | ... -> ... | stmts.kt:18:5:18:56 | var ...; |
2229
| stmts.kt:18:37:18:37 | <Expr>; | stmts.kt:18:26:18:56 | ... -> ... |
2330
| stmts.kt:18:52:18:52 | <Expr>; | stmts.kt:18:26:18:56 | ... -> ... |
2431
| stmts.kt:19:5:19:16 | return ... | stmts.kt:2:41:20:1 | { ... } |
@@ -27,6 +34,7 @@ enclosing
2734
| stmts.kt:24:9:26:25 | do ... while (...) | stmts.kt:24:9:26:25 | { ... } |
2835
| stmts.kt:24:9:26:25 | { ... } | stmts.kt:23:27:27:5 | { ... } |
2936
| stmts.kt:24:13:26:9 | { ... } | stmts.kt:24:9:26:25 | do ... while (...) |
37+
| stmts.kt:25:13:25:33 | ... -> ... | stmts.kt:25:13:25:33 | <Expr>; |
3038
| stmts.kt:25:13:25:33 | <Expr>; | stmts.kt:24:13:26:9 | { ... } |
3139
| stmts.kt:25:24:25:33 | break | stmts.kt:25:13:25:33 | ... -> ... |
3240
| stmts.kt:28:5:29:16 | while (...) | stmts.kt:22:27:30:1 | { ... } |

0 commit comments

Comments
 (0)