Add lazy local delegated property test case

This commit is contained in:
Tamas Vajk
2022-03-09 15:46:02 +01:00
committed by Ian Lynagh
parent f8343b8cc7
commit 78b4c9403d
4 changed files with 317 additions and 237 deletions

View File

@@ -1,153 +1,188 @@
delegatedProperties.kt:
# 0| [CompilationUnit] delegatedProperties
# 14| 1: [Class] Resource
# 14| 1: [Constructor] Resource
# 14| 5: [BlockStmt] { ... }
# 14| 0: [SuperConstructorInvocationStmt] super(...)
# 16| 2: [Class] Owner
# 16| 1: [Constructor] Owner
# 16| 5: [BlockStmt] { ... }
# 16| 0: [SuperConstructorInvocationStmt] super(...)
# 17| 2: [Method] fn
#-----| 4: (Parameters)
# 17| 0: [Parameter] map
# 17| 5: [BlockStmt] { ... }
# 18| 0: [BlockStmt] { ... }
# 18| 0: [LocalVariableDeclStmt] var ...;
# 18| 1: [LocalVariableDeclExpr] varResource1$delegate
# 18| 0: [ClassInstanceExpr] new ResourceDelegate(...)
# 18| -3: [TypeAccess] ResourceDelegate
# 18| 1: [LocalTypeDeclStmt] class ...
# 18| 0: [LocalClass]
# 18| 1: [Constructor]
# 18| 5: [BlockStmt] { ... }
# 18| 0: [SuperConstructorInvocationStmt] super(...)
# 18| 1: [Method] <get-varResource1>
# 18| 5: [BlockStmt] { ... }
# 18| 0: [ReturnStmt] return ...
# 18| 0: [MethodAccess] getValue(...)
# 18| -1: [VarAccess] varResource1$delegate
# 0| 0: [NullLiteral] null
# 18| 2: [LocalTypeDeclStmt] class ...
# 18| 0: [LocalClass]
# 18| 1: [Constructor]
# 18| 5: [BlockStmt] { ... }
# 18| 0: [SuperConstructorInvocationStmt] super(...)
# 18| 1: [Method] <set-varResource1>
#-----| 4: (Parameters)
# 18| 0: [Parameter] value
# 18| 5: [BlockStmt] { ... }
# 18| 0: [ReturnStmt] return ...
# 18| 0: [MethodAccess] setValue(...)
# 18| -1: [VarAccess] varResource1$delegate
# 0| 0: [NullLiteral] null
# 18| 2: [VarAccess] value
# 19| 1: [ExprStmt] <Expr>;
# 19| 0: [MethodAccess] println(...)
# 19| -1: [TypeAccess] ConsoleKt
# 19| 0: [MethodAccess] <get-varResource1>(...)
# 19| -1: [ClassInstanceExpr] new (...)
# 19| -3: [TypeAccess] Object
# 20| 2: [ExprStmt] <Expr>;
# 20| 0: [MethodAccess] <set-varResource1>(...)
# 20| -1: [ClassInstanceExpr] new (...)
# 20| -3: [TypeAccess] Object
# 20| 0: [IntegerLiteral] 2
# 22| 3: [BlockStmt] { ... }
# 22| 0: [LocalVariableDeclStmt] var ...;
# 22| 1: [LocalVariableDeclExpr] name$delegate
# 22| 0: [VarAccess] map
# 22| 1: [LocalTypeDeclStmt] class ...
# 22| 0: [LocalClass]
# 22| 1: [Constructor]
# 22| 5: [BlockStmt] { ... }
# 22| 0: [SuperConstructorInvocationStmt] super(...)
# 22| 1: [Method] <get-name>
# 22| 5: [BlockStmt] { ... }
# 22| 0: [ReturnStmt] return ...
# 22| 0: [MethodAccess] getValue(...)
# 22| -3: [TypeAccess] String
# 22| -2: [TypeAccess] Object
# 22| -1: [TypeAccess] MapAccessorsKt
# 22| 0: [VarAccess] name$delegate
# 4| 1: [Class] ClassProp1
# 4| 1: [Constructor] ClassProp1
# 4| 5: [BlockStmt] { ... }
# 4| 0: [SuperConstructorInvocationStmt] super(...)
# 5| 2: [Method] fn
# 5| 5: [BlockStmt] { ... }
# 6| 0: [BlockStmt] { ... }
# 6| 0: [LocalVariableDeclStmt] var ...;
# 6| 1: [LocalVariableDeclExpr] prop1$delegate
# 6| 0: [MethodAccess] lazy(...)
# 6| -2: [TypeAccess] Integer
# 6| -1: [TypeAccess] LazyKt
# 6| 0: [LambdaExpr] ...->...
# 6| -4: [AnonymousClass] new Function0<Integer>(...) { ... }
# 6| 1: [Constructor]
# 6| 5: [BlockStmt] { ... }
# 6| 0: [SuperConstructorInvocationStmt] super(...)
# 6| 1: [Method] invoke
# 7| 5: [BlockStmt] { ... }
# 7| 0: [ExprStmt] <Expr>;
# 7| 0: [MethodAccess] println(...)
# 7| -1: [TypeAccess] ConsoleKt
# 7| 0: [StringLiteral] init
# 8| 1: [ReturnStmt] return ...
# 8| 0: [IntegerLiteral] 5
# 6| -3: [TypeAccess] Function0<Integer>
# 6| 0: [TypeAccess] Integer
# 6| 1: [LocalTypeDeclStmt] class ...
# 6| 0: [LocalClass]
# 6| 1: [Constructor]
# 6| 5: [BlockStmt] { ... }
# 6| 0: [SuperConstructorInvocationStmt] super(...)
# 6| 1: [Method] <get-prop1>
# 6| 5: [BlockStmt] { ... }
# 6| 0: [ReturnStmt] return ...
# 6| 0: [MethodAccess] getValue(...)
# 6| -2: [TypeAccess] Integer
# 6| -1: [TypeAccess] LazyKt
# 6| 0: [VarAccess] prop1$delegate
# 0| 1: [NullLiteral] null
# 24| 4: [LocalTypeDeclStmt] class ...
# 24| 0: [LocalClass]
# 24| 1: [Constructor]
# 24| 5: [BlockStmt] { ... }
# 24| 0: [SuperConstructorInvocationStmt] super(...)
# 24| 1: [Method] resourceDelegate
# 24| 5: [BlockStmt] { ... }
# 30| 0: [ReturnStmt] return ...
# 24| 0: [StmtExpr] <Stmt>
# 24| 0: [BlockStmt] { ... }
# 24| 0: [LocalTypeDeclStmt] class ...
# 24| 0: [AnonymousClass,LocalClass] new ReadWriteProperty<Object,Integer>(...) { ... }
# 24| 1: [Constructor]
# 24| 5: [BlockStmt] { ... }
# 24| 0: [SuperConstructorInvocationStmt] super(...)
# 24| 1: [BlockStmt] { ... }
# 25| 0: [ExprStmt] <Expr>;
# 25| 0: [KtInitializerAssignExpr] ...=...
# 25| 0: [VarAccess] curValue
# 25| 2: [Method] getCurValue
# 10| 1: [ExprStmt] <Expr>;
# 10| 0: [MethodAccess] println(...)
# 10| -1: [TypeAccess] ConsoleKt
# 10| 0: [MethodAccess] <get-prop1>(...)
# 10| -1: [ClassInstanceExpr] new (...)
# 10| -3: [TypeAccess] Object
# 11| 2: [ExprStmt] <Expr>;
# 11| 0: [MethodAccess] println(...)
# 11| -1: [TypeAccess] ConsoleKt
# 11| 0: [MethodAccess] <get-prop1>(...)
# 11| -1: [ClassInstanceExpr] new (...)
# 11| -3: [TypeAccess] Object
# 15| 2: [Class] Resource
# 15| 1: [Constructor] Resource
# 15| 5: [BlockStmt] { ... }
# 15| 0: [SuperConstructorInvocationStmt] super(...)
# 17| 3: [Class] Owner
# 17| 1: [Constructor] Owner
# 17| 5: [BlockStmt] { ... }
# 17| 0: [SuperConstructorInvocationStmt] super(...)
# 18| 2: [Method] fn
#-----| 4: (Parameters)
# 18| 0: [Parameter] map
# 18| 5: [BlockStmt] { ... }
# 19| 0: [BlockStmt] { ... }
# 19| 0: [LocalVariableDeclStmt] var ...;
# 19| 1: [LocalVariableDeclExpr] varResource1$delegate
# 19| 0: [ClassInstanceExpr] new ResourceDelegate(...)
# 19| -3: [TypeAccess] ResourceDelegate
# 19| 1: [LocalTypeDeclStmt] class ...
# 19| 0: [LocalClass]
# 19| 1: [Constructor]
# 19| 5: [BlockStmt] { ... }
# 19| 0: [SuperConstructorInvocationStmt] super(...)
# 19| 1: [Method] <get-varResource1>
# 19| 5: [BlockStmt] { ... }
# 19| 0: [ReturnStmt] return ...
# 19| 0: [MethodAccess] getValue(...)
# 19| -1: [VarAccess] varResource1$delegate
# 0| 0: [NullLiteral] null
# 19| 2: [LocalTypeDeclStmt] class ...
# 19| 0: [LocalClass]
# 19| 1: [Constructor]
# 19| 5: [BlockStmt] { ... }
# 19| 0: [SuperConstructorInvocationStmt] super(...)
# 19| 1: [Method] <set-varResource1>
#-----| 4: (Parameters)
# 19| 0: [Parameter] value
# 19| 5: [BlockStmt] { ... }
# 19| 0: [ReturnStmt] return ...
# 19| 0: [MethodAccess] setValue(...)
# 19| -1: [VarAccess] varResource1$delegate
# 0| 0: [NullLiteral] null
# 19| 2: [VarAccess] value
# 20| 1: [ExprStmt] <Expr>;
# 20| 0: [MethodAccess] println(...)
# 20| -1: [TypeAccess] ConsoleKt
# 20| 0: [MethodAccess] <get-varResource1>(...)
# 20| -1: [ClassInstanceExpr] new (...)
# 20| -3: [TypeAccess] Object
# 21| 2: [ExprStmt] <Expr>;
# 21| 0: [MethodAccess] <set-varResource1>(...)
# 21| -1: [ClassInstanceExpr] new (...)
# 21| -3: [TypeAccess] Object
# 21| 0: [IntegerLiteral] 2
# 23| 3: [BlockStmt] { ... }
# 23| 0: [LocalVariableDeclStmt] var ...;
# 23| 1: [LocalVariableDeclExpr] name$delegate
# 23| 0: [VarAccess] map
# 23| 1: [LocalTypeDeclStmt] class ...
# 23| 0: [LocalClass]
# 23| 1: [Constructor]
# 23| 5: [BlockStmt] { ... }
# 23| 0: [SuperConstructorInvocationStmt] super(...)
# 23| 1: [Method] <get-name>
# 23| 5: [BlockStmt] { ... }
# 23| 0: [ReturnStmt] return ...
# 23| 0: [MethodAccess] getValue(...)
# 23| -3: [TypeAccess] String
# 23| -2: [TypeAccess] Object
# 23| -1: [TypeAccess] MapAccessorsKt
# 23| 0: [VarAccess] name$delegate
# 0| 1: [NullLiteral] null
# 25| 4: [LocalTypeDeclStmt] class ...
# 25| 0: [LocalClass]
# 25| 1: [Constructor]
# 25| 5: [BlockStmt] { ... }
# 25| 0: [SuperConstructorInvocationStmt] super(...)
# 25| 1: [Method] resourceDelegate
# 25| 5: [BlockStmt] { ... }
# 31| 0: [ReturnStmt] return ...
# 25| 0: [StmtExpr] <Stmt>
# 25| 0: [BlockStmt] { ... }
# 25| 0: [LocalTypeDeclStmt] class ...
# 25| 0: [AnonymousClass,LocalClass] new ReadWriteProperty<Object,Integer>(...) { ... }
# 25| 1: [Constructor]
# 25| 5: [BlockStmt] { ... }
# 25| 0: [ReturnStmt] return ...
# 25| 0: [VarAccess] this.curValue
# 25| -1: [ThisAccess] this
# 25| 2: [Method] setCurValue
#-----| 4: (Parameters)
# 25| 0: [Parameter] <set-?>
# 25| 5: [BlockStmt] { ... }
# 25| 0: [ExprStmt] <Expr>;
# 25| 0: [AssignExpr] ...=...
# 25| 0: [VarAccess] this.curValue
# 25| -1: [ThisAccess] this
# 25| 1: [VarAccess] <set-?>
# 25| 2: [FieldDeclaration] int curValue;
# 25| -1: [TypeAccess] int
# 25| 0: [IntegerLiteral] 0
# 26| 5: [Method] getValue
#-----| 4: (Parameters)
# 26| 0: [Parameter] thisRef
# 26| 1: [Parameter] property
# 25| 0: [SuperConstructorInvocationStmt] super(...)
# 25| 1: [BlockStmt] { ... }
# 26| 0: [ExprStmt] <Expr>;
# 26| 0: [KtInitializerAssignExpr] ...=...
# 26| 0: [VarAccess] curValue
# 26| 2: [Method] getCurValue
# 26| 5: [BlockStmt] { ... }
# 26| 0: [ReturnStmt] return ...
# 26| 0: [MethodAccess] getCurValue(...)
# 26| 0: [VarAccess] this.curValue
# 26| -1: [ThisAccess] this
# 27| 6: [Method] setValue
# 26| 2: [Method] setCurValue
#-----| 4: (Parameters)
# 26| 0: [Parameter] <set-?>
# 26| 5: [BlockStmt] { ... }
# 26| 0: [ExprStmt] <Expr>;
# 26| 0: [AssignExpr] ...=...
# 26| 0: [VarAccess] this.curValue
# 26| -1: [ThisAccess] this
# 26| 1: [VarAccess] <set-?>
# 26| 2: [FieldDeclaration] int curValue;
# 26| -1: [TypeAccess] int
# 26| 0: [IntegerLiteral] 0
# 27| 5: [Method] getValue
#-----| 4: (Parameters)
# 27| 0: [Parameter] thisRef
# 27| 1: [Parameter] property
# 27| 2: [Parameter] value
# 27| 5: [BlockStmt] { ... }
# 28| 0: [ExprStmt] <Expr>;
# 28| 0: [MethodAccess] setCurValue(...)
# 28| -1: [ThisAccess] this
# 28| 0: [VarAccess] value
# 24| 1: [ExprStmt] <Expr>;
# 24| 0: [ClassInstanceExpr] new (...)
# 24| -3: [TypeAccess] ReadWriteProperty<Object,Integer>
# 32| 5: [BlockStmt] { ... }
# 32| 0: [LocalVariableDeclStmt] var ...;
# 32| 1: [LocalVariableDeclExpr] readOnly$delegate
# 32| 0: [MethodAccess] resourceDelegate(...)
# 32| -1: [ClassInstanceExpr] new (...)
# 32| -3: [TypeAccess] Object
# 32| 1: [LocalTypeDeclStmt] class ...
# 32| 0: [LocalClass]
# 32| 1: [Constructor]
# 32| 5: [BlockStmt] { ... }
# 32| 0: [SuperConstructorInvocationStmt] super(...)
# 32| 1: [Method] <get-readOnly>
# 32| 5: [BlockStmt] { ... }
# 32| 0: [ReturnStmt] return ...
# 32| 0: [MethodAccess] getValue(...)
# 32| -1: [VarAccess] readOnly$delegate
# 0| 0: [NullLiteral] null
# 33| 6: [BlockStmt] { ... }
# 27| 0: [ReturnStmt] return ...
# 27| 0: [MethodAccess] getCurValue(...)
# 27| -1: [ThisAccess] this
# 28| 6: [Method] setValue
#-----| 4: (Parameters)
# 28| 0: [Parameter] thisRef
# 28| 1: [Parameter] property
# 28| 2: [Parameter] value
# 28| 5: [BlockStmt] { ... }
# 29| 0: [ExprStmt] <Expr>;
# 29| 0: [MethodAccess] setCurValue(...)
# 29| -1: [ThisAccess] this
# 29| 0: [VarAccess] value
# 25| 1: [ExprStmt] <Expr>;
# 25| 0: [ClassInstanceExpr] new (...)
# 25| -3: [TypeAccess] ReadWriteProperty<Object,Integer>
# 33| 5: [BlockStmt] { ... }
# 33| 0: [LocalVariableDeclStmt] var ...;
# 33| 1: [LocalVariableDeclExpr] readWrite$delegate
# 33| 1: [LocalVariableDeclExpr] readOnly$delegate
# 33| 0: [MethodAccess] resourceDelegate(...)
# 33| -1: [ClassInstanceExpr] new (...)
# 33| -3: [TypeAccess] Object
@@ -156,43 +191,60 @@ delegatedProperties.kt:
# 33| 1: [Constructor]
# 33| 5: [BlockStmt] { ... }
# 33| 0: [SuperConstructorInvocationStmt] super(...)
# 33| 1: [Method] <get-readWrite>
# 33| 1: [Method] <get-readOnly>
# 33| 5: [BlockStmt] { ... }
# 33| 0: [ReturnStmt] return ...
# 33| 0: [MethodAccess] getValue(...)
# 33| -1: [VarAccess] readWrite$delegate
# 33| -1: [VarAccess] readOnly$delegate
# 0| 0: [NullLiteral] null
# 33| 2: [LocalTypeDeclStmt] class ...
# 33| 0: [LocalClass]
# 33| 1: [Constructor]
# 33| 5: [BlockStmt] { ... }
# 33| 0: [SuperConstructorInvocationStmt] super(...)
# 33| 1: [Method] <set-readWrite>
# 34| 6: [BlockStmt] { ... }
# 34| 0: [LocalVariableDeclStmt] var ...;
# 34| 1: [LocalVariableDeclExpr] readWrite$delegate
# 34| 0: [MethodAccess] resourceDelegate(...)
# 34| -1: [ClassInstanceExpr] new (...)
# 34| -3: [TypeAccess] Object
# 34| 1: [LocalTypeDeclStmt] class ...
# 34| 0: [LocalClass]
# 34| 1: [Constructor]
# 34| 5: [BlockStmt] { ... }
# 34| 0: [SuperConstructorInvocationStmt] super(...)
# 34| 1: [Method] <get-readWrite>
# 34| 5: [BlockStmt] { ... }
# 34| 0: [ReturnStmt] return ...
# 34| 0: [MethodAccess] getValue(...)
# 34| -1: [VarAccess] readWrite$delegate
# 0| 0: [NullLiteral] null
# 34| 2: [LocalTypeDeclStmt] class ...
# 34| 0: [LocalClass]
# 34| 1: [Constructor]
# 34| 5: [BlockStmt] { ... }
# 34| 0: [SuperConstructorInvocationStmt] super(...)
# 34| 1: [Method] <set-readWrite>
#-----| 4: (Parameters)
# 33| 0: [Parameter] value
# 33| 5: [BlockStmt] { ... }
# 33| 0: [ReturnStmt] return ...
# 33| 0: [MethodAccess] setValue(...)
# 33| -1: [VarAccess] readWrite$delegate
# 34| 0: [Parameter] value
# 34| 5: [BlockStmt] { ... }
# 34| 0: [ReturnStmt] return ...
# 34| 0: [MethodAccess] setValue(...)
# 34| -1: [VarAccess] readWrite$delegate
# 0| 0: [NullLiteral] null
# 33| 2: [VarAccess] value
# 37| 3: [Class] ResourceDelegate
# 37| 1: [Constructor] ResourceDelegate
# 37| 5: [BlockStmt] { ... }
# 37| 0: [SuperConstructorInvocationStmt] super(...)
# 38| 2: [Method] getValue
#-----| 4: (Parameters)
# 38| 0: [Parameter] thisRef
# 38| 1: [Parameter] property
# 34| 2: [VarAccess] value
# 38| 4: [Class] ResourceDelegate
# 38| 1: [Constructor] ResourceDelegate
# 38| 5: [BlockStmt] { ... }
# 39| 0: [ReturnStmt] return ...
# 39| 0: [IntegerLiteral] 1
# 41| 3: [Method] setValue
# 38| 0: [SuperConstructorInvocationStmt] super(...)
# 39| 2: [Method] getValue
#-----| 4: (Parameters)
# 41| 0: [Parameter] thisRef
# 41| 1: [Parameter] property
# 41| 2: [Parameter] value
# 41| 5: [BlockStmt] { ... }
# 39| 0: [Parameter] thisRef
# 39| 1: [Parameter] property
# 39| 5: [BlockStmt] { ... }
# 40| 0: [ReturnStmt] return ...
# 40| 0: [IntegerLiteral] 1
# 42| 3: [Method] setValue
#-----| 4: (Parameters)
# 42| 0: [Parameter] thisRef
# 42| 1: [Parameter] property
# 42| 2: [Parameter] value
# 42| 5: [BlockStmt] { ... }
exprs.kt:
# 0| [CompilationUnit] exprs
# 0| 1: [Class] ExprsKt

View File

@@ -1,16 +1,17 @@
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
/* TODO: should uncomment after https://github.com/github/codeql-kotlin/pull/294
class ClassProp1 {
val prop1: Int by lazy {
println("init")
5
}
fun fn() {
val prop1: Int by lazy {
println("init")
5
}
println(prop1)
println(prop1)
}
}
*/
class Resource
class Owner {

View File

@@ -1,67 +1,93 @@
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:18:31:18:51 | <get-varResource1> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:18:31:18:51 | <set-varResource1> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:22:26:22:31 | <get-name> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:32:27:32:47 | <get-readOnly> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:33:28:33:48 | <get-readWrite> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:33:28:33:48 | <set-readWrite> | NullLiteral |
| delegatedProperties.kt:18:31:18:51 | varResource1$delegate | delegatedProperties.kt:17:5:34:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:18:31:18:51 | varResource1$delegate | delegatedProperties.kt:18:31:18:51 | <get-varResource1> | VarAccess |
| delegatedProperties.kt:18:31:18:51 | varResource1$delegate | delegatedProperties.kt:18:31:18:51 | <set-varResource1> | VarAccess |
| delegatedProperties.kt:18:34:18:51 | ResourceDelegate | delegatedProperties.kt:17:5:34:5 | fn | TypeAccess |
| delegatedProperties.kt:18:34:18:51 | getValue(...) | delegatedProperties.kt:18:31:18:51 | <get-varResource1> | MethodAccess |
| delegatedProperties.kt:18:34:18:51 | new ResourceDelegate(...) | delegatedProperties.kt:17:5:34:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:18:34:18:51 | setValue(...) | delegatedProperties.kt:18:31:18:51 | <set-varResource1> | MethodAccess |
| delegatedProperties.kt:18:34:18:51 | value | delegatedProperties.kt:18:31:18:51 | <set-varResource1> | VarAccess |
| delegatedProperties.kt:19:9:19:29 | ConsoleKt | delegatedProperties.kt:17:5:34:5 | fn | TypeAccess |
| delegatedProperties.kt:19:9:19:29 | println(...) | delegatedProperties.kt:17:5:34:5 | fn | MethodAccess |
| delegatedProperties.kt:19:17:19:28 | <get-varResource1>(...) | delegatedProperties.kt:17:5:34:5 | fn | MethodAccess |
| delegatedProperties.kt:19:17:19:28 | Object | delegatedProperties.kt:17:5:34:5 | fn | TypeAccess |
| delegatedProperties.kt:19:17:19:28 | new (...) | delegatedProperties.kt:17:5:34:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:20:9:20:20 | <set-varResource1>(...) | delegatedProperties.kt:17:5:34:5 | fn | MethodAccess |
| delegatedProperties.kt:20:9:20:20 | Object | delegatedProperties.kt:17:5:34:5 | fn | TypeAccess |
| delegatedProperties.kt:20:9:20:20 | new (...) | delegatedProperties.kt:17:5:34:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:20:24:20:24 | 2 | delegatedProperties.kt:17:5:34:5 | fn | IntegerLiteral |
| delegatedProperties.kt:22:26:22:31 | name$delegate | delegatedProperties.kt:17:5:34:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:22:26:22:31 | name$delegate | delegatedProperties.kt:22:26:22:31 | <get-name> | VarAccess |
| delegatedProperties.kt:22:29:22:31 | MapAccessorsKt | delegatedProperties.kt:22:26:22:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:22:29:22:31 | Object | delegatedProperties.kt:22:26:22:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:22:29:22:31 | String | delegatedProperties.kt:22:26:22:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:22:29:22:31 | getValue(...) | delegatedProperties.kt:22:26:22:31 | <get-name> | MethodAccess |
| delegatedProperties.kt:22:29:22:31 | map | delegatedProperties.kt:17:5:34:5 | fn | VarAccess |
| delegatedProperties.kt:24:64:30:9 | <Stmt> | delegatedProperties.kt:24:9:30:9 | resourceDelegate | StmtExpr |
| delegatedProperties.kt:24:64:30:9 | ReadWriteProperty<Object,Integer> | delegatedProperties.kt:24:9:30:9 | resourceDelegate | TypeAccess |
| delegatedProperties.kt:24:64:30:9 | new (...) | delegatedProperties.kt:24:9:30:9 | resourceDelegate | ClassInstanceExpr |
| delegatedProperties.kt:25:13:25:28 | ...=... | delegatedProperties.kt:24:64:30:9 | | KtInitializerAssignExpr |
| delegatedProperties.kt:25:13:25:28 | ...=... | delegatedProperties.kt:25:13:25:28 | setCurValue | AssignExpr |
| delegatedProperties.kt:25:13:25:28 | <set-?> | delegatedProperties.kt:25:13:25:28 | setCurValue | VarAccess |
| delegatedProperties.kt:25:13:25:28 | curValue | delegatedProperties.kt:24:64:30:9 | | VarAccess |
| delegatedProperties.kt:25:13:25:28 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:25:13:25:28 | this | delegatedProperties.kt:25:13:25:28 | getCurValue | ThisAccess |
| delegatedProperties.kt:25:13:25:28 | this | delegatedProperties.kt:25:13:25:28 | setCurValue | ThisAccess |
| delegatedProperties.kt:25:13:25:28 | this.curValue | delegatedProperties.kt:25:13:25:28 | getCurValue | VarAccess |
| delegatedProperties.kt:25:13:25:28 | this.curValue | delegatedProperties.kt:25:13:25:28 | setCurValue | VarAccess |
| delegatedProperties.kt:25:28:25:28 | 0 | delegatedProperties.kt:24:64:30:9 | | IntegerLiteral |
| delegatedProperties.kt:26:81:26:88 | getCurValue(...) | delegatedProperties.kt:26:22:26:88 | getValue | MethodAccess |
| delegatedProperties.kt:26:81:26:88 | this | delegatedProperties.kt:26:22:26:88 | getValue | ThisAccess |
| delegatedProperties.kt:28:17:28:24 | setCurValue(...) | delegatedProperties.kt:27:22:29:13 | setValue | MethodAccess |
| delegatedProperties.kt:28:17:28:24 | this | delegatedProperties.kt:27:22:29:13 | setValue | ThisAccess |
| delegatedProperties.kt:28:28:28:32 | value | delegatedProperties.kt:27:22:29:13 | setValue | VarAccess |
| delegatedProperties.kt:32:27:32:47 | readOnly$delegate | delegatedProperties.kt:17:5:34:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:32:27:32:47 | readOnly$delegate | delegatedProperties.kt:32:27:32:47 | <get-readOnly> | VarAccess |
| delegatedProperties.kt:32:30:32:47 | Object | delegatedProperties.kt:17:5:34:5 | fn | TypeAccess |
| delegatedProperties.kt:32:30:32:47 | getValue(...) | delegatedProperties.kt:32:27:32:47 | <get-readOnly> | MethodAccess |
| delegatedProperties.kt:32:30:32:47 | new (...) | delegatedProperties.kt:17:5:34:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:32:30:32:47 | resourceDelegate(...) | delegatedProperties.kt:17:5:34:5 | fn | MethodAccess |
| delegatedProperties.kt:33:28:33:48 | readWrite$delegate | delegatedProperties.kt:17:5:34:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:33:28:33:48 | readWrite$delegate | delegatedProperties.kt:33:28:33:48 | <get-readWrite> | VarAccess |
| delegatedProperties.kt:33:28:33:48 | readWrite$delegate | delegatedProperties.kt:33:28:33:48 | <set-readWrite> | VarAccess |
| delegatedProperties.kt:33:31:33:48 | Object | delegatedProperties.kt:17:5:34:5 | fn | TypeAccess |
| delegatedProperties.kt:33:31:33:48 | getValue(...) | delegatedProperties.kt:33:28:33:48 | <get-readWrite> | MethodAccess |
| delegatedProperties.kt:33:31:33:48 | new (...) | delegatedProperties.kt:17:5:34:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:33:31:33:48 | resourceDelegate(...) | delegatedProperties.kt:17:5:34:5 | fn | MethodAccess |
| delegatedProperties.kt:33:31:33:48 | setValue(...) | delegatedProperties.kt:33:28:33:48 | <set-readWrite> | MethodAccess |
| delegatedProperties.kt:33:31:33:48 | value | delegatedProperties.kt:33:28:33:48 | <set-readWrite> | VarAccess |
| delegatedProperties.kt:39:16:39:16 | 1 | delegatedProperties.kt:38:14:40:5 | getValue | IntegerLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:6:24:9:9 | <get-prop1> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:23:26:23:31 | <get-name> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | NullLiteral |
| delegatedProperties.kt:0:0:0:0 | null | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | NullLiteral |
| delegatedProperties.kt:6:24:9:9 | prop1$delegate | delegatedProperties.kt:5:5:12:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:6:24:9:9 | prop1$delegate | delegatedProperties.kt:6:24:9:9 | <get-prop1> | VarAccess |
| delegatedProperties.kt:6:27:9:9 | Integer | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
| delegatedProperties.kt:6:27:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
| delegatedProperties.kt:6:27:9:9 | LazyKt | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
| delegatedProperties.kt:6:27:9:9 | LazyKt | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
| delegatedProperties.kt:6:27:9:9 | getValue(...) | delegatedProperties.kt:6:24:9:9 | <get-prop1> | MethodAccess |
| delegatedProperties.kt:6:27:9:9 | lazy(...) | delegatedProperties.kt:5:5:12:5 | fn | MethodAccess |
| delegatedProperties.kt:6:32:9:9 | ...->... | delegatedProperties.kt:5:5:12:5 | fn | LambdaExpr |
| delegatedProperties.kt:6:32:9:9 | Function0<Integer> | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
| delegatedProperties.kt:6:32:9:9 | Integer | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
| delegatedProperties.kt:7:13:7:27 | ConsoleKt | delegatedProperties.kt:6:32:9:9 | invoke | TypeAccess |
| delegatedProperties.kt:7:13:7:27 | println(...) | delegatedProperties.kt:6:32:9:9 | invoke | MethodAccess |
| delegatedProperties.kt:7:22:7:25 | init | delegatedProperties.kt:6:32:9:9 | invoke | StringLiteral |
| delegatedProperties.kt:8:13:8:13 | 5 | delegatedProperties.kt:6:32:9:9 | invoke | IntegerLiteral |
| delegatedProperties.kt:10:9:10:22 | ConsoleKt | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
| delegatedProperties.kt:10:9:10:22 | println(...) | delegatedProperties.kt:5:5:12:5 | fn | MethodAccess |
| delegatedProperties.kt:10:17:10:21 | <get-prop1>(...) | delegatedProperties.kt:5:5:12:5 | fn | MethodAccess |
| delegatedProperties.kt:10:17:10:21 | Object | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
| delegatedProperties.kt:10:17:10:21 | new (...) | delegatedProperties.kt:5:5:12:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:11:9:11:22 | ConsoleKt | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
| delegatedProperties.kt:11:9:11:22 | println(...) | delegatedProperties.kt:5:5:12:5 | fn | MethodAccess |
| delegatedProperties.kt:11:17:11:21 | <get-prop1>(...) | delegatedProperties.kt:5:5:12:5 | fn | MethodAccess |
| delegatedProperties.kt:11:17:11:21 | Object | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess |
| delegatedProperties.kt:11:17:11:21 | new (...) | delegatedProperties.kt:5:5:12:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:35:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | VarAccess |
| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | VarAccess |
| delegatedProperties.kt:19:34:19:51 | ResourceDelegate | delegatedProperties.kt:18:5:35:5 | fn | TypeAccess |
| delegatedProperties.kt:19:34:19:51 | getValue(...) | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | MethodAccess |
| delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) | delegatedProperties.kt:18:5:35:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:19:34:19:51 | setValue(...) | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | MethodAccess |
| delegatedProperties.kt:19:34:19:51 | value | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | VarAccess |
| delegatedProperties.kt:20:9:20:29 | ConsoleKt | delegatedProperties.kt:18:5:35:5 | fn | TypeAccess |
| delegatedProperties.kt:20:9:20:29 | println(...) | delegatedProperties.kt:18:5:35:5 | fn | MethodAccess |
| delegatedProperties.kt:20:17:20:28 | <get-varResource1>(...) | delegatedProperties.kt:18:5:35:5 | fn | MethodAccess |
| delegatedProperties.kt:20:17:20:28 | Object | delegatedProperties.kt:18:5:35:5 | fn | TypeAccess |
| delegatedProperties.kt:20:17:20:28 | new (...) | delegatedProperties.kt:18:5:35:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:21:9:21:20 | <set-varResource1>(...) | delegatedProperties.kt:18:5:35:5 | fn | MethodAccess |
| delegatedProperties.kt:21:9:21:20 | Object | delegatedProperties.kt:18:5:35:5 | fn | TypeAccess |
| delegatedProperties.kt:21:9:21:20 | new (...) | delegatedProperties.kt:18:5:35:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:21:24:21:24 | 2 | delegatedProperties.kt:18:5:35:5 | fn | IntegerLiteral |
| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:18:5:35:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:23:26:23:31 | <get-name> | VarAccess |
| delegatedProperties.kt:23:29:23:31 | MapAccessorsKt | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:23:29:23:31 | Object | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:23:29:23:31 | String | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:23:29:23:31 | getValue(...) | delegatedProperties.kt:23:26:23:31 | <get-name> | MethodAccess |
| delegatedProperties.kt:23:29:23:31 | map | delegatedProperties.kt:18:5:35:5 | fn | VarAccess |
| delegatedProperties.kt:25:64:31:9 | <Stmt> | delegatedProperties.kt:25:9:31:9 | resourceDelegate | StmtExpr |
| delegatedProperties.kt:25:64:31:9 | ReadWriteProperty<Object,Integer> | delegatedProperties.kt:25:9:31:9 | resourceDelegate | TypeAccess |
| delegatedProperties.kt:25:64:31:9 | new (...) | delegatedProperties.kt:25:9:31:9 | resourceDelegate | ClassInstanceExpr |
| delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:25:64:31:9 | | KtInitializerAssignExpr |
| delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:26:13:26:28 | setCurValue | AssignExpr |
| delegatedProperties.kt:26:13:26:28 | <set-?> | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess |
| delegatedProperties.kt:26:13:26:28 | curValue | delegatedProperties.kt:25:64:31:9 | | VarAccess |
| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:28 | getCurValue | ThisAccess |
| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:28 | setCurValue | ThisAccess |
| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:28 | getCurValue | VarAccess |
| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess |
| delegatedProperties.kt:26:28:26:28 | 0 | delegatedProperties.kt:25:64:31:9 | | IntegerLiteral |
| delegatedProperties.kt:27:81:27:88 | getCurValue(...) | delegatedProperties.kt:27:22:27:88 | getValue | MethodAccess |
| delegatedProperties.kt:27:81:27:88 | this | delegatedProperties.kt:27:22:27:88 | getValue | ThisAccess |
| delegatedProperties.kt:29:17:29:24 | setCurValue(...) | delegatedProperties.kt:28:22:30:13 | setValue | MethodAccess |
| delegatedProperties.kt:29:17:29:24 | this | delegatedProperties.kt:28:22:30:13 | setValue | ThisAccess |
| delegatedProperties.kt:29:28:29:32 | value | delegatedProperties.kt:28:22:30:13 | setValue | VarAccess |
| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:18:5:35:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | VarAccess |
| delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:18:5:35:5 | fn | TypeAccess |
| delegatedProperties.kt:33:30:33:47 | getValue(...) | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | MethodAccess |
| delegatedProperties.kt:33:30:33:47 | new (...) | delegatedProperties.kt:18:5:35:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | delegatedProperties.kt:18:5:35:5 | fn | MethodAccess |
| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:35:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | VarAccess |
| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | VarAccess |
| delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:18:5:35:5 | fn | TypeAccess |
| delegatedProperties.kt:34:31:34:48 | getValue(...) | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | MethodAccess |
| delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:18:5:35:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) | delegatedProperties.kt:18:5:35:5 | fn | MethodAccess |
| delegatedProperties.kt:34:31:34:48 | setValue(...) | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | MethodAccess |
| delegatedProperties.kt:34:31:34:48 | value | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | VarAccess |
| delegatedProperties.kt:40:16:40:16 | 1 | delegatedProperties.kt:39:14:41:5 | getValue | IntegerLiteral |
| exprs.kt:11:5:11:14 | i1 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
| exprs.kt:11:14:11:14 | 1 | exprs.kt:4:1:136:1 | topLevelMethod | IntegerLiteral |
| exprs.kt:12:5:12:18 | i2 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |

View File

@@ -1,4 +1,5 @@
lambdaExpr
| delegatedProperties.kt:6:32:9:9 | ...->... | stmt body | delegatedProperties.kt:6:32:9:9 | invoke | invoke() | delegatedProperties.kt:6:32:9:9 | new Function0<Integer>(...) { ... } |
| funcExprs.kt:16:26:16:33 | ...->... | stmt body | funcExprs.kt:16:26:16:33 | invoke | invoke() | funcExprs.kt:16:26:16:33 | new Function0<Integer>(...) { ... } |
| funcExprs.kt:17:26:17:33 | ...->... | stmt body | funcExprs.kt:17:26:17:33 | invoke | invoke() | funcExprs.kt:17:26:17:33 | new Function0<Object>(...) { ... } |
| funcExprs.kt:18:26:18:33 | ...->... | stmt body | funcExprs.kt:18:26:18:33 | invoke | invoke() | funcExprs.kt:18:26:18:33 | new Function0<Object>(...) { ... } |