mirror of
https://github.com/github/codeql.git
synced 2026-07-11 06:25:38 +02:00
kotlin-extractor: converge local variable entity locations across language versions
The local variable declaration expression (extractVariableExpr) computed its
location via getPsiBasedLocation(v as IrElement). The `as IrElement` cast forced
overload resolution to the generic getPsiBasedLocation(IrElement), which resolves
the PSI element straight from the IR element's raw source offsets via
PsiSourceManager.findPsiElement. Those offsets differ between the two frontend
language versions:
fun f(param: Int) {
val local1 = 2 + 3 // line 6: ` val local1 = 2 + 3`
}
- With -language-version 1.9 the IrVariable offsets cover only the name, so
findPsiElement returns the name leaf and the variable is located at 6:13:6:18.
- With -language-version 2.0 the IrVariable offsets cover the whole declaration,
so it is located at 6:9:6:26 (the `val` keyword through the initialiser).
The IrVariable-specific overload getPsiBasedLocation(IrVariable) is frontend
stable: it finds the leaf at the variable's start offset, walks up to the
enclosing KtVariableDeclaration and returns the span from the `val`/`var` keyword
to the end of the declaration. Using it for the entity location makes both
language versions emit the full declaration span 6:9:6:26.
This is the same helper already used for the enclosing localvariabledeclstmt
location; this change applies it to the variable entity (localvars / the
localvariabledeclexpr) as well, so the two are consistent.
Effect: 12 test-kotlin1 expected files move toward the test-kotlin2 output (all
strictly reduce the tk1-vs-tk2 difference; e.g. variables 16->4, reflection
111->67, exprs 1759->1363 diff lines). test-kotlin2 output is unchanged (the
overload produces the same span there as the generic one did). Both suites pass
all 3333 tests with --check-databases.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Also update the enhanced-nullability Kotlin integration test expected: its
local variable declaration expression now spans the val/var keyword to the
initialiser (user.kt:2:7:2:7 -> user.kt:2:3:2:16), consistent with the
library-test convergence.
This commit is contained in:
@@ -3019,7 +3019,7 @@ open class KotlinFileExtractor(
|
||||
with("variable expr", v) {
|
||||
val varId = useVariable(v)
|
||||
val exprId = tw.getFreshIdLabel<DbLocalvariabledeclexpr>()
|
||||
val locId = getPsiBasedLocation(v as IrElement) ?: tw.getLocation(getVariableLocationProvider(v))
|
||||
val locId = getPsiBasedLocation(v) ?: tw.getLocation(getVariableLocationProvider(v))
|
||||
val type = useType(v.type)
|
||||
tw.writeLocalvars(varId, v.name.asString(), type.javaResult.id, exprId)
|
||||
tw.writeLocalvarsKotlinType(varId, type.kotlinResult.id)
|
||||
|
||||
@@ -2,7 +2,7 @@ exprs
|
||||
| Test.java:5:19:5:25 | Integer | Integer |
|
||||
| Test.java:5:38:5:44 | Integer | Integer |
|
||||
| Test.java:5:58:5:58 | p | Integer |
|
||||
| user.kt:2:7:2:7 | x | int |
|
||||
| user.kt:2:3:2:16 | x | int |
|
||||
| user.kt:2:11:2:11 | t | Test |
|
||||
| user.kt:2:11:2:16 | f(...) | Integer |
|
||||
| user.kt:2:13:2:16 | <implicit not null> | int |
|
||||
|
||||
@@ -10,28 +10,28 @@
|
||||
| Test.kt:4:2:79:2 | Entry | 0 | Test.kt:4:2:79:2 | Entry |
|
||||
| Test.kt:4:2:79:2 | Entry | 1 | Test.kt:4:13:79:2 | { ... } |
|
||||
| Test.kt:4:2:79:2 | Entry | 2 | Test.kt:5:3:5:16 | var ...; |
|
||||
| Test.kt:4:2:79:2 | Entry | 3 | Test.kt:5:7:5:7 | Before x |
|
||||
| Test.kt:4:2:79:2 | Entry | 3 | Test.kt:5:3:5:16 | Before x |
|
||||
| Test.kt:4:2:79:2 | Entry | 4 | Test.kt:5:16:5:16 | 0 |
|
||||
| Test.kt:4:2:79:2 | Entry | 5 | Test.kt:5:7:5:7 | x |
|
||||
| Test.kt:4:2:79:2 | Entry | 6 | Test.kt:5:7:5:7 | After x |
|
||||
| Test.kt:4:2:79:2 | Entry | 5 | Test.kt:5:3:5:16 | x |
|
||||
| Test.kt:4:2:79:2 | Entry | 6 | Test.kt:5:3:5:16 | After x |
|
||||
| Test.kt:4:2:79:2 | Entry | 7 | Test.kt:5:3:5:16 | After var ...; |
|
||||
| Test.kt:4:2:79:2 | Entry | 8 | Test.kt:6:3:6:18 | var ...; |
|
||||
| Test.kt:4:2:79:2 | Entry | 9 | Test.kt:6:7:6:7 | Before y |
|
||||
| Test.kt:4:2:79:2 | Entry | 9 | Test.kt:6:3:6:18 | Before y |
|
||||
| Test.kt:4:2:79:2 | Entry | 10 | Test.kt:6:17:6:18 | 50 |
|
||||
| Test.kt:4:2:79:2 | Entry | 11 | Test.kt:6:7:6:7 | y |
|
||||
| Test.kt:4:2:79:2 | Entry | 12 | Test.kt:6:7:6:7 | After y |
|
||||
| Test.kt:4:2:79:2 | Entry | 11 | Test.kt:6:3:6:18 | y |
|
||||
| Test.kt:4:2:79:2 | Entry | 12 | Test.kt:6:3:6:18 | After y |
|
||||
| Test.kt:4:2:79:2 | Entry | 13 | Test.kt:6:3:6:18 | After var ...; |
|
||||
| Test.kt:4:2:79:2 | Entry | 14 | Test.kt:7:3:7:16 | var ...; |
|
||||
| Test.kt:4:2:79:2 | Entry | 15 | Test.kt:7:7:7:7 | Before z |
|
||||
| Test.kt:4:2:79:2 | Entry | 15 | Test.kt:7:3:7:16 | Before z |
|
||||
| Test.kt:4:2:79:2 | Entry | 16 | Test.kt:7:16:7:16 | 0 |
|
||||
| Test.kt:4:2:79:2 | Entry | 17 | Test.kt:7:7:7:7 | z |
|
||||
| Test.kt:4:2:79:2 | Entry | 18 | Test.kt:7:7:7:7 | After z |
|
||||
| Test.kt:4:2:79:2 | Entry | 17 | Test.kt:7:3:7:16 | z |
|
||||
| Test.kt:4:2:79:2 | Entry | 18 | Test.kt:7:3:7:16 | After z |
|
||||
| Test.kt:4:2:79:2 | Entry | 19 | Test.kt:7:3:7:16 | After var ...; |
|
||||
| Test.kt:4:2:79:2 | Entry | 20 | Test.kt:8:3:8:16 | var ...; |
|
||||
| Test.kt:4:2:79:2 | Entry | 21 | Test.kt:8:7:8:7 | Before w |
|
||||
| Test.kt:4:2:79:2 | Entry | 21 | Test.kt:8:3:8:16 | Before w |
|
||||
| Test.kt:4:2:79:2 | Entry | 22 | Test.kt:8:16:8:16 | 0 |
|
||||
| Test.kt:4:2:79:2 | Entry | 23 | Test.kt:8:7:8:7 | w |
|
||||
| Test.kt:4:2:79:2 | Entry | 24 | Test.kt:8:7:8:7 | After w |
|
||||
| Test.kt:4:2:79:2 | Entry | 23 | Test.kt:8:3:8:16 | w |
|
||||
| Test.kt:4:2:79:2 | Entry | 24 | Test.kt:8:3:8:16 | After w |
|
||||
| Test.kt:4:2:79:2 | Entry | 25 | Test.kt:8:3:8:16 | After var ...; |
|
||||
| Test.kt:4:2:79:2 | Entry | 26 | Test.kt:11:3:16:3 | <Expr>; |
|
||||
| Test.kt:4:2:79:2 | Entry | 27 | Test.kt:11:3:16:3 | when ... |
|
||||
@@ -222,15 +222,15 @@
|
||||
| Test.kt:82:1:89:1 | Entry | 2 | Test.kt:83:2:88:2 | try ... |
|
||||
| Test.kt:82:1:89:1 | Entry | 3 | Test.kt:83:6:86:2 | { ... } |
|
||||
| Test.kt:82:1:89:1 | Entry | 4 | Test.kt:84:3:84:18 | var ...; |
|
||||
| Test.kt:82:1:89:1 | Entry | 5 | Test.kt:84:7:84:7 | Before x |
|
||||
| Test.kt:82:1:89:1 | Entry | 5 | Test.kt:84:3:84:18 | Before x |
|
||||
| Test.kt:82:1:89:1 | Entry | 6 | Test.kt:84:11:84:18 | Before (...)... |
|
||||
| Test.kt:82:1:89:1 | Entry | 7 | Test.kt:84:11:84:11 | o |
|
||||
| Test.kt:82:1:89:1 | Entry | 8 | Test.kt:84:11:84:18 | (...)... |
|
||||
| Test.kt:82:1:89:1 | Exit | 0 | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | 0 | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:84:11:84:18 | After (...)... | 0 | Test.kt:84:11:84:18 | After (...)... |
|
||||
| Test.kt:84:11:84:18 | After (...)... | 1 | Test.kt:84:7:84:7 | x |
|
||||
| Test.kt:84:11:84:18 | After (...)... | 2 | Test.kt:84:7:84:7 | After x |
|
||||
| Test.kt:84:11:84:18 | After (...)... | 1 | Test.kt:84:3:84:18 | x |
|
||||
| Test.kt:84:11:84:18 | After (...)... | 2 | Test.kt:84:3:84:18 | After x |
|
||||
| Test.kt:84:11:84:18 | After (...)... | 3 | Test.kt:84:3:84:18 | After var ...; |
|
||||
| Test.kt:84:11:84:18 | After (...)... | 4 | Test.kt:85:3:85:10 | Before return ... |
|
||||
| Test.kt:84:11:84:18 | After (...)... | 5 | Test.kt:85:10:85:10 | 1 |
|
||||
@@ -250,15 +250,15 @@
|
||||
| Test.kt:91:1:98:1 | Entry | 2 | Test.kt:92:2:97:2 | try ... |
|
||||
| Test.kt:91:1:98:1 | Entry | 3 | Test.kt:92:6:95:2 | { ... } |
|
||||
| Test.kt:91:1:98:1 | Entry | 4 | Test.kt:93:3:93:13 | var ...; |
|
||||
| Test.kt:91:1:98:1 | Entry | 5 | Test.kt:93:7:93:7 | Before x |
|
||||
| Test.kt:91:1:98:1 | Entry | 5 | Test.kt:93:3:93:13 | Before x |
|
||||
| Test.kt:91:1:98:1 | Entry | 6 | Test.kt:93:11:93:13 | Before ...!! |
|
||||
| Test.kt:91:1:98:1 | Entry | 7 | Test.kt:93:11:93:11 | o |
|
||||
| Test.kt:91:1:98:1 | Entry | 8 | Test.kt:93:11:93:13 | ...!! |
|
||||
| Test.kt:91:1:98:1 | Exit | 0 | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | 0 | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:93:11:93:13 | After ...!! | 0 | Test.kt:93:11:93:13 | After ...!! |
|
||||
| Test.kt:93:11:93:13 | After ...!! | 1 | Test.kt:93:7:93:7 | x |
|
||||
| Test.kt:93:11:93:13 | After ...!! | 2 | Test.kt:93:7:93:7 | After x |
|
||||
| Test.kt:93:11:93:13 | After ...!! | 1 | Test.kt:93:3:93:13 | x |
|
||||
| Test.kt:93:11:93:13 | After ...!! | 2 | Test.kt:93:3:93:13 | After x |
|
||||
| Test.kt:93:11:93:13 | After ...!! | 3 | Test.kt:93:3:93:13 | After var ...; |
|
||||
| Test.kt:93:11:93:13 | After ...!! | 4 | Test.kt:94:3:94:10 | Before return ... |
|
||||
| Test.kt:93:11:93:13 | After ...!! | 5 | Test.kt:94:10:94:10 | 1 |
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Exceptional Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | x |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:86:34:88:2 | { ... } |
|
||||
| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Exceptional Exit |
|
||||
@@ -38,7 +38,7 @@
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Exceptional Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | x |
|
||||
| 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:91:22:98:1 | { ... } | Test.kt:95:36:97:2 | { ... } |
|
||||
| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Exceptional Exit |
|
||||
|
||||
@@ -16,17 +16,17 @@
|
||||
| Test.kt:43:3:43:3 | <Expr>; | Test.kt:4:2:79:2 | Normal Exit |
|
||||
| Test.kt:82:1:89:1 | Exceptional Exit | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | x |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x |
|
||||
| Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) |
|
||||
| Test.kt:84:7:84:7 | x | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:84:3:84:18 | x | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Exceptional Exit |
|
||||
| Test.kt:86:4:88:2 | catch (...) | Test.kt:86:34:88:2 | { ... } |
|
||||
| Test.kt:86:34:88:2 | { ... } | Test.kt:82:1:89:1 | Normal Exit |
|
||||
| Test.kt:91:1:98:1 | Exceptional Exit | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit |
|
||||
| Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | x |
|
||||
| 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:93:7:93:7 | x | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:93:3:93:13 | x | Test.kt:91:1:98:1 | Normal Exit |
|
||||
| Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Exceptional Exit |
|
||||
| Test.kt:95:4:97:2 | catch (...) | Test.kt:95:36:97:2 | { ... } |
|
||||
| Test.kt:95:36:97:2 | { ... } | Test.kt:91:1:98:1 | Normal Exit |
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
| Test.kt:4:2:79:2 | Normal Exit | Method | Test.kt:4:2:79:2 | Exit | Method |
|
||||
| Test.kt:4:13:79:2 | { ... } | BlockStmt | Test.kt:5:3:5:16 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:5:3:5:16 | var ...; | LocalVariableDeclStmt | Test.kt:5:16:5:16 | 0 | IntegerLiteral |
|
||||
| Test.kt:5:7:5:7 | x | LocalVariableDeclExpr | Test.kt:6:3:6:18 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:5:16:5:16 | 0 | IntegerLiteral | Test.kt:5:7:5:7 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:5:3:5:16 | x | LocalVariableDeclExpr | Test.kt:6:3:6:18 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:5:16:5:16 | 0 | IntegerLiteral | Test.kt:5:3:5:16 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:6:3:6:18 | var ...; | LocalVariableDeclStmt | Test.kt:6:17:6:18 | 50 | LongLiteral |
|
||||
| Test.kt:6:7:6:7 | y | LocalVariableDeclExpr | Test.kt:7:3:7:16 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:6:17:6:18 | 50 | LongLiteral | Test.kt:6:7:6:7 | y | LocalVariableDeclExpr |
|
||||
| Test.kt:6:3:6:18 | y | LocalVariableDeclExpr | Test.kt:7:3:7:16 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:6:17:6:18 | 50 | LongLiteral | Test.kt:6:3:6:18 | y | LocalVariableDeclExpr |
|
||||
| Test.kt:7:3:7:16 | var ...; | LocalVariableDeclStmt | Test.kt:7:16:7:16 | 0 | IntegerLiteral |
|
||||
| Test.kt:7:7:7:7 | z | LocalVariableDeclExpr | Test.kt:8:3:8:16 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:7:16:7:16 | 0 | IntegerLiteral | Test.kt:7:7:7:7 | z | LocalVariableDeclExpr |
|
||||
| Test.kt:7:3:7:16 | z | LocalVariableDeclExpr | Test.kt:8:3:8:16 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:7:16:7:16 | 0 | IntegerLiteral | Test.kt:7:3:7:16 | z | LocalVariableDeclExpr |
|
||||
| Test.kt:8:3:8:16 | var ...; | LocalVariableDeclStmt | Test.kt:8:16:8:16 | 0 | IntegerLiteral |
|
||||
| Test.kt:8:7:8:7 | w | LocalVariableDeclExpr | Test.kt:11:3:16:3 | <Expr>; | ExprStmt |
|
||||
| Test.kt:8:16:8:16 | 0 | IntegerLiteral | Test.kt:8:7:8:7 | w | LocalVariableDeclExpr |
|
||||
| Test.kt:8:3:8:16 | w | LocalVariableDeclExpr | Test.kt:11:3:16:3 | <Expr>; | ExprStmt |
|
||||
| Test.kt:8:16:8:16 | 0 | IntegerLiteral | Test.kt:8:3:8:16 | w | LocalVariableDeclExpr |
|
||||
| Test.kt:11:3:16:3 | ... -> ... | WhenBranch | Test.kt:11:3:16:3 | true | BooleanLiteral |
|
||||
| Test.kt:11:3:16:3 | ... -> ... | WhenBranch | Test.kt:11:7:11:7 | x | VarAccess |
|
||||
| Test.kt:11:3:16:3 | <Expr>; | ExprStmt | Test.kt:11:3:16:3 | when ... | WhenExpr |
|
||||
@@ -130,9 +130,9 @@
|
||||
| Test.kt:83:2:88:2 | try ... | TryStmt | Test.kt:83:6:86:2 | { ... } | BlockStmt |
|
||||
| Test.kt:83:6:86:2 | { ... } | BlockStmt | Test.kt:84:3:84:18 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:84:3:84:18 | var ...; | LocalVariableDeclStmt | Test.kt:84:11:84:11 | o | VarAccess |
|
||||
| Test.kt:84:7:84:7 | x | LocalVariableDeclExpr | Test.kt:85:10:85:10 | 1 | IntegerLiteral |
|
||||
| Test.kt:84:3:84:18 | x | LocalVariableDeclExpr | Test.kt:85:10:85:10 | 1 | IntegerLiteral |
|
||||
| Test.kt:84:11:84:11 | o | VarAccess | Test.kt:84:11:84:18 | (...)... | CastExpr |
|
||||
| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:84:7:84:7 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:84:3:84:18 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:86:4:88:2 | catch (...) | CatchClause |
|
||||
| Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method |
|
||||
| Test.kt:85:10:85:10 | 1 | IntegerLiteral | Test.kt:85:3:85:10 | return ... | ReturnStmt |
|
||||
@@ -149,9 +149,9 @@
|
||||
| Test.kt:92:2:97:2 | try ... | TryStmt | Test.kt:92:6:95:2 | { ... } | BlockStmt |
|
||||
| Test.kt:92:6:95:2 | { ... } | BlockStmt | Test.kt:93:3:93:13 | var ...; | LocalVariableDeclStmt |
|
||||
| Test.kt:93:3:93:13 | var ...; | LocalVariableDeclStmt | Test.kt:93:11:93:11 | o | VarAccess |
|
||||
| Test.kt:93:7:93:7 | x | LocalVariableDeclExpr | Test.kt:94:10:94:10 | 1 | IntegerLiteral |
|
||||
| Test.kt:93:3:93:13 | x | LocalVariableDeclExpr | Test.kt:94:10:94:10 | 1 | IntegerLiteral |
|
||||
| Test.kt:93:11:93:11 | o | VarAccess | Test.kt:93:11:93:13 | ...!! | NotNullExpr |
|
||||
| Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:93:7:93:7 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:93:3:93:13 | x | LocalVariableDeclExpr |
|
||||
| Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:95:4:97:2 | catch (...) | CatchClause |
|
||||
| Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method |
|
||||
| Test.kt:94:10:94:10 | 1 | IntegerLiteral | Test.kt:94:3:94:10 | return ... | ReturnStmt |
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
delegatedProperties
|
||||
| delegatedProperties.kt:6:9:9:9 | prop1 | prop1 | local | delegatedProperties.kt:6:24:9:9 | Lazy<Integer> prop1$delegate | delegatedProperties.kt:6:27:9:9 | lazy(...) |
|
||||
| delegatedProperties.kt:19:9:19:51 | varResource1 | varResource1 | local | delegatedProperties.kt:19:31:19:51 | ResourceDelegate varResource1$delegate | delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) |
|
||||
| delegatedProperties.kt:23:9:23:31 | name | name | local | delegatedProperties.kt:23:26:23:31 | Map<String,Object> name$delegate | delegatedProperties.kt:23:29:23:31 | map |
|
||||
| delegatedProperties.kt:33:9:33:76 | readOnly | readOnly | local | delegatedProperties.kt:33:27:33:47 | ReadWriteProperty<Object,Integer> readOnly$delegate | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) |
|
||||
| delegatedProperties.kt:34:9:34:48 | readWrite | readWrite | local | delegatedProperties.kt:34:28:34:48 | ReadWriteProperty<Object,Integer> readWrite$delegate | delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) |
|
||||
| delegatedProperties.kt:39:9:39:51 | varResource2 | varResource2 | local | delegatedProperties.kt:39:31:39:51 | ResourceDelegate varResource2$delegate | delegatedProperties.kt:39:31:39:51 | provideDelegate(...) |
|
||||
| delegatedProperties.kt:6:9:9:9 | prop1 | prop1 | local | delegatedProperties.kt:6:9:9:9 | Lazy<Integer> prop1$delegate | delegatedProperties.kt:6:27:9:9 | lazy(...) |
|
||||
| delegatedProperties.kt:19:9:19:51 | varResource1 | varResource1 | local | delegatedProperties.kt:19:9:19:51 | ResourceDelegate varResource1$delegate | delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) |
|
||||
| delegatedProperties.kt:23:9:23:31 | name | name | local | delegatedProperties.kt:23:9:23:31 | Map<String,Object> name$delegate | delegatedProperties.kt:23:29:23:31 | map |
|
||||
| delegatedProperties.kt:33:9:33:76 | readOnly | readOnly | local | delegatedProperties.kt:33:9:33:76 | ReadWriteProperty<Object,Integer> readOnly$delegate | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) |
|
||||
| delegatedProperties.kt:34:9:34:48 | readWrite | readWrite | local | delegatedProperties.kt:34:9:34:48 | ReadWriteProperty<Object,Integer> readWrite$delegate | delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) |
|
||||
| delegatedProperties.kt:39:9:39:51 | varResource2 | varResource2 | local | delegatedProperties.kt:39:9:39:51 | ResourceDelegate varResource2$delegate | delegatedProperties.kt:39:31:39:51 | provideDelegate(...) |
|
||||
| delegatedProperties.kt:42:5:42:47 | varResource0 | varResource0 | non-local | delegatedProperties.kt:42:27:42:47 | varResource0$delegate | delegatedProperties.kt:42:30:42:47 | new ResourceDelegate(...) |
|
||||
| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedToMember1 | non-local | delegatedProperties.kt:66:33:66:50 | delegatedToMember1$delegate | delegatedProperties.kt:66:36:66:50 | ...::... |
|
||||
| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedToMember2 | non-local | delegatedProperties.kt:67:33:67:53 | delegatedToMember2$delegate | delegatedProperties.kt:67:36:67:53 | ...::... |
|
||||
@@ -15,7 +15,7 @@ delegatedProperties
|
||||
| delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | delegatedToAnotherClass1 | non-local | delegatedProperties.kt:75:39:75:78 | delegatedToAnotherClass1$delegate | delegatedProperties.kt:75:42:75:78 | ...::... |
|
||||
| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedToTopLevel | non-local | delegatedProperties.kt:77:34:77:49 | delegatedToTopLevel$delegate | delegatedProperties.kt:77:37:77:49 | ...::... |
|
||||
| delegatedProperties.kt:79:5:79:38 | max | max | non-local | delegatedProperties.kt:79:18:79:38 | max$delegate | delegatedProperties.kt:79:21:79:38 | ...::... |
|
||||
| delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedToMember3 | local | delegatedProperties.kt:82:37:82:54 | KMutableProperty0<Integer> delegatedToMember3$delegate | delegatedProperties.kt:82:40:82:54 | ...::... |
|
||||
| delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedToMember3 | local | delegatedProperties.kt:82:9:82:54 | KMutableProperty0<Integer> delegatedToMember3$delegate | delegatedProperties.kt:82:40:82:54 | ...::... |
|
||||
| delegatedProperties.kt:87:1:87:46 | extDelegated | extDelegated | non-local | delegatedProperties.kt:87:31:87:46 | extDelegated$delegateMyClass | delegatedProperties.kt:87:34:87:46 | ...::... |
|
||||
delegatedPropertyTypes
|
||||
| delegatedProperties.kt:6:9:9:9 | prop1 | file://:0:0:0:0 | int | file://<external>/Lazy.class:0:0:0:0 | Lazy<Integer> |
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -341,7 +341,7 @@
|
||||
| methods4.kt:7:5:7:34 | Unit | TypeAccess |
|
||||
| methods4.kt:7:11:7:29 | InsideNestedTest | TypeAccess |
|
||||
| methods5.kt:3:1:11:1 | Unit | TypeAccess |
|
||||
| methods5.kt:4:7:4:7 | x | LocalVariableDeclExpr |
|
||||
| methods5.kt:4:3:4:11 | x | LocalVariableDeclExpr |
|
||||
| methods5.kt:4:11:4:11 | 5 | IntegerLiteral |
|
||||
| methods5.kt:5:3:5:27 | int | TypeAccess |
|
||||
| methods5.kt:5:13:5:18 | int | TypeAccess |
|
||||
|
||||
@@ -84,4 +84,4 @@
|
||||
| modifiers.kt:36:22:36:40 | test0 | Property | private |
|
||||
| modifiers.kt:38:5:40:5 | fn | Method | final |
|
||||
| modifiers.kt:38:5:40:5 | fn | Method | public |
|
||||
| modifiers.kt:39:22:39:26 | LateInit test1 | LocalVariableDecl | lateinit |
|
||||
| modifiers.kt:39:18:39:36 | LateInit test1 | LocalVariableDecl | lateinit |
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
variableInitializerType
|
||||
| reflection.kt:7:13:7:15 | KFunction<Double> ref | file://<external>/KFunction.class:0:0:0:0 | KFunction<Double> | reflection.kt:7:49:7:54 | new Function2<Ccc,Integer,Double>(...) { ... } | file://<external>/Function2.class:0:0:0:0 | Function2<Ccc,Integer,Double> | true |
|
||||
| reflection.kt:7:13:7:15 | KFunction<Double> ref | file://<external>/KFunction.class:0:0:0:0 | KFunction<Double> | reflection.kt:7:49:7:54 | new Function2<Ccc,Integer,Double>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
| reflection.kt:10:13:10:14 | KProperty1<C,Integer> x0 | file://<external>/KProperty1.class:0:0:0:0 | KProperty1<C,Integer> | reflection.kt:10:38:10:42 | new KProperty1<C,Integer>(...) { ... } | file://<external>/KProperty1.class:0:0:0:0 | KProperty1<C,Integer> | true |
|
||||
| reflection.kt:10:13:10:14 | KProperty1<C,Integer> x0 | file://<external>/KProperty1.class:0:0:0:0 | KProperty1<C,Integer> | reflection.kt:10:38:10:42 | new KProperty1<C,Integer>(...) { ... } | file://<external>/PropertyReference.class:0:0:0:0 | PropertyReference | true |
|
||||
| reflection.kt:13:13:13:14 | Getter<C,Integer> x3 | file://<external>/KProperty1$Getter.class:0:0:0:0 | Getter<C,Integer> | file://<external>/KProperty1$Getter.class:0:0:0:0 | Getter<C,Integer> | file://<external>/Function1.class:0:0:0:0 | Function1<C,Integer> | true |
|
||||
| reflection.kt:13:13:13:14 | Getter<C,Integer> x3 | file://<external>/KProperty1$Getter.class:0:0:0:0 | Getter<C,Integer> | file://<external>/KProperty1$Getter.class:0:0:0:0 | Getter<C,Integer> | file://<external>/KProperty$Getter.class:0:0:0:0 | Getter<Integer> | true |
|
||||
| reflection.kt:14:13:14:14 | KFunction<Integer> x4 | file://<external>/KFunction.class:0:0:0:0 | KFunction<Integer> | reflection.kt:14:38:14:44 | new Function1<C,Integer>(...) { ... } | file://<external>/Function1.class:0:0:0:0 | Function1<C,Integer> | true |
|
||||
| reflection.kt:14:13:14:14 | KFunction<Integer> x4 | file://<external>/KFunction.class:0:0:0:0 | KFunction<Integer> | reflection.kt:14:38:14:44 | new Function1<C,Integer>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
| reflection.kt:15:13:15:14 | KProperty0<Integer> x5 | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> | reflection.kt:15:35:15:41 | new KProperty0<Integer>(...) { ... } | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> | true |
|
||||
| reflection.kt:15:13:15:14 | KProperty0<Integer> x5 | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> | reflection.kt:15:35:15:41 | new KProperty0<Integer>(...) { ... } | file://<external>/PropertyReference.class:0:0:0:0 | PropertyReference | true |
|
||||
| reflection.kt:17:13:17:14 | KMutableProperty1<C,Integer> y0 | file://<external>/KMutableProperty1.class:0:0:0:0 | KMutableProperty1<C,Integer> | reflection.kt:17:45:17:49 | new KMutableProperty1<C,Integer>(...) { ... } | file://<external>/KMutableProperty1.class:0:0:0:0 | KMutableProperty1<C,Integer> | true |
|
||||
| reflection.kt:17:13:17:14 | KMutableProperty1<C,Integer> y0 | file://<external>/KMutableProperty1.class:0:0:0:0 | KMutableProperty1<C,Integer> | reflection.kt:17:45:17:49 | new KMutableProperty1<C,Integer>(...) { ... } | file://<external>/PropertyReference.class:0:0:0:0 | PropertyReference | true |
|
||||
| reflection.kt:20:13:20:14 | Setter<C,Integer> y3 | file://<external>/KMutableProperty1$Setter.class:0:0:0:0 | Setter<C,Integer> | file://<external>/KMutableProperty1$Setter.class:0:0:0:0 | Setter<C,Integer> | file://<external>/Function2.class:0:0:0:0 | Function2<C,Integer,Unit> | true |
|
||||
| reflection.kt:20:13:20:14 | Setter<C,Integer> y3 | file://<external>/KMutableProperty1$Setter.class:0:0:0:0 | Setter<C,Integer> | file://<external>/KMutableProperty1$Setter.class:0:0:0:0 | Setter<C,Integer> | file://<external>/KMutableProperty$Setter.class:0:0:0:0 | Setter<Integer> | true |
|
||||
| reflection.kt:21:13:21:14 | KFunction<Unit> y4 | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:21:44:21:50 | new Function2<C,Integer,Unit>(...) { ... } | file://<external>/Function2.class:0:0:0:0 | Function2<C,Integer,Unit> | true |
|
||||
| reflection.kt:21:13:21:14 | KFunction<Unit> y4 | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:21:44:21:50 | new Function2<C,Integer,Unit>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
| reflection.kt:22:13:22:14 | KMutableProperty0<Integer> y5 | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> | reflection.kt:22:42:22:48 | new KMutableProperty0<Integer>(...) { ... } | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> | true |
|
||||
| reflection.kt:22:13:22:14 | KMutableProperty0<Integer> y5 | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> | reflection.kt:22:42:22:48 | new KMutableProperty0<Integer>(...) { ... } | file://<external>/PropertyReference.class:0:0:0:0 | PropertyReference | true |
|
||||
| reflection.kt:24:13:24:16 | KProperty2<C,Integer,Integer> prop | file://<external>/KProperty2.class:0:0:0:0 | KProperty2<C,Integer,Integer> | file://<external>/KProperty2.class:0:0:0:0 | KProperty2<C,Integer,Integer> | file://<external>/Function2.class:0:0:0:0 | Function2<C,Integer,Integer> | true |
|
||||
| reflection.kt:24:13:24:16 | KProperty2<C,Integer,Integer> prop | file://<external>/KProperty2.class:0:0:0:0 | KProperty2<C,Integer,Integer> | file://<external>/KProperty2.class:0:0:0:0 | KProperty2<C,Integer,Integer> | file://<external>/KProperty.class:0:0:0:0 | KProperty<Integer> | true |
|
||||
| reflection.kt:116:13:116:13 | KFunction<Unit> x | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:116:40:116:44 | new Function1<Integer,Unit>(...) { ... } | file://<external>/Function1.class:0:0:0:0 | Function1<Integer,Unit> | true |
|
||||
| reflection.kt:116:13:116:13 | KFunction<Unit> x | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:116:40:116:44 | new Function1<Integer,Unit>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
| reflection.kt:7:9:7:54 | KFunction<Double> ref | file://<external>/KFunction.class:0:0:0:0 | KFunction<Double> | reflection.kt:7:49:7:54 | new Function2<Ccc,Integer,Double>(...) { ... } | file://<external>/Function2.class:0:0:0:0 | Function2<Ccc,Integer,Double> | true |
|
||||
| reflection.kt:7:9:7:54 | KFunction<Double> ref | file://<external>/KFunction.class:0:0:0:0 | KFunction<Double> | reflection.kt:7:49:7:54 | new Function2<Ccc,Integer,Double>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
| reflection.kt:10:9:10:42 | KProperty1<C,Integer> x0 | file://<external>/KProperty1.class:0:0:0:0 | KProperty1<C,Integer> | reflection.kt:10:38:10:42 | new KProperty1<C,Integer>(...) { ... } | file://<external>/KProperty1.class:0:0:0:0 | KProperty1<C,Integer> | true |
|
||||
| reflection.kt:10:9:10:42 | KProperty1<C,Integer> x0 | file://<external>/KProperty1.class:0:0:0:0 | KProperty1<C,Integer> | reflection.kt:10:38:10:42 | new KProperty1<C,Integer>(...) { ... } | file://<external>/PropertyReference.class:0:0:0:0 | PropertyReference | true |
|
||||
| reflection.kt:13:9:13:53 | Getter<C,Integer> x3 | file://<external>/KProperty1$Getter.class:0:0:0:0 | Getter<C,Integer> | file://<external>/KProperty1$Getter.class:0:0:0:0 | Getter<C,Integer> | file://<external>/Function1.class:0:0:0:0 | Function1<C,Integer> | true |
|
||||
| reflection.kt:13:9:13:53 | Getter<C,Integer> x3 | file://<external>/KProperty1$Getter.class:0:0:0:0 | Getter<C,Integer> | file://<external>/KProperty1$Getter.class:0:0:0:0 | Getter<C,Integer> | file://<external>/KProperty$Getter.class:0:0:0:0 | Getter<Integer> | true |
|
||||
| reflection.kt:14:9:14:44 | KFunction<Integer> x4 | file://<external>/KFunction.class:0:0:0:0 | KFunction<Integer> | reflection.kt:14:38:14:44 | new Function1<C,Integer>(...) { ... } | file://<external>/Function1.class:0:0:0:0 | Function1<C,Integer> | true |
|
||||
| reflection.kt:14:9:14:44 | KFunction<Integer> x4 | file://<external>/KFunction.class:0:0:0:0 | KFunction<Integer> | reflection.kt:14:38:14:44 | new Function1<C,Integer>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
| reflection.kt:15:9:15:41 | KProperty0<Integer> x5 | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> | reflection.kt:15:35:15:41 | new KProperty0<Integer>(...) { ... } | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> | true |
|
||||
| reflection.kt:15:9:15:41 | KProperty0<Integer> x5 | file://<external>/KProperty0.class:0:0:0:0 | KProperty0<Integer> | reflection.kt:15:35:15:41 | new KProperty0<Integer>(...) { ... } | file://<external>/PropertyReference.class:0:0:0:0 | PropertyReference | true |
|
||||
| reflection.kt:17:9:17:49 | KMutableProperty1<C,Integer> y0 | file://<external>/KMutableProperty1.class:0:0:0:0 | KMutableProperty1<C,Integer> | reflection.kt:17:45:17:49 | new KMutableProperty1<C,Integer>(...) { ... } | file://<external>/KMutableProperty1.class:0:0:0:0 | KMutableProperty1<C,Integer> | true |
|
||||
| reflection.kt:17:9:17:49 | KMutableProperty1<C,Integer> y0 | file://<external>/KMutableProperty1.class:0:0:0:0 | KMutableProperty1<C,Integer> | reflection.kt:17:45:17:49 | new KMutableProperty1<C,Integer>(...) { ... } | file://<external>/PropertyReference.class:0:0:0:0 | PropertyReference | true |
|
||||
| reflection.kt:20:9:20:60 | Setter<C,Integer> y3 | file://<external>/KMutableProperty1$Setter.class:0:0:0:0 | Setter<C,Integer> | file://<external>/KMutableProperty1$Setter.class:0:0:0:0 | Setter<C,Integer> | file://<external>/Function2.class:0:0:0:0 | Function2<C,Integer,Unit> | true |
|
||||
| reflection.kt:20:9:20:60 | Setter<C,Integer> y3 | file://<external>/KMutableProperty1$Setter.class:0:0:0:0 | Setter<C,Integer> | file://<external>/KMutableProperty1$Setter.class:0:0:0:0 | Setter<C,Integer> | file://<external>/KMutableProperty$Setter.class:0:0:0:0 | Setter<Integer> | true |
|
||||
| reflection.kt:21:9:21:50 | KFunction<Unit> y4 | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:21:44:21:50 | new Function2<C,Integer,Unit>(...) { ... } | file://<external>/Function2.class:0:0:0:0 | Function2<C,Integer,Unit> | true |
|
||||
| reflection.kt:21:9:21:50 | KFunction<Unit> y4 | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:21:44:21:50 | new Function2<C,Integer,Unit>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
| reflection.kt:22:9:22:48 | KMutableProperty0<Integer> y5 | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> | reflection.kt:22:42:22:48 | new KMutableProperty0<Integer>(...) { ... } | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> | true |
|
||||
| reflection.kt:22:9:22:48 | KMutableProperty0<Integer> y5 | file://<external>/KMutableProperty0.class:0:0:0:0 | KMutableProperty0<Integer> | reflection.kt:22:42:22:48 | new KMutableProperty0<Integer>(...) { ... } | file://<external>/PropertyReference.class:0:0:0:0 | PropertyReference | true |
|
||||
| reflection.kt:24:9:24:91 | KProperty2<C,Integer,Integer> prop | file://<external>/KProperty2.class:0:0:0:0 | KProperty2<C,Integer,Integer> | file://<external>/KProperty2.class:0:0:0:0 | KProperty2<C,Integer,Integer> | file://<external>/Function2.class:0:0:0:0 | Function2<C,Integer,Integer> | true |
|
||||
| reflection.kt:24:9:24:91 | KProperty2<C,Integer,Integer> prop | file://<external>/KProperty2.class:0:0:0:0 | KProperty2<C,Integer,Integer> | file://<external>/KProperty2.class:0:0:0:0 | KProperty2<C,Integer,Integer> | file://<external>/KProperty.class:0:0:0:0 | KProperty<Integer> | true |
|
||||
| reflection.kt:116:9:116:44 | KFunction<Unit> x | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:116:40:116:44 | new Function1<Integer,Unit>(...) { ... } | file://<external>/Function1.class:0:0:0:0 | Function1<Integer,Unit> | true |
|
||||
| reflection.kt:116:9:116:44 | KFunction<Unit> x | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:116:40:116:44 | new Function1<Integer,Unit>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
|
||||
invocation
|
||||
| reflection.kt:8:17:8:24 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
|
||||
| reflection.kt:11:23:11:33 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
| stmts.kt:14:13:14:13 | x | VarAccess |
|
||||
| stmts.kt:14:13:14:17 | ... < ... | LTExpr |
|
||||
| stmts.kt:14:17:14:17 | y | VarAccess |
|
||||
| stmts.kt:15:9:15:9 | z | LocalVariableDeclExpr |
|
||||
| stmts.kt:15:5:15:13 | z | LocalVariableDeclExpr |
|
||||
| stmts.kt:15:13:15:13 | 3 | IntegerLiteral |
|
||||
| stmts.kt:17:9:17:10 | q2 | LocalVariableDeclExpr |
|
||||
| stmts.kt:17:5:17:58 | q2 | LocalVariableDeclExpr |
|
||||
| stmts.kt:17:26:17:58 | true | BooleanLiteral |
|
||||
| stmts.kt:17:26:17:58 | when ... | WhenExpr |
|
||||
| stmts.kt:17:29:17:32 | true | BooleanLiteral |
|
||||
@@ -36,7 +36,7 @@
|
||||
| stmts.kt:17:52:17:52 | z | VarAccess |
|
||||
| stmts.kt:17:52:17:56 | ...=... | AssignExpr |
|
||||
| stmts.kt:17:56:17:56 | 5 | IntegerLiteral |
|
||||
| stmts.kt:18:9:18:10 | q3 | LocalVariableDeclExpr |
|
||||
| stmts.kt:18:5:18:56 | q3 | LocalVariableDeclExpr |
|
||||
| stmts.kt:18:26:18:56 | true | BooleanLiteral |
|
||||
| stmts.kt:18:26:18:56 | when ... | WhenExpr |
|
||||
| stmts.kt:18:29:18:32 | true | BooleanLiteral |
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
#select
|
||||
| variables.kt:3:5:3:21 | prop | int | variables.kt:3:21:3:21 | 1 |
|
||||
| variables.kt:5:20:5:29 | param | int | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:6:13:6:18 | int local1 | int | variables.kt:6:22:6:26 | ... + ... |
|
||||
| variables.kt:8:13:8:18 | int local2 | int | variables.kt:8:22:8:26 | ... + ... |
|
||||
| variables.kt:10:13:10:18 | int local3 | int | variables.kt:10:22:10:26 | param |
|
||||
| variables.kt:6:9:6:26 | int local1 | int | variables.kt:6:22:6:26 | ... + ... |
|
||||
| variables.kt:8:9:8:26 | int local2 | int | variables.kt:8:22:8:26 | ... + ... |
|
||||
| variables.kt:10:9:10:26 | int local3 | int | variables.kt:10:22:10:26 | param |
|
||||
| variables.kt:15:1:15:21 | topLevel | int | variables.kt:15:21:15:21 | 1 |
|
||||
| variables.kt:21:11:21:18 | o | C1 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:21:11:21:18 | o | C1 | variables.kt:21:11:21:18 | o |
|
||||
| variables.kt:28:9:28:10 | <this> | C1 | file://:0:0:0:0 | <none> |
|
||||
isFinal
|
||||
| variables.kt:6:13:6:18 | int local1 | final |
|
||||
| variables.kt:8:13:8:18 | int local2 | non-final |
|
||||
| variables.kt:10:13:10:18 | int local3 | final |
|
||||
| variables.kt:6:9:6:26 | int local1 | final |
|
||||
| variables.kt:8:9:8:26 | int local2 | non-final |
|
||||
| variables.kt:10:9:10:26 | int local3 | final |
|
||||
compileTimeConstant
|
||||
| variables.kt:3:5:3:21 | prop |
|
||||
| variables.kt:3:5:3:21 | this.prop |
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
| Test.kt:3:13:3:13 | List<Integer> l |
|
||||
| Test.kt:3:9:3:31 | List<Integer> l |
|
||||
| Test.kt:4:28:4:32 | index |
|
||||
| Test.kt:4:35:4:35 | p1 |
|
||||
| Test.kt:6:13:6:13 | Pair<Integer,Integer> p |
|
||||
| Test.kt:6:9:6:26 | Pair<Integer,Integer> p |
|
||||
| Test.kt:7:14:7:18 | int first |
|
||||
| Test.kt:7:26:7:26 | Pair<Integer,Integer> tmp0_container |
|
||||
| Test.kt:8:14:8:25 | Exception _ |
|
||||
|
||||
Reference in New Issue
Block a user