mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
Modify extraction of &&/|| to resugar it from when expression
This commit is contained in:
@@ -2635,6 +2635,44 @@ open class KotlinFileExtractor(
|
||||
}
|
||||
}
|
||||
is IrWhen -> {
|
||||
if (e.origin == IrStatementOrigin.ANDAND ||
|
||||
e.origin == IrStatementOrigin.OROR) {
|
||||
|
||||
// resugar binary logical operators:
|
||||
|
||||
val exprParent = parent.expr(e, callable)
|
||||
val type = useType(e.type)
|
||||
|
||||
val id = if (e.origin == IrStatementOrigin.ANDAND){
|
||||
val id = tw.getFreshIdLabel<DbAndlogicalexpr>()
|
||||
tw.writeExprs_andlogicalexpr(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
id
|
||||
}
|
||||
else {
|
||||
val id = tw.getFreshIdLabel<DbOrlogicalexpr>()
|
||||
tw.writeExprs_orlogicalexpr(id, type.javaResult.id, exprParent.parent, exprParent.idx)
|
||||
id
|
||||
}
|
||||
val locId = tw.getLocation(e)
|
||||
|
||||
tw.writeExprsKotlinType(id, type.kotlinResult.id)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCallableEnclosingExpr(id, callable)
|
||||
tw.writeStatementEnclosingExpr(id, exprParent.enclosingStmt)
|
||||
|
||||
if (e.branches.size != 2) {
|
||||
logger.errorElement("Expected to find 2 when branches for ${e.origin}, found ${e.branches.size}", e)
|
||||
return
|
||||
}
|
||||
|
||||
extractExpressionExpr(e.branches[0].condition, callable, id, 0, exprParent.enclosingStmt)
|
||||
|
||||
var rhsIdx = if (e.origin == IrStatementOrigin.ANDAND) 0 else 1
|
||||
extractExpressionExpr(e.branches[rhsIdx].result, callable, id, 1, exprParent.enclosingStmt)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
val exprParent = parent.expr(e, callable)
|
||||
val id = tw.getFreshIdLabel<DbWhenexpr>()
|
||||
val type = useType(e.type)
|
||||
|
||||
@@ -137,19 +137,13 @@
|
||||
| Test.kt:100:25:110:1 | { ... } | 1 | Test.kt:101:5:103:5 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | 2 | Test.kt:101:5:103:5 | when ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | 3 | Test.kt:101:5:103:5 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | 4 | Test.kt:101:9:101:30 | when ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | 5 | Test.kt:101:9:101:30 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | 6 | Test.kt:101:9:101:9 | x |
|
||||
| Test.kt:100:25:110:1 | { ... } | 7 | Test.kt:101:14:101:17 | null |
|
||||
| Test.kt:100:25:110:1 | { ... } | 8 | Test.kt:101:9:101:17 | ... (value equals) ... |
|
||||
| Test.kt:101:22:101:30 | ... -> ... | 0 | Test.kt:101:22:101:30 | ... -> ... |
|
||||
| Test.kt:101:22:101:30 | ... -> ... | 1 | Test.kt:101:22:101:30 | true |
|
||||
| Test.kt:101:22:101:30 | ... -> ... | 2 | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | ... -> ... | 3 | Test.kt:101:22:101:30 | false |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | 0 | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | 1 | Test.kt:101:22:101:22 | y |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | 2 | Test.kt:101:27:101:30 | null |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | 3 | Test.kt:101:22:101:30 | ... (value equals) ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | 4 | Test.kt:101:9:101:30 | ... && ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | 5 | Test.kt:101:9:101:9 | x |
|
||||
| Test.kt:100:25:110:1 | { ... } | 6 | Test.kt:101:14:101:17 | null |
|
||||
| Test.kt:100:25:110:1 | { ... } | 7 | Test.kt:101:9:101:17 | ... (value equals) ... |
|
||||
| Test.kt:101:22:101:22 | y | 0 | Test.kt:101:22:101:22 | y |
|
||||
| Test.kt:101:22:101:22 | y | 1 | Test.kt:101:27:101:30 | null |
|
||||
| Test.kt:101:22:101:22 | y | 2 | Test.kt:101:22:101:30 | ... (value equals) ... |
|
||||
| Test.kt:101:33:103:5 | { ... } | 0 | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:33:103:5 | { ... } | 1 | Test.kt:102:15:102:25 | new Exception(...) |
|
||||
| Test.kt:101:33:103:5 | { ... } | 2 | Test.kt:102:9:102:25 | throw ... |
|
||||
@@ -176,15 +170,9 @@
|
||||
| Test.kt:112:32:116:1 | { ... } | 1 | Test.kt:113:5:115:5 | <Expr>; |
|
||||
| Test.kt:112:32:116:1 | { ... } | 2 | Test.kt:113:5:115:5 | when ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | 3 | Test.kt:113:5:115:5 | ... -> ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | 4 | Test.kt:113:9:113:14 | when ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | 5 | Test.kt:113:9:113:14 | ... -> ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | 6 | Test.kt:113:9:113:9 | x |
|
||||
| Test.kt:113:14:113:14 | ... -> ... | 0 | Test.kt:113:14:113:14 | ... -> ... |
|
||||
| Test.kt:113:14:113:14 | ... -> ... | 1 | Test.kt:113:14:113:14 | true |
|
||||
| Test.kt:113:14:113:14 | ... -> ... | 2 | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:14:113:14 | ... -> ... | 3 | Test.kt:113:14:113:14 | false |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | 0 | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | 1 | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:112:32:116:1 | { ... } | 4 | Test.kt:113:9:113:14 | ... && ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | 5 | Test.kt:113:9:113:9 | x |
|
||||
| Test.kt:113:14:113:14 | y | 0 | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:113:17:115:5 | { ... } | 0 | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:118:1:124:1 | fn_when | 0 | Test.kt:118:1:124:1 | fn_when |
|
||||
| Test.kt:118:37:124:1 | { ... } | 0 | Test.kt:118:37:124:1 | { ... } |
|
||||
|
||||
@@ -34,29 +34,21 @@
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:93:3:93:13 | x |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:100:1:110:1 | fn |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:30 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:100:1:110:1 | fn |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | fn |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | ... -> ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:112:1:116:1 | fn |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:118:1:124:1 | fn_when |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... |
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) |
|
||||
| Test.kt:93:3:93:13 | x | Test.kt:91:1:98:1 | t2 |
|
||||
| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | t2 |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:30 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:22 | y |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:22:101:22 | y | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:101:33:103:5 | { ... } | Test.kt:100:1:110:1 | fn |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
@@ -32,10 +32,10 @@
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:100:1:110:1 | fn |
|
||||
| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | fn |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | ... -> ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:112:1:116:1 | fn |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | fn |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:112:1:116:1 | fn |
|
||||
| Test.kt:113:14:113:14 | y | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:17:115:5 | { ... } | Test.kt:112:1:116:1 | fn |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:121:9:121:9 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:122:12:122:16 | ... -> ... |
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
missingSuccessor
|
||||
| Test.kt:101:22:101:30 | false |
|
||||
| Test.kt:113:14:113:14 | false |
|
||||
| Test.kt:122:12:122:16 | false |
|
||||
#select
|
||||
| Test.kt:0:0:0:0 | TestKt | Class | file://:0:0:0:0 | <none> | <none> |
|
||||
@@ -186,23 +184,17 @@ missingSuccessor
|
||||
| Test.kt:100:16:100:22 | Object | TypeAccess | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:100:16:100:22 | y | Parameter | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:100:25:110:1 | { ... } | BlockStmt | Test.kt:101:5:103:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | WhenBranch | Test.kt:101:9:101:30 | when ... | WhenExpr |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | WhenBranch | Test.kt:101:9:101:30 | ... && ... | AndLogicalExpr |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | ExprStmt | Test.kt:101:5:103:5 | when ... | WhenExpr |
|
||||
| Test.kt:101:5:103:5 | when ... | WhenExpr | Test.kt:101:5:103:5 | ... -> ... | WhenBranch |
|
||||
| Test.kt:101:9:101:9 | x | VarAccess | Test.kt:101:14:101:17 | null | NullLiteral |
|
||||
| Test.kt:101:9:101:17 | ... (value equals) ... | ValueEQExpr | Test.kt:101:22:101:30 | ... -> ... | WhenBranch |
|
||||
| Test.kt:101:9:101:17 | ... (value equals) ... | ValueEQExpr | Test.kt:101:22:101:30 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | WhenBranch | Test.kt:101:9:101:9 | x | VarAccess |
|
||||
| Test.kt:101:9:101:30 | when ... | WhenExpr | Test.kt:101:9:101:30 | ... -> ... | WhenBranch |
|
||||
| Test.kt:101:9:101:17 | ... (value equals) ... | ValueEQExpr | Test.kt:101:22:101:22 | y | VarAccess |
|
||||
| Test.kt:101:9:101:17 | ... (value equals) ... | ValueEQExpr | Test.kt:105:5:109:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:9:101:30 | ... && ... | AndLogicalExpr | Test.kt:101:9:101:9 | x | VarAccess |
|
||||
| Test.kt:101:14:101:17 | null | NullLiteral | Test.kt:101:9:101:17 | ... (value equals) ... | ValueEQExpr |
|
||||
| Test.kt:101:22:101:22 | y | VarAccess | Test.kt:101:27:101:30 | null | NullLiteral |
|
||||
| Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr | Test.kt:101:33:103:5 | { ... } | BlockStmt |
|
||||
| Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr | Test.kt:105:5:109:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:22:101:30 | ... -> ... | WhenBranch | Test.kt:101:22:101:30 | true | BooleanLiteral |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | ExprStmt | Test.kt:101:22:101:22 | y | VarAccess |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | ExprStmt | Test.kt:101:22:101:30 | false | BooleanLiteral |
|
||||
| Test.kt:101:22:101:30 | false | BooleanLiteral | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:101:22:101:30 | true | BooleanLiteral | Test.kt:101:22:101:30 | <Expr>; | ExprStmt |
|
||||
| Test.kt:101:27:101:30 | null | NullLiteral | Test.kt:101:22:101:30 | ... (value equals) ... | ValueEQExpr |
|
||||
| Test.kt:101:33:103:5 | { ... } | BlockStmt | Test.kt:102:15:102:25 | new Exception(...) | ClassInstanceExpr |
|
||||
| Test.kt:102:9:102:25 | throw ... | ThrowStmt | Test.kt:100:1:110:1 | fn | Method |
|
||||
@@ -237,18 +229,12 @@ missingSuccessor
|
||||
| Test.kt:112:20:112:29 | boolean | TypeAccess | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:112:20:112:29 | y | Parameter | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:112:32:116:1 | { ... } | BlockStmt | Test.kt:113:5:115:5 | <Expr>; | ExprStmt |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | WhenBranch | Test.kt:113:9:113:14 | when ... | WhenExpr |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | WhenBranch | Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | ExprStmt | Test.kt:113:5:115:5 | when ... | WhenExpr |
|
||||
| Test.kt:113:5:115:5 | when ... | WhenExpr | Test.kt:113:5:115:5 | ... -> ... | WhenBranch |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:113:14:113:14 | ... -> ... | WhenBranch |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:113:14:113:14 | <Expr>; | ExprStmt |
|
||||
| Test.kt:113:9:113:14 | ... -> ... | WhenBranch | Test.kt:113:9:113:9 | x | VarAccess |
|
||||
| Test.kt:113:9:113:14 | when ... | WhenExpr | Test.kt:113:9:113:14 | ... -> ... | WhenBranch |
|
||||
| Test.kt:113:14:113:14 | ... -> ... | WhenBranch | Test.kt:113:14:113:14 | true | BooleanLiteral |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | ExprStmt | Test.kt:113:14:113:14 | false | BooleanLiteral |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | ExprStmt | Test.kt:113:14:113:14 | y | VarAccess |
|
||||
| Test.kt:113:14:113:14 | false | BooleanLiteral | file://:0:0:0:0 | <none> | <none> |
|
||||
| Test.kt:113:14:113:14 | true | BooleanLiteral | Test.kt:113:14:113:14 | <Expr>; | ExprStmt |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:112:1:116:1 | fn | Method |
|
||||
| Test.kt:113:9:113:9 | x | VarAccess | Test.kt:113:14:113:14 | y | VarAccess |
|
||||
| Test.kt:113:9:113:14 | ... && ... | AndLogicalExpr | Test.kt:113:9:113:9 | x | VarAccess |
|
||||
| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:112:1:116:1 | fn | Method |
|
||||
| Test.kt:113:14:113:14 | y | VarAccess | Test.kt:113:17:115:5 | { ... } | BlockStmt |
|
||||
| Test.kt:113:17:115:5 | { ... } | BlockStmt | Test.kt:112:1:116:1 | fn | Method |
|
||||
|
||||
@@ -490,10 +490,6 @@
|
||||
| Test.kt:95:36:97:2 | { ... } | Test.kt:96:3:96:10 | return ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:5:103:5 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:5:103:5 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:9:101:30 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:30 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:102:9:102:25 | throw ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | <Expr>; |
|
||||
@@ -503,10 +499,6 @@
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:100:25:110:1 | { ... } | Test.kt:108:9:108:29 | <Expr>; |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:101:9:101:30 | ... -> ... |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:101:22:101:30 | ... -> ... |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:102:9:102:25 | throw ... |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:105:5:109:5 | <Expr>; |
|
||||
@@ -517,10 +509,6 @@
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:108:9:108:29 | <Expr>; |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:101:5:103:5 | ... -> ... |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:101:9:101:30 | ... -> ... |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:101:22:101:30 | ... -> ... |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:102:9:102:25 | throw ... |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:105:5:109:5 | <Expr>; |
|
||||
@@ -530,28 +518,6 @@
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:108:9:108:29 | <Expr>; |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:101:22:101:30 | ... -> ... |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:102:9:102:25 | throw ... |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:105:9:107:5 | ... -> ... |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:106:9:106:29 | <Expr>; |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:108:9:108:29 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | ... -> ... | Test.kt:101:22:101:30 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:102:9:102:25 | throw ... |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:105:9:107:5 | ... -> ... |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:106:9:106:29 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:107:16:109:5 | ... -> ... |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:107:27:109:5 | { ... } |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:108:9:108:29 | <Expr>; |
|
||||
| Test.kt:101:33:103:5 | { ... } | Test.kt:102:9:102:25 | throw ... |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:105:9:107:5 | ... -> ... |
|
||||
| Test.kt:105:5:109:5 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
@@ -570,28 +536,10 @@
|
||||
| Test.kt:107:27:109:5 | { ... } | Test.kt:108:9:108:29 | <Expr>; |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:5:115:5 | ... -> ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:5:115:5 | <Expr>; |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:9:113:14 | ... -> ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | ... -> ... |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:112:32:116:1 | { ... } | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | Test.kt:113:9:113:14 | ... -> ... |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | Test.kt:113:14:113:14 | ... -> ... |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | Test.kt:113:5:115:5 | ... -> ... |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | Test.kt:113:9:113:14 | ... -> ... |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | Test.kt:113:14:113:14 | ... -> ... |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:9:113:14 | ... -> ... | Test.kt:113:14:113:14 | ... -> ... |
|
||||
| Test.kt:113:9:113:14 | ... -> ... | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:9:113:14 | ... -> ... | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:9:113:14 | ... -> ... | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:113:14:113:14 | ... -> ... | Test.kt:113:14:113:14 | <Expr>; |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:113:17:115:5 | { ... } |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:119:2:123:12 | <Expr>; |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:120:3:123:10 | ... -> ... |
|
||||
| Test.kt:118:37:124:1 | { ... } | Test.kt:121:4:121:9 | ... -> ... |
|
||||
|
||||
@@ -207,14 +207,6 @@
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:100:25:110:1 | { ... } |
|
||||
| Test.kt:101:5:103:5 | ... -> ... | Test.kt:101:5:103:5 | <Expr>; |
|
||||
| Test.kt:101:5:103:5 | <Expr>; | Test.kt:100:25:110:1 | { ... } |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:100:25:110:1 | { ... } |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:101:5:103:5 | ... -> ... |
|
||||
| Test.kt:101:9:101:30 | ... -> ... | Test.kt:101:5:103:5 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:100:25:110:1 | { ... } |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:101:5:103:5 | ... -> ... |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:101:5:103:5 | <Expr>; |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:101:9:101:30 | ... -> ... |
|
||||
| Test.kt:101:22:101:30 | <Expr>; | Test.kt:101:22:101:30 | ... -> ... |
|
||||
| Test.kt:102:9:102:25 | throw ... | Test.kt:101:33:103:5 | { ... } |
|
||||
| Test.kt:105:9:107:5 | ... -> ... | Test.kt:105:5:109:5 | <Expr>; |
|
||||
| Test.kt:106:9:106:29 | <Expr>; | Test.kt:105:20:107:5 | { ... } |
|
||||
@@ -222,14 +214,6 @@
|
||||
| Test.kt:113:5:115:5 | ... -> ... | Test.kt:112:32:116:1 | { ... } |
|
||||
| Test.kt:113:5:115:5 | ... -> ... | Test.kt:113:5:115:5 | <Expr>; |
|
||||
| Test.kt:113:5:115:5 | <Expr>; | Test.kt:112:32:116:1 | { ... } |
|
||||
| Test.kt:113:9:113:14 | ... -> ... | Test.kt:112:32:116:1 | { ... } |
|
||||
| Test.kt:113:9:113:14 | ... -> ... | Test.kt:113:5:115:5 | ... -> ... |
|
||||
| Test.kt:113:9:113:14 | ... -> ... | Test.kt:113:5:115:5 | <Expr>; |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:112:32:116:1 | { ... } |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:113:5:115:5 | ... -> ... |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:113:5:115:5 | <Expr>; |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:113:9:113:14 | ... -> ... |
|
||||
| Test.kt:113:14:113:14 | <Expr>; | Test.kt:113:14:113:14 | ... -> ... |
|
||||
| Test.kt:119:2:123:12 | <Expr>; | Test.kt:118:37:124:1 | { ... } |
|
||||
| Test.kt:120:3:123:10 | ... -> ... | Test.kt:118:37:124:1 | { ... } |
|
||||
| Test.kt:120:3:123:10 | ... -> ... | Test.kt:119:2:123:12 | <Expr>; |
|
||||
|
||||
@@ -2406,26 +2406,14 @@ exprs.kt:
|
||||
# 112| 0: [BooleanLiteral] false
|
||||
# 113| 96: [LocalVariableDeclStmt] var ...;
|
||||
# 113| 1: [LocalVariableDeclExpr] b3
|
||||
# 113| 0: [WhenExpr] when ...
|
||||
# 113| 0: [WhenBranch] ... -> ...
|
||||
# 113| 0: [AndLogicalExpr] ... && ...
|
||||
# 113| 0: [VarAccess] b1
|
||||
# 113| 1: [ExprStmt] <Expr>;
|
||||
# 113| 0: [VarAccess] b2
|
||||
# 113| 1: [WhenBranch] ... -> ...
|
||||
# 113| 0: [BooleanLiteral] true
|
||||
# 113| 1: [ExprStmt] <Expr>;
|
||||
# 113| 0: [BooleanLiteral] false
|
||||
# 113| 1: [VarAccess] b2
|
||||
# 114| 97: [LocalVariableDeclStmt] var ...;
|
||||
# 114| 1: [LocalVariableDeclExpr] b4
|
||||
# 114| 0: [WhenExpr] when ...
|
||||
# 114| 0: [WhenBranch] ... -> ...
|
||||
# 114| 0: [OrLogicalExpr] ... || ...
|
||||
# 114| 0: [VarAccess] b1
|
||||
# 114| 1: [ExprStmt] <Expr>;
|
||||
# 114| 0: [BooleanLiteral] true
|
||||
# 114| 1: [WhenBranch] ... -> ...
|
||||
# 114| 0: [BooleanLiteral] true
|
||||
# 114| 1: [ExprStmt] <Expr>;
|
||||
# 114| 0: [VarAccess] b2
|
||||
# 114| 1: [VarAccess] b2
|
||||
# 115| 98: [LocalVariableDeclStmt] var ...;
|
||||
# 115| 1: [LocalVariableDeclExpr] b5
|
||||
# 115| 0: [MethodAccess] not(...)
|
||||
|
||||
@@ -70,6 +70,8 @@
|
||||
| exprs.kt:107:15:107:22 | ... >= ... | exprs.kt:107:15:107:16 | fx | exprs.kt:107:21:107:22 | fy |
|
||||
| exprs.kt:108:15:108:23 | ... == ... | exprs.kt:108:15:108:16 | fx | exprs.kt:108:22:108:23 | fy |
|
||||
| exprs.kt:109:15:109:23 | ... != ... | exprs.kt:109:15:109:16 | fx | exprs.kt:109:22:109:23 | fy |
|
||||
| exprs.kt:113:14:113:21 | ... && ... | exprs.kt:113:14:113:15 | b1 | exprs.kt:113:20:113:21 | b2 |
|
||||
| exprs.kt:114:14:114:21 | ... \|\| ... | exprs.kt:114:14:114:15 | b1 | exprs.kt:114:20:114:21 | b2 |
|
||||
| exprs.kt:127:31:127:41 | ... + ... | exprs.kt:127:31:127:34 | str1 | exprs.kt:127:38:127:41 | str2 |
|
||||
| exprs.kt:127:50:127:60 | ... + ... | exprs.kt:127:50:127:53 | str2 | exprs.kt:127:57:127:60 | str1 |
|
||||
| exprs.kt:128:16:128:26 | ... + ... | exprs.kt:128:16:128:19 | str1 | exprs.kt:128:23:128:26 | str2 |
|
||||
|
||||
@@ -1295,16 +1295,12 @@
|
||||
| exprs.kt:112:14:112:18 | false | exprs.kt:4:1:136:1 | topLevelMethod | BooleanLiteral |
|
||||
| exprs.kt:113:5:113:21 | b3 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
|
||||
| exprs.kt:113:14:113:15 | b1 | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:113:14:113:21 | when ... | exprs.kt:4:1:136:1 | topLevelMethod | WhenExpr |
|
||||
| exprs.kt:113:14:113:21 | ... && ... | exprs.kt:4:1:136:1 | topLevelMethod | AndLogicalExpr |
|
||||
| exprs.kt:113:20:113:21 | b2 | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:113:20:113:21 | false | exprs.kt:4:1:136:1 | topLevelMethod | BooleanLiteral |
|
||||
| exprs.kt:113:20:113:21 | true | exprs.kt:4:1:136:1 | topLevelMethod | BooleanLiteral |
|
||||
| exprs.kt:114:5:114:21 | b4 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
|
||||
| exprs.kt:114:14:114:15 | b1 | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:114:14:114:15 | true | exprs.kt:4:1:136:1 | topLevelMethod | BooleanLiteral |
|
||||
| exprs.kt:114:14:114:21 | when ... | exprs.kt:4:1:136:1 | topLevelMethod | WhenExpr |
|
||||
| exprs.kt:114:14:114:21 | ... \|\| ... | exprs.kt:4:1:136:1 | topLevelMethod | OrLogicalExpr |
|
||||
| exprs.kt:114:20:114:21 | b2 | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
| exprs.kt:114:20:114:21 | true | exprs.kt:4:1:136:1 | topLevelMethod | BooleanLiteral |
|
||||
| exprs.kt:115:5:115:16 | b5 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
|
||||
| exprs.kt:115:14:115:16 | not(...) | exprs.kt:4:1:136:1 | topLevelMethod | MethodAccess |
|
||||
| exprs.kt:115:15:115:16 | b1 | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
|
||||
|
||||
Reference in New Issue
Block a user