mirror of
https://github.com/github/codeql.git
synced 2026-04-29 10:45:15 +02:00
Merge pull request #10473 from tamasvajk/kotlin-suspend
Kotlin: Extract `suspend` functions
This commit is contained in:
@@ -67,6 +67,9 @@ abstract class Modifiable extends Element {
|
||||
/** Holds if this element has an `inline` modifier. */
|
||||
predicate isInline() { this.hasModifier("inline") }
|
||||
|
||||
/** Holds if this element has a `suspend` modifier. */
|
||||
predicate isSuspend() { this.hasModifier("suspend") }
|
||||
|
||||
/** Holds if this element has a `volatile` modifier. */
|
||||
predicate isVolatile() { this.hasModifier("volatile") }
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
import kotlinx.coroutines.*
|
||||
|
||||
suspend fun fn() {
|
||||
GlobalScope.launch {
|
||||
val x: Deferred<String> = async { Helper.taint() }
|
||||
Helper.sink(x.await()) // TODO: not found
|
||||
}
|
||||
}
|
||||
@@ -2,10 +2,11 @@ class FunctionReference {
|
||||
|
||||
fun fn1(s: String) = s
|
||||
|
||||
fun test() {
|
||||
suspend fun test() {
|
||||
fun fn2(s: String) = s
|
||||
|
||||
Helper.sink(Processor().process(this::fn1, Helper.taint()))
|
||||
Helper.sink(Processor().processSusp(this::fn1Susp, Helper.taint()))
|
||||
Helper.sink(Processor().process(FunctionReference::fn1, this, Helper.taint()))
|
||||
Helper.sink(Processor().process(this::fn1, Helper.notaint()))
|
||||
Helper.sink(Processor().process(::fn2, Helper.taint()))
|
||||
@@ -16,4 +17,6 @@ class FunctionReference {
|
||||
|
||||
val prop: String
|
||||
get() = Helper.taint()
|
||||
|
||||
suspend fun fn1Susp(s: String) = s
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Stubs for `kotlinx.coroutines`
|
||||
*/
|
||||
|
||||
@file:JvmName("BuildersKt") // Required for `async`
|
||||
|
||||
package kotlinx.coroutines
|
||||
|
||||
public interface CoroutineScope
|
||||
public interface CoroutineContext
|
||||
public enum class CoroutineStart { DEFAULT }
|
||||
public interface Job
|
||||
public interface Deferred<out T> : Job {
|
||||
public suspend fun await(): T
|
||||
}
|
||||
|
||||
public object GlobalScope : CoroutineScope
|
||||
|
||||
public fun CoroutineScope.launch(
|
||||
context: CoroutineContext = null!!,
|
||||
start: CoroutineStart = CoroutineStart.DEFAULT,
|
||||
block: suspend CoroutineScope.() -> Unit
|
||||
): Job {
|
||||
return null!!
|
||||
}
|
||||
|
||||
public fun <T> CoroutineScope.async(
|
||||
context: CoroutineContext = null!!,
|
||||
start: CoroutineStart = CoroutineStart.DEFAULT,
|
||||
block: suspend CoroutineScope.() -> T
|
||||
): Deferred<T> {
|
||||
return null!!
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
class Lambda {
|
||||
fun test() {
|
||||
suspend fun test() {
|
||||
Helper.sink(Processor().process({ it: String -> Helper.notaint() }, ""))
|
||||
Helper.sink(Processor().process({ it: String -> Helper.taint() }, ""))
|
||||
Helper.sink(Processor().processSusp({ it: String -> Helper.taint() }, ""))
|
||||
Helper.sink(Processor().process({ i -> i }, Helper.taint()))
|
||||
Helper.sink(Processor().process(fun (i: String) = i, Helper.taint()))
|
||||
|
||||
@@ -29,4 +30,4 @@ class ManualBigLambda {
|
||||
Helper.sink(invoke(arrayOf(Helper.taint(), Helper.notaint())))
|
||||
Helper.sink(invoke(arrayOf(Helper.notaint(), Helper.taint()))) // False positive
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
class LocalFunction {
|
||||
fun test() {
|
||||
suspend fun test() {
|
||||
fun fn1() = Helper.taint()
|
||||
fun fn2(s: String) = s
|
||||
|
||||
Helper.sink(fn1())
|
||||
Helper.sink(fn2(Helper.taint()))
|
||||
|
||||
suspend fun fn3() = Helper.taint()
|
||||
suspend fun fn4(s: String) = s
|
||||
|
||||
Helper.sink(fn3())
|
||||
Helper.sink(fn4(Helper.taint()))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,22 @@ fun interface Predicate {
|
||||
fun go(s: String): String
|
||||
}
|
||||
|
||||
fun interface PredicateSusp {
|
||||
suspend fun go(s: String): String
|
||||
}
|
||||
|
||||
class SamConversion {
|
||||
fun test() {
|
||||
suspend fun test() {
|
||||
val p1 = Predicate { Helper.taint() }
|
||||
val p2 = Predicate { it -> it }
|
||||
|
||||
Helper.sink(p1.go(""))
|
||||
Helper.sink(p1.go(Helper.taint()))
|
||||
Helper.sink(p2.go(Helper.taint()))
|
||||
|
||||
val p3 = PredicateSusp { Helper.taint() }
|
||||
val p4 = PredicateSusp { it -> it }
|
||||
|
||||
Helper.sink(p3.go(""))
|
||||
Helper.sink(p4.go(Helper.taint()))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
| functionReference.kt:8:59:8:65 | taint(...) | functionReference.kt:8:33:8:66 | process(...) |
|
||||
| functionReference.kt:9:78:9:84 | taint(...) | functionReference.kt:9:33:9:85 | process(...) |
|
||||
| functionReference.kt:11:55:11:61 | taint(...) | functionReference.kt:11:33:11:62 | process(...) |
|
||||
| functionReference.kt:18:24:18:30 | taint(...) | functionReference.kt:14:33:14:51 | process(...) |
|
||||
| functionReference.kt:10:78:10:84 | taint(...) | functionReference.kt:10:33:10:85 | process(...) |
|
||||
| functionReference.kt:12:55:12:61 | taint(...) | functionReference.kt:12:33:12:62 | process(...) |
|
||||
| functionReference.kt:19:24:19:30 | taint(...) | functionReference.kt:15:33:15:51 | process(...) |
|
||||
| lambda.kt:4:64:4:70 | taint(...) | lambda.kt:4:33:4:77 | process(...) |
|
||||
| lambda.kt:5:60:5:66 | taint(...) | lambda.kt:5:33:5:67 | process(...) |
|
||||
| lambda.kt:6:69:6:75 | taint(...) | lambda.kt:6:33:6:76 | process(...) |
|
||||
| lambda.kt:9:81:9:87 | taint(...) | lambda.kt:9:33:9:88 | processExt(...) |
|
||||
| lambda.kt:10:66:10:72 | taint(...) | lambda.kt:10:33:10:91 | processExt(...) |
|
||||
| lambda.kt:13:145:13:151 | taint(...) | lambda.kt:13:33:13:170 | process(...) |
|
||||
| lambda.kt:14:163:14:169 | taint(...) | lambda.kt:14:33:14:170 | process(...) |
|
||||
| lambda.kt:27:35:27:41 | taint(...) | lambda.kt:27:21:27:60 | invoke(...) |
|
||||
| lambda.kt:29:43:29:49 | taint(...) | lambda.kt:29:21:29:69 | invoke(...) |
|
||||
| lambda.kt:30:61:30:67 | taint(...) | lambda.kt:30:21:30:69 | invoke(...) |
|
||||
| lambda.kt:6:60:6:66 | taint(...) | lambda.kt:6:33:6:67 | process(...) |
|
||||
| lambda.kt:7:69:7:75 | taint(...) | lambda.kt:7:33:7:76 | process(...) |
|
||||
| lambda.kt:10:81:10:87 | taint(...) | lambda.kt:10:33:10:88 | processExt(...) |
|
||||
| lambda.kt:11:66:11:72 | taint(...) | lambda.kt:11:33:11:91 | processExt(...) |
|
||||
| lambda.kt:14:145:14:151 | taint(...) | lambda.kt:14:33:14:170 | process(...) |
|
||||
| lambda.kt:15:163:15:169 | taint(...) | lambda.kt:15:33:15:170 | process(...) |
|
||||
| lambda.kt:28:35:28:41 | taint(...) | lambda.kt:28:21:28:60 | invoke(...) |
|
||||
| lambda.kt:30:43:30:49 | taint(...) | lambda.kt:30:21:30:69 | invoke(...) |
|
||||
| lambda.kt:31:61:31:67 | taint(...) | lambda.kt:31:21:31:69 | invoke(...) |
|
||||
| localFunction.kt:3:28:3:34 | taint(...) | localFunction.kt:6:21:6:25 | fn1(...) |
|
||||
| localFunction.kt:7:32:7:38 | taint(...) | localFunction.kt:7:21:7:39 | fn2(...) |
|
||||
| samConversion.kt:7:37:7:43 | taint(...) | samConversion.kt:10:24:10:29 | go(...) |
|
||||
| samConversion.kt:7:37:7:43 | taint(...) | samConversion.kt:11:24:11:41 | go(...) |
|
||||
| localFunction.kt:9:36:9:42 | taint(...) | localFunction.kt:12:21:12:25 | fn3(...) |
|
||||
| localFunction.kt:13:32:13:38 | taint(...) | localFunction.kt:13:21:13:39 | fn4(...) |
|
||||
| samConversion.kt:11:37:11:43 | taint(...) | samConversion.kt:14:24:14:29 | go(...) |
|
||||
| samConversion.kt:15:34:15:40 | taint(...) | samConversion.kt:15:24:15:41 | go(...) |
|
||||
| samConversion.kt:17:41:17:47 | taint(...) | samConversion.kt:20:24:20:29 | go(...) |
|
||||
| samConversion.kt:21:34:21:40 | taint(...) | samConversion.kt:21:24:21:41 | go(...) |
|
||||
|
||||
@@ -7,6 +7,10 @@ class Processor {
|
||||
return f(arg)
|
||||
}
|
||||
|
||||
suspend fun <T, R2> processSusp(f: suspend (T) -> R2, arg: T) : R2 {
|
||||
return f(arg)
|
||||
}
|
||||
|
||||
fun <T0, T1, R3> process(f: (T0, T1) -> R3, arg0: T0, arg1: T1) : R3 {
|
||||
return f(arg0, arg1)
|
||||
}
|
||||
|
||||
@@ -4620,6 +4620,382 @@ funcExprs.kt:
|
||||
# 59| 5: [BlockStmt] { ... }
|
||||
# 59| 0: [ReturnStmt] return ...
|
||||
# 59| 0: [IntegerLiteral] 5
|
||||
# 82| 16: [Method] fn
|
||||
# 82| 3: [TypeAccess] Unit
|
||||
# 82| 5: [BlockStmt] { ... }
|
||||
# 83| 0: [LocalVariableDeclStmt] var ...;
|
||||
# 83| 1: [LocalVariableDeclExpr] l1
|
||||
# 83| 0: [LambdaExpr] ...->...
|
||||
# 83| -4: [AnonymousClass] new Function1<Integer,String>(...) { ... }
|
||||
# 83| 1: [Constructor]
|
||||
# 83| 5: [BlockStmt] { ... }
|
||||
# 83| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 83| 2: [Method] invoke
|
||||
# 83| 3: [TypeAccess] String
|
||||
#-----| 4: (Parameters)
|
||||
# 83| 0: [Parameter] i
|
||||
# 83| 0: [TypeAccess] int
|
||||
# 83| 5: [BlockStmt] { ... }
|
||||
# 83| 0: [ReturnStmt] return ...
|
||||
# 83| 0: [MethodAccess] toString(...)
|
||||
# 83| -1: [VarAccess] i
|
||||
# 83| -3: [TypeAccess] Function1<Integer,String>
|
||||
# 83| 0: [TypeAccess] Integer
|
||||
# 83| 1: [TypeAccess] String
|
||||
# 84| 1: [ExprStmt] <Expr>;
|
||||
# 84| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
|
||||
# 84| 0: [TypeAccess] Unit
|
||||
# 84| 1: [MethodAccess] invoke(...)
|
||||
# 84| -1: [VarAccess] l1
|
||||
# 84| 0: [IntegerLiteral] 5
|
||||
# 86| 2: [LocalVariableDeclStmt] var ...;
|
||||
# 86| 1: [LocalVariableDeclExpr] l2
|
||||
# 86| 0: [LambdaExpr] ...->...
|
||||
# 86| -4: [AnonymousClass] new Function1<Integer,String>(...) { ... }
|
||||
# 86| 1: [Constructor]
|
||||
# 86| 5: [BlockStmt] { ... }
|
||||
# 86| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 86| 2: [Method] invoke
|
||||
# 86| 3: [TypeAccess] String
|
||||
#-----| 4: (Parameters)
|
||||
# 86| 0: [Parameter] i
|
||||
# 86| 0: [TypeAccess] int
|
||||
# 86| 5: [BlockStmt] { ... }
|
||||
# 86| 0: [ReturnStmt] return ...
|
||||
# 86| 0: [MethodAccess] toString(...)
|
||||
# 86| -1: [VarAccess] i
|
||||
# 86| -3: [TypeAccess] Function1<Integer,String>
|
||||
# 86| 0: [TypeAccess] Integer
|
||||
# 86| 1: [TypeAccess] String
|
||||
# 87| 3: [ExprStmt] <Expr>;
|
||||
# 87| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
|
||||
# 87| 0: [TypeAccess] Unit
|
||||
# 87| 1: [MethodAccess] invoke(...)
|
||||
# 87| -1: [VarAccess] l2
|
||||
# 87| 0: [IntegerLiteral] 5
|
||||
# 89| 4: [LocalVariableDeclStmt] var ...;
|
||||
# 89| 1: [LocalVariableDeclExpr] l3
|
||||
# 90| 0: [LambdaExpr] ...->...
|
||||
# 90| -4: [AnonymousClass] new FunctionN<String>(...) { ... }
|
||||
# 90| 1: [Constructor]
|
||||
# 90| 5: [BlockStmt] { ... }
|
||||
# 90| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 90| 2: [Method] invoke
|
||||
# 90| 3: [TypeAccess] String
|
||||
#-----| 4: (Parameters)
|
||||
# 90| 0: [Parameter] p0
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [Parameter] p1
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 2: [Parameter] p2
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 3: [Parameter] p3
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 4: [Parameter] p4
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 5: [Parameter] p5
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 6: [Parameter] p6
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 7: [Parameter] p7
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 8: [Parameter] p8
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 9: [Parameter] p9
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 10: [Parameter] p10
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 11: [Parameter] p11
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 12: [Parameter] p12
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 13: [Parameter] p13
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 14: [Parameter] p14
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 15: [Parameter] p15
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 16: [Parameter] p16
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 17: [Parameter] p17
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 18: [Parameter] p18
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 19: [Parameter] p19
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 20: [Parameter] p20
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 21: [Parameter] p21
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 22: [Parameter] p22
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 5: [BlockStmt] { ... }
|
||||
# 90| 0: [ReturnStmt] return ...
|
||||
# 90| 0: [StringLiteral]
|
||||
# 90| 2: [Method] invoke
|
||||
#-----| 4: (Parameters)
|
||||
# 90| 0: [Parameter] a0
|
||||
# 90| 5: [BlockStmt] { ... }
|
||||
# 90| 0: [ReturnStmt] return ...
|
||||
# 90| 0: [MethodAccess] invoke(...)
|
||||
# 90| -1: [ThisAccess] this
|
||||
# 90| 0: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 0
|
||||
# 90| 1: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 1
|
||||
# 90| 2: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 2
|
||||
# 90| 3: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 3
|
||||
# 90| 4: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 4
|
||||
# 90| 5: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 5
|
||||
# 90| 6: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 6
|
||||
# 90| 7: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 7
|
||||
# 90| 8: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 8
|
||||
# 90| 9: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 9
|
||||
# 90| 10: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 10
|
||||
# 90| 11: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 11
|
||||
# 90| 12: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 12
|
||||
# 90| 13: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 13
|
||||
# 90| 14: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 14
|
||||
# 90| 15: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 15
|
||||
# 90| 16: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 16
|
||||
# 90| 17: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 17
|
||||
# 90| 18: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 18
|
||||
# 90| 19: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 19
|
||||
# 90| 20: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 20
|
||||
# 90| 21: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 21
|
||||
# 90| 22: [CastExpr] (...)...
|
||||
# 90| 0: [TypeAccess] int
|
||||
# 90| 1: [ArrayAccess] ...[...]
|
||||
# 90| 0: [VarAccess] a0
|
||||
# 90| 1: [IntegerLiteral] 22
|
||||
# 90| -3: [TypeAccess] FunctionN<String>
|
||||
# 90| 0: [TypeAccess] String
|
||||
# 91| 5: [ExprStmt] <Expr>;
|
||||
# 91| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
|
||||
# 91| 0: [TypeAccess] Unit
|
||||
# 91| 1: [MethodAccess] invoke(...)
|
||||
# 91| -1: [VarAccess] l3
|
||||
# 91| 0: [ArrayCreationExpr] new Object[]
|
||||
# 91| -2: [ArrayInit] {...}
|
||||
# 91| 0: [IntegerLiteral] 1
|
||||
# 91| 1: [IntegerLiteral] 2
|
||||
# 91| 2: [IntegerLiteral] 3
|
||||
# 91| 3: [IntegerLiteral] 4
|
||||
# 91| 4: [IntegerLiteral] 5
|
||||
# 91| 5: [IntegerLiteral] 6
|
||||
# 91| 6: [IntegerLiteral] 7
|
||||
# 91| 7: [IntegerLiteral] 8
|
||||
# 91| 8: [IntegerLiteral] 9
|
||||
# 91| 9: [IntegerLiteral] 0
|
||||
# 91| 10: [IntegerLiteral] 1
|
||||
# 91| 11: [IntegerLiteral] 2
|
||||
# 91| 12: [IntegerLiteral] 3
|
||||
# 91| 13: [IntegerLiteral] 4
|
||||
# 91| 14: [IntegerLiteral] 5
|
||||
# 91| 15: [IntegerLiteral] 6
|
||||
# 91| 16: [IntegerLiteral] 7
|
||||
# 91| 17: [IntegerLiteral] 8
|
||||
# 91| 18: [IntegerLiteral] 9
|
||||
# 91| 19: [IntegerLiteral] 0
|
||||
# 91| 20: [IntegerLiteral] 1
|
||||
# 91| 21: [IntegerLiteral] 2
|
||||
# 91| 22: [IntegerLiteral] 3
|
||||
# 91| -1: [TypeAccess] Object
|
||||
# 91| 0: [IntegerLiteral] 23
|
||||
# 93| 6: [LocalVariableDeclStmt] var ...;
|
||||
# 93| 1: [LocalVariableDeclExpr] l4
|
||||
# 94| 0: [LambdaExpr] ...->...
|
||||
# 94| -4: [AnonymousClass] new Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,String>(...) { ... }
|
||||
# 94| 1: [Constructor]
|
||||
# 94| 5: [BlockStmt] { ... }
|
||||
# 94| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 94| 2: [Method] invoke
|
||||
# 94| 3: [TypeAccess] String
|
||||
#-----| 4: (Parameters)
|
||||
# 94| 0: [Parameter] p0
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 1: [Parameter] p1
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 2: [Parameter] p2
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 3: [Parameter] p3
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 4: [Parameter] p4
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 5: [Parameter] p5
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 6: [Parameter] p6
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 7: [Parameter] p7
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 8: [Parameter] p8
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 9: [Parameter] p9
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 10: [Parameter] p10
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 11: [Parameter] p11
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 12: [Parameter] p12
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 13: [Parameter] p13
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 14: [Parameter] p14
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 15: [Parameter] p15
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 16: [Parameter] p16
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 17: [Parameter] p17
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 18: [Parameter] p18
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 19: [Parameter] p19
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 20: [Parameter] p20
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 21: [Parameter] p21
|
||||
# 94| 0: [TypeAccess] int
|
||||
# 94| 5: [BlockStmt] { ... }
|
||||
# 94| 0: [ReturnStmt] return ...
|
||||
# 94| 0: [StringLiteral]
|
||||
# 94| -3: [TypeAccess] Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,String>
|
||||
# 94| 0: [TypeAccess] Integer
|
||||
# 94| 1: [TypeAccess] Integer
|
||||
# 94| 2: [TypeAccess] Integer
|
||||
# 94| 3: [TypeAccess] Integer
|
||||
# 94| 4: [TypeAccess] Integer
|
||||
# 94| 5: [TypeAccess] Integer
|
||||
# 94| 6: [TypeAccess] Integer
|
||||
# 94| 7: [TypeAccess] Integer
|
||||
# 94| 8: [TypeAccess] Integer
|
||||
# 94| 9: [TypeAccess] Integer
|
||||
# 94| 10: [TypeAccess] Integer
|
||||
# 94| 11: [TypeAccess] Integer
|
||||
# 94| 12: [TypeAccess] Integer
|
||||
# 94| 13: [TypeAccess] Integer
|
||||
# 94| 14: [TypeAccess] Integer
|
||||
# 94| 15: [TypeAccess] Integer
|
||||
# 94| 16: [TypeAccess] Integer
|
||||
# 94| 17: [TypeAccess] Integer
|
||||
# 94| 18: [TypeAccess] Integer
|
||||
# 94| 19: [TypeAccess] Integer
|
||||
# 94| 20: [TypeAccess] Integer
|
||||
# 94| 21: [TypeAccess] Integer
|
||||
# 94| 22: [TypeAccess] String
|
||||
# 95| 7: [ExprStmt] <Expr>;
|
||||
# 95| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
|
||||
# 95| 0: [TypeAccess] Unit
|
||||
# 95| 1: [MethodAccess] invoke(...)
|
||||
# 95| -1: [VarAccess] l4
|
||||
# 95| 0: [IntegerLiteral] 1
|
||||
# 95| 1: [IntegerLiteral] 2
|
||||
# 95| 2: [IntegerLiteral] 3
|
||||
# 95| 3: [IntegerLiteral] 4
|
||||
# 95| 4: [IntegerLiteral] 5
|
||||
# 95| 5: [IntegerLiteral] 6
|
||||
# 95| 6: [IntegerLiteral] 7
|
||||
# 95| 7: [IntegerLiteral] 8
|
||||
# 95| 8: [IntegerLiteral] 9
|
||||
# 95| 9: [IntegerLiteral] 0
|
||||
# 95| 10: [IntegerLiteral] 1
|
||||
# 95| 11: [IntegerLiteral] 2
|
||||
# 95| 12: [IntegerLiteral] 3
|
||||
# 95| 13: [IntegerLiteral] 4
|
||||
# 95| 14: [IntegerLiteral] 5
|
||||
# 95| 15: [IntegerLiteral] 6
|
||||
# 95| 16: [IntegerLiteral] 7
|
||||
# 95| 17: [IntegerLiteral] 8
|
||||
# 95| 18: [IntegerLiteral] 9
|
||||
# 95| 19: [IntegerLiteral] 0
|
||||
# 95| 20: [IntegerLiteral] 1
|
||||
# 95| 21: [IntegerLiteral] 2
|
||||
# 54| 2: [Class] MyLambda
|
||||
# 54| 1: [Constructor] MyLambda
|
||||
# 54| 5: [BlockStmt] { ... }
|
||||
@@ -5884,6 +6260,68 @@ samConversion.kt:
|
||||
# 46| -3: [TypeAccess] Function1<Integer,Boolean>
|
||||
# 46| 0: [TypeAccess] Integer
|
||||
# 46| 1: [TypeAccess] Boolean
|
||||
# 57| 5: [Method] test
|
||||
# 57| 3: [TypeAccess] Unit
|
||||
# 57| 5: [BlockStmt] { ... }
|
||||
# 58| 0: [LocalVariableDeclStmt] var ...;
|
||||
# 58| 1: [LocalVariableDeclExpr] i0
|
||||
# 58| 0: [CastExpr] (...)...
|
||||
# 58| 0: [TypeAccess] InterfaceFn1Sus
|
||||
# 58| 1: [ClassInstanceExpr] new (...)
|
||||
# 58| -4: [AnonymousClass] new InterfaceFn1Sus(...) { ... }
|
||||
# 58| 1: [Constructor]
|
||||
#-----| 4: (Parameters)
|
||||
# 58| 0: [Parameter] <fn>
|
||||
# 58| 5: [BlockStmt] { ... }
|
||||
# 58| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 58| 1: [ExprStmt] <Expr>;
|
||||
# 58| 0: [AssignExpr] ...=...
|
||||
# 58| 0: [VarAccess] this.<fn>
|
||||
# 58| -1: [ThisAccess] this
|
||||
# 58| 1: [VarAccess] <fn>
|
||||
# 58| 2: [FieldDeclaration] Function2<Integer,Integer,Unit> <fn>;
|
||||
# 58| -1: [TypeAccess] Function2<Integer,Integer,Unit>
|
||||
# 58| 0: [TypeAccess] Integer
|
||||
# 58| 1: [TypeAccess] Integer
|
||||
# 58| 2: [TypeAccess] Unit
|
||||
# 58| 3: [Method] fn1
|
||||
# 58| 3: [TypeAccess] Unit
|
||||
#-----| 4: (Parameters)
|
||||
# 58| 0: [Parameter] i
|
||||
# 58| 0: [TypeAccess] int
|
||||
# 58| 1: [Parameter] j
|
||||
# 58| 0: [TypeAccess] int
|
||||
# 58| 5: [BlockStmt] { ... }
|
||||
# 58| 0: [ReturnStmt] return ...
|
||||
# 58| 0: [MethodAccess] invoke(...)
|
||||
# 58| -1: [VarAccess] <fn>
|
||||
# 58| 0: [VarAccess] i
|
||||
# 58| 1: [VarAccess] j
|
||||
# 58| -3: [TypeAccess] InterfaceFn1Sus
|
||||
# 58| 0: [LambdaExpr] ...->...
|
||||
# 58| -4: [AnonymousClass] new Function2<Integer,Integer,Unit>(...) { ... }
|
||||
# 58| 1: [Constructor]
|
||||
# 58| 5: [BlockStmt] { ... }
|
||||
# 58| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 58| 2: [Method] invoke
|
||||
# 58| 3: [TypeAccess] Unit
|
||||
#-----| 4: (Parameters)
|
||||
# 58| 0: [Parameter] a
|
||||
# 58| 0: [TypeAccess] int
|
||||
# 58| 1: [Parameter] b
|
||||
# 58| 0: [TypeAccess] int
|
||||
# 58| 5: [BlockStmt] { ... }
|
||||
# 58| 0: [ExprStmt] <Expr>;
|
||||
# 58| 0: [VarAccess] INSTANCE
|
||||
# 58| -3: [TypeAccess] Function2<Integer,Integer,Unit>
|
||||
# 58| 0: [TypeAccess] Integer
|
||||
# 58| 1: [TypeAccess] Integer
|
||||
# 58| 2: [TypeAccess] Unit
|
||||
# 59| 1: [ExprStmt] <Expr>;
|
||||
# 59| 0: [MethodAccess] fn1(...)
|
||||
# 59| -1: [VarAccess] i0
|
||||
# 59| 0: [IntegerLiteral] 1
|
||||
# 59| 1: [IntegerLiteral] 2
|
||||
# 16| 2: [Interface] IntPredicate
|
||||
# 17| 1: [Method] accept
|
||||
# 17| 3: [TypeAccess] boolean
|
||||
@@ -5964,6 +6402,14 @@ samConversion.kt:
|
||||
#-----| 4: (Parameters)
|
||||
# 50| 0: [Parameter] i
|
||||
# 50| 0: [TypeAccess] T
|
||||
# 53| 7: [Interface] InterfaceFn1Sus
|
||||
# 54| 1: [Method] fn1
|
||||
# 54| 3: [TypeAccess] Unit
|
||||
#-----| 4: (Parameters)
|
||||
# 54| 0: [Parameter] i
|
||||
# 54| 0: [TypeAccess] int
|
||||
# 54| 1: [Parameter] j
|
||||
# 54| 0: [TypeAccess] int
|
||||
whenExpr.kt:
|
||||
# 0| [CompilationUnit] whenExpr
|
||||
# 0| 1: [Class] WhenExprKt
|
||||
|
||||
@@ -2917,6 +2917,288 @@
|
||||
| funcExprs.kt:77:20:77:55 | Generic<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:77:20:77:55 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:77:20:77:55 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:82:9:96:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:83:5:83:51 | l1 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:83:31:83:51 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:83:31:83:51 | Function1<Integer,String> | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:31:83:51 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:31:83:51 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:83:31:83:51 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:33:83:33 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:83:38:83:38 | i | funcExprs.kt:83:31:83:51 | invoke | VarAccess |
|
||||
| funcExprs.kt:83:40:83:49 | toString(...) | funcExprs.kt:83:31:83:51 | invoke | MethodAccess |
|
||||
| funcExprs.kt:84:5:84:6 | l1 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:84:8:84:16 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:84:8:84:16 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:84:8:84:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:84:15:84:15 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:86:5:86:59 | l2 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:86:39:86:59 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:86:39:86:59 | Function1<Integer,String> | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:39:86:59 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:39:86:59 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:86:39:86:59 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:41:86:41 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:86:46:86:46 | i | funcExprs.kt:86:39:86:59 | invoke | VarAccess |
|
||||
| funcExprs.kt:86:48:86:57 | toString(...) | funcExprs.kt:86:39:86:59 | invoke | MethodAccess |
|
||||
| funcExprs.kt:87:5:87:6 | l2 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:87:8:87:16 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:87:8:87:16 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:87:8:87:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:87:15:87:15 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:89:5:90:69 | l3 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:90:15:90:69 | 0 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 1 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 2 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 3 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 4 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 5 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 6 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 7 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 8 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 9 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 10 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 11 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 12 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 13 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 14 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 15 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 16 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 17 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 18 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 19 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 20 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 21 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 22 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | FunctionN<String> | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | int | funcExprs.kt:90:15:90:69 | invoke | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | invoke(...) | funcExprs.kt:90:15:90:69 | invoke | MethodAccess |
|
||||
| funcExprs.kt:90:15:90:69 | this | funcExprs.kt:90:15:90:69 | invoke | ThisAccess |
|
||||
| funcExprs.kt:90:17:90:17 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:19:90:19 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:21:90:21 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:23:90:23 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:25:90:25 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:27:90:27 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:29:90:29 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:31:90:31 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:33:90:33 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:35:90:35 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:37:90:37 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:39:90:39 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:41:90:41 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:43:90:43 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:45:90:45 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:47:90:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:49:90:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:51:90:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:53:90:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:55:90:55 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:57:90:57 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:59:90:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:61:90:61 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:67:90:68 | | funcExprs.kt:90:15:90:69 | invoke | StringLiteral |
|
||||
| funcExprs.kt:91:5:91:6 | l3 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:91:8:91:60 | 23 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:8:91:60 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:91:8:91:60 | Object | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:8:91:60 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:8:91:60 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:91:8:91:60 | new Object[] | funcExprs.kt:82:9:96:1 | fn | ArrayCreationExpr |
|
||||
| funcExprs.kt:91:8:91:60 | {...} | funcExprs.kt:82:9:96:1 | fn | ArrayInit |
|
||||
| funcExprs.kt:91:15:91:15 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:17:91:17 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:19:91:19 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:21:91:21 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:23:91:23 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:25:91:25 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:27:91:27 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:29:91:29 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:31:91:31 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:33:91:33 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:35:91:35 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:37:91:37 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:39:91:39 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:41:91:41 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:43:91:43 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:45:91:45 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:47:91:47 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:49:91:49 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:51:91:51 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:53:91:53 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:55:91:55 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:57:91:57 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:59:91:59 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:93:5:94:67 | l4 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:94:15:94:67 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:94:15:94:67 | Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,String> | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:17:94:17 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:19:94:19 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:21:94:21 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:23:94:23 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:25:94:25 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:27:94:27 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:29:94:29 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:31:94:31 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:33:94:33 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:35:94:35 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:37:94:37 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:39:94:39 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:41:94:41 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:43:94:43 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:45:94:45 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:47:94:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:49:94:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:51:94:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:53:94:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:55:94:55 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:57:94:57 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:59:94:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:65:94:66 | | funcExprs.kt:94:15:94:67 | invoke | StringLiteral |
|
||||
| funcExprs.kt:95:5:95:6 | l4 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:95:8:95:58 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:95:8:95:58 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:95:8:95:58 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
|
||||
| funcExprs.kt:95:15:95:15 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:17:95:17 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:19:95:19 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:21:95:21 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:23:95:23 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:25:95:25 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:27:95:27 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:29:95:29 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:31:95:31 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:33:95:33 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:35:95:35 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:37:95:37 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:39:95:39 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:41:95:41 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:43:95:43 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:45:95:45 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:47:95:47 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:49:95:49 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:51:95:51 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:53:95:53 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:55:95:55 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:57:95:57 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| kFunctionInvoke.kt:4:5:4:24 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| kFunctionInvoke.kt:4:11:4:19 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| kFunctionInvoke.kt:7:1:10:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -3632,6 +3914,43 @@
|
||||
| samConversion.kt:46:39:46:42 | true | samConversion.kt:46:32:46:44 | invoke | BooleanLiteral |
|
||||
| samConversion.kt:50:5:50:25 | boolean | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:50:12:50:15 | T | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:54:13:54:35 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:54:21:54:26 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:54:29:54:34 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:57:9:60:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:5:58:45 | i0 | samConversion.kt:57:9:60:1 | test | LocalVariableDeclExpr |
|
||||
| samConversion.kt:58:14:58:45 | (...)... | samConversion.kt:57:9:60:1 | test | CastExpr |
|
||||
| samConversion.kt:58:14:58:45 | ...=... | samConversion.kt:58:14:58:45 | | AssignExpr |
|
||||
| samConversion.kt:58:14:58:45 | <fn> | samConversion.kt:58:14:58:45 | | VarAccess |
|
||||
| samConversion.kt:58:14:58:45 | <fn> | samConversion.kt:58:14:58:45 | fn1 | VarAccess |
|
||||
| samConversion.kt:58:14:58:45 | Function2<Integer,Integer,Unit> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | i | samConversion.kt:58:14:58:45 | fn1 | VarAccess |
|
||||
| samConversion.kt:58:14:58:45 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | invoke(...) | samConversion.kt:58:14:58:45 | fn1 | MethodAccess |
|
||||
| samConversion.kt:58:14:58:45 | j | samConversion.kt:58:14:58:45 | fn1 | VarAccess |
|
||||
| samConversion.kt:58:14:58:45 | new (...) | samConversion.kt:57:9:60:1 | test | ClassInstanceExpr |
|
||||
| samConversion.kt:58:14:58:45 | this | samConversion.kt:58:14:58:45 | | ThisAccess |
|
||||
| samConversion.kt:58:14:58:45 | this.<fn> | samConversion.kt:58:14:58:45 | | VarAccess |
|
||||
| samConversion.kt:58:30:58:45 | ...->... | samConversion.kt:57:9:60:1 | test | LambdaExpr |
|
||||
| samConversion.kt:58:30:58:45 | Function2<Integer,Integer,Unit> | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Unit | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:32:58:32 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:35:58:35 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:40:58:43 | INSTANCE | samConversion.kt:58:30:58:45 | invoke | VarAccess |
|
||||
| samConversion.kt:59:5:59:6 | i0 | samConversion.kt:57:9:60:1 | test | VarAccess |
|
||||
| samConversion.kt:59:8:59:15 | fn1(...) | samConversion.kt:57:9:60:1 | test | MethodAccess |
|
||||
| samConversion.kt:59:12:59:12 | 1 | samConversion.kt:57:9:60:1 | test | IntegerLiteral |
|
||||
| samConversion.kt:59:14:59:14 | 2 | samConversion.kt:57:9:60:1 | test | IntegerLiteral |
|
||||
| whenExpr.kt:1:1:9:1 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| whenExpr.kt:1:14:1:19 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| whenExpr.kt:2:10:8:3 | <Stmt> | whenExpr.kt:1:1:9:1 | testWhen | StmtExpr |
|
||||
|
||||
@@ -15,6 +15,10 @@ lambdaExpr
|
||||
| funcExprs.kt:35:29:35:112 | ...->... | stmt body | funcExprs.kt:35:29:35:112 | invoke | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) | funcExprs.kt:35:29:35:112 | new Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Unit>(...) { ... } |
|
||||
| funcExprs.kt:36:29:36:117 | ...->... | stmt body | funcExprs.kt:36:29:36:117 | invoke | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) | funcExprs.kt:36:29:36:117 | new FunctionN<String>(...) { ... } |
|
||||
| funcExprs.kt:75:12:75:22 | ...->... | stmt body | funcExprs.kt:75:12:75:22 | invoke | invoke(Class3.Generic) | funcExprs.kt:75:12:75:22 | new Function1<Generic<Generic<Integer>>,String>(...) { ... } |
|
||||
| funcExprs.kt:83:31:83:51 | ...->... | stmt body | funcExprs.kt:83:31:83:51 | invoke | invoke(int) | funcExprs.kt:83:31:83:51 | new Function1<Integer,String>(...) { ... } |
|
||||
| funcExprs.kt:86:39:86:59 | ...->... | stmt body | funcExprs.kt:86:39:86:59 | invoke | invoke(int) | funcExprs.kt:86:39:86:59 | new Function1<Integer,String>(...) { ... } |
|
||||
| funcExprs.kt:90:15:90:69 | ...->... | stmt body | funcExprs.kt:90:15:90:69 | invoke | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) | funcExprs.kt:90:15:90:69 | new FunctionN<String>(...) { ... } |
|
||||
| funcExprs.kt:94:15:94:67 | ...->... | stmt body | funcExprs.kt:94:15:94:67 | invoke | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) | funcExprs.kt:94:15:94:67 | new Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,String>(...) { ... } |
|
||||
| samConversion.kt:2:31:2:45 | ...->... | stmt body | samConversion.kt:2:31:2:45 | invoke | invoke(int) | samConversion.kt:2:31:2:45 | new Function1<Integer,Boolean>(...) { ... } |
|
||||
| samConversion.kt:4:27:4:42 | ...->... | stmt body | samConversion.kt:4:27:4:42 | invoke | invoke(int,int) | samConversion.kt:4:27:4:42 | new Function2<Integer,Integer,Unit>(...) { ... } |
|
||||
| samConversion.kt:7:29:7:46 | ...->... | stmt body | samConversion.kt:7:29:7:46 | invoke | invoke(java.lang.String,int) | samConversion.kt:7:29:7:46 | new Function2<String,Integer,Boolean>(...) { ... } |
|
||||
@@ -22,6 +26,7 @@ lambdaExpr
|
||||
| samConversion.kt:11:12:13:5 | ...->... | stmt body | samConversion.kt:11:12:13:5 | invoke | invoke(int) | samConversion.kt:11:12:13:5 | new Function1<Integer,Boolean>(...) { ... } |
|
||||
| samConversion.kt:43:31:45:68 | ...->... | stmt body | samConversion.kt:43:31:45:68 | invoke | invoke(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) | samConversion.kt:43:31:45:68 | new FunctionN<Boolean>(...) { ... } |
|
||||
| samConversion.kt:46:32:46:44 | ...->... | stmt body | samConversion.kt:46:32:46:44 | invoke | invoke(int) | samConversion.kt:46:32:46:44 | new Function1<Integer,Boolean>(...) { ... } |
|
||||
| samConversion.kt:58:30:58:45 | ...->... | stmt body | samConversion.kt:58:30:58:45 | invoke | invoke(int,int) | samConversion.kt:58:30:58:45 | new Function2<Integer,Integer,Unit>(...) { ... } |
|
||||
memberRefExprs
|
||||
| funcExprs.kt:38:26:38:38 | ...::... | funcExprs.kt:38:26:38:38 | invoke | invoke() | funcExprs.kt:38:26:38:38 | new Function0<Integer>(...) { ... } |
|
||||
| funcExprs.kt:39:26:39:36 | ...::... | funcExprs.kt:39:26:39:36 | invoke | invoke() | funcExprs.kt:39:26:39:36 | new Function0<Integer>(...) { ... } |
|
||||
@@ -38,54 +43,38 @@ memberRefExprs
|
||||
| samConversion.kt:5:27:5:31 | ...::... | samConversion.kt:5:27:5:31 | invoke | invoke(int,int) | samConversion.kt:5:27:5:31 | new Function2<Integer,Integer,Unit>(...) { ... } |
|
||||
| samConversion.kt:41:13:41:16 | ...::... | samConversion.kt:41:13:41:16 | invoke | invoke(java.lang.Object[]) | samConversion.kt:41:13:41:16 | new FunctionN<Boolean>(...) { ... } |
|
||||
modifiers
|
||||
| delegatedProperties.kt:6:32:9:9 | ...->... | delegatedProperties.kt:6:32:9:9 | invoke | override |
|
||||
| delegatedProperties.kt:6:32:9:9 | ...->... | delegatedProperties.kt:6:32:9:9 | invoke | public |
|
||||
| funcExprs.kt:22:26:22:33 | ...->... | funcExprs.kt:22:26:22:33 | invoke | override |
|
||||
| funcExprs.kt:22:26:22:33 | ...->... | funcExprs.kt:22:26:22:33 | invoke | public |
|
||||
| funcExprs.kt:23:26:23:33 | ...->... | funcExprs.kt:23:26:23:33 | invoke | override |
|
||||
| funcExprs.kt:23:26:23:33 | ...->... | funcExprs.kt:23:26:23:33 | invoke | public |
|
||||
| funcExprs.kt:24:26:24:33 | ...->... | funcExprs.kt:24:26:24:33 | invoke | override |
|
||||
| funcExprs.kt:24:26:24:33 | ...->... | funcExprs.kt:24:26:24:33 | invoke | public |
|
||||
| funcExprs.kt:25:29:25:38 | ...->... | funcExprs.kt:25:29:25:38 | invoke | override |
|
||||
| funcExprs.kt:25:29:25:38 | ...->... | funcExprs.kt:25:29:25:38 | invoke | public |
|
||||
| funcExprs.kt:26:29:26:34 | ...->... | funcExprs.kt:26:29:26:34 | invoke | override |
|
||||
| funcExprs.kt:26:29:26:34 | ...->... | funcExprs.kt:26:29:26:34 | invoke | public |
|
||||
| funcExprs.kt:27:29:27:42 | ...->... | funcExprs.kt:27:29:27:42 | invoke | override |
|
||||
| funcExprs.kt:27:29:27:42 | ...->... | funcExprs.kt:27:29:27:42 | invoke | public |
|
||||
| funcExprs.kt:29:29:29:37 | ...->... | funcExprs.kt:29:29:29:37 | invoke | override |
|
||||
| funcExprs.kt:29:29:29:37 | ...->... | funcExprs.kt:29:29:29:37 | invoke | public |
|
||||
| funcExprs.kt:30:28:30:50 | ...->... | funcExprs.kt:30:28:30:50 | invoke | override |
|
||||
| funcExprs.kt:30:28:30:50 | ...->... | funcExprs.kt:30:28:30:50 | invoke | public |
|
||||
| funcExprs.kt:31:28:31:40 | ...->... | funcExprs.kt:31:28:31:40 | invoke | override |
|
||||
| funcExprs.kt:31:28:31:40 | ...->... | funcExprs.kt:31:28:31:40 | invoke | public |
|
||||
| funcExprs.kt:32:28:32:44 | ...->... | funcExprs.kt:32:28:32:44 | invoke | override |
|
||||
| funcExprs.kt:32:28:32:44 | ...->... | funcExprs.kt:32:28:32:44 | invoke | public |
|
||||
| funcExprs.kt:33:28:33:51 | ...->... | funcExprs.kt:33:28:33:51 | invoke | override |
|
||||
| funcExprs.kt:33:28:33:51 | ...->... | funcExprs.kt:33:28:33:51 | invoke | public |
|
||||
| funcExprs.kt:33:37:33:47 | ...->... | funcExprs.kt:33:37:33:47 | invoke | override |
|
||||
| funcExprs.kt:33:37:33:47 | ...->... | funcExprs.kt:33:37:33:47 | invoke | public |
|
||||
| funcExprs.kt:35:29:35:112 | ...->... | funcExprs.kt:35:29:35:112 | invoke | override |
|
||||
| funcExprs.kt:35:29:35:112 | ...->... | funcExprs.kt:35:29:35:112 | invoke | public |
|
||||
| funcExprs.kt:36:29:36:117 | ...->... | funcExprs.kt:36:29:36:117 | invoke | override |
|
||||
| delegatedProperties.kt:6:32:9:9 | ...->... | delegatedProperties.kt:6:32:9:9 | invoke | override, public |
|
||||
| funcExprs.kt:22:26:22:33 | ...->... | funcExprs.kt:22:26:22:33 | invoke | override, public |
|
||||
| funcExprs.kt:23:26:23:33 | ...->... | funcExprs.kt:23:26:23:33 | invoke | override, public |
|
||||
| funcExprs.kt:24:26:24:33 | ...->... | funcExprs.kt:24:26:24:33 | invoke | override, public |
|
||||
| funcExprs.kt:25:29:25:38 | ...->... | funcExprs.kt:25:29:25:38 | invoke | override, public |
|
||||
| funcExprs.kt:26:29:26:34 | ...->... | funcExprs.kt:26:29:26:34 | invoke | override, public |
|
||||
| funcExprs.kt:27:29:27:42 | ...->... | funcExprs.kt:27:29:27:42 | invoke | override, public |
|
||||
| funcExprs.kt:29:29:29:37 | ...->... | funcExprs.kt:29:29:29:37 | invoke | override, public |
|
||||
| funcExprs.kt:30:28:30:50 | ...->... | funcExprs.kt:30:28:30:50 | invoke | override, public |
|
||||
| funcExprs.kt:31:28:31:40 | ...->... | funcExprs.kt:31:28:31:40 | invoke | override, public |
|
||||
| funcExprs.kt:32:28:32:44 | ...->... | funcExprs.kt:32:28:32:44 | invoke | override, public |
|
||||
| funcExprs.kt:33:28:33:51 | ...->... | funcExprs.kt:33:28:33:51 | invoke | override, public |
|
||||
| funcExprs.kt:33:37:33:47 | ...->... | funcExprs.kt:33:37:33:47 | invoke | override, public |
|
||||
| funcExprs.kt:35:29:35:112 | ...->... | funcExprs.kt:35:29:35:112 | invoke | override, public |
|
||||
| funcExprs.kt:36:29:36:117 | ...->... | funcExprs.kt:36:29:36:117 | invoke | override, public |
|
||||
| funcExprs.kt:36:29:36:117 | ...->... | funcExprs.kt:36:29:36:117 | invoke | public |
|
||||
| funcExprs.kt:36:29:36:117 | ...->... | funcExprs.kt:36:29:36:117 | invoke | public |
|
||||
| funcExprs.kt:75:12:75:22 | ...->... | funcExprs.kt:75:12:75:22 | invoke | override |
|
||||
| funcExprs.kt:75:12:75:22 | ...->... | funcExprs.kt:75:12:75:22 | invoke | public |
|
||||
| samConversion.kt:2:31:2:45 | ...->... | samConversion.kt:2:31:2:45 | invoke | override |
|
||||
| samConversion.kt:2:31:2:45 | ...->... | samConversion.kt:2:31:2:45 | invoke | public |
|
||||
| samConversion.kt:4:27:4:42 | ...->... | samConversion.kt:4:27:4:42 | invoke | override |
|
||||
| samConversion.kt:4:27:4:42 | ...->... | samConversion.kt:4:27:4:42 | invoke | public |
|
||||
| samConversion.kt:7:29:7:46 | ...->... | samConversion.kt:7:29:7:46 | invoke | override |
|
||||
| samConversion.kt:7:29:7:46 | ...->... | samConversion.kt:7:29:7:46 | invoke | public |
|
||||
| samConversion.kt:9:33:11:5 | ...->... | samConversion.kt:9:33:11:5 | invoke | override |
|
||||
| samConversion.kt:9:33:11:5 | ...->... | samConversion.kt:9:33:11:5 | invoke | public |
|
||||
| samConversion.kt:11:12:13:5 | ...->... | samConversion.kt:11:12:13:5 | invoke | override |
|
||||
| samConversion.kt:11:12:13:5 | ...->... | samConversion.kt:11:12:13:5 | invoke | public |
|
||||
| samConversion.kt:43:31:45:68 | ...->... | samConversion.kt:43:31:45:68 | invoke | override |
|
||||
| funcExprs.kt:75:12:75:22 | ...->... | funcExprs.kt:75:12:75:22 | invoke | override, public |
|
||||
| funcExprs.kt:83:31:83:51 | ...->... | funcExprs.kt:83:31:83:51 | invoke | override, public |
|
||||
| funcExprs.kt:86:39:86:59 | ...->... | funcExprs.kt:86:39:86:59 | invoke | override, public, suspend |
|
||||
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:90:15:90:69 | invoke | override, public |
|
||||
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:90:15:90:69 | invoke | public |
|
||||
| funcExprs.kt:94:15:94:67 | ...->... | funcExprs.kt:94:15:94:67 | invoke | override, public, suspend |
|
||||
| samConversion.kt:2:31:2:45 | ...->... | samConversion.kt:2:31:2:45 | invoke | override, public |
|
||||
| samConversion.kt:4:27:4:42 | ...->... | samConversion.kt:4:27:4:42 | invoke | override, public |
|
||||
| samConversion.kt:7:29:7:46 | ...->... | samConversion.kt:7:29:7:46 | invoke | override, public |
|
||||
| samConversion.kt:9:33:11:5 | ...->... | samConversion.kt:9:33:11:5 | invoke | override, public |
|
||||
| samConversion.kt:11:12:13:5 | ...->... | samConversion.kt:11:12:13:5 | invoke | override, public |
|
||||
| samConversion.kt:43:31:45:68 | ...->... | samConversion.kt:43:31:45:68 | invoke | override, public |
|
||||
| samConversion.kt:43:31:45:68 | ...->... | samConversion.kt:43:31:45:68 | invoke | public |
|
||||
| samConversion.kt:43:31:45:68 | ...->... | samConversion.kt:43:31:45:68 | invoke | public |
|
||||
| samConversion.kt:46:32:46:44 | ...->... | samConversion.kt:46:32:46:44 | invoke | override |
|
||||
| samConversion.kt:46:32:46:44 | ...->... | samConversion.kt:46:32:46:44 | invoke | public |
|
||||
| samConversion.kt:46:32:46:44 | ...->... | samConversion.kt:46:32:46:44 | invoke | override, public |
|
||||
| samConversion.kt:58:30:58:45 | ...->... | samConversion.kt:58:30:58:45 | invoke | override, public, suspend |
|
||||
nonOverrideInvoke
|
||||
| funcExprs.kt:36:29:36:117 | ...->... | funcExprs.kt:36:29:36:117 | invoke | 23 |
|
||||
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:90:15:90:69 | invoke | 23 |
|
||||
| samConversion.kt:43:31:45:68 | ...->... | samConversion.kt:43:31:45:68 | invoke | 23 |
|
||||
|
||||
@@ -78,3 +78,19 @@ class Class3 {
|
||||
|
||||
class Generic<T> { }
|
||||
}
|
||||
|
||||
suspend fun fn() {
|
||||
val l1: (Int) -> String = { i -> i.toString() }
|
||||
l1.invoke(5) // calls kotlin/jvm/functions/Function1.invoke
|
||||
|
||||
val l2: suspend (Int) -> String = { i -> i.toString() }
|
||||
l2.invoke(5) // calls kotlin/jvm/functions/Function2.invoke
|
||||
|
||||
val l3: (Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int) -> String
|
||||
= { _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ -> ""}
|
||||
l3.invoke(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3) // 23 args, calls kotlin/jvm/functions/FunctionN.invoke
|
||||
|
||||
val l4: suspend (Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int,Int) -> String
|
||||
= { _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ -> ""}
|
||||
l4.invoke(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2) // 22 args, calls kotlin/jvm/functions/FunctionN.invoke
|
||||
}
|
||||
|
||||
@@ -19,9 +19,9 @@ query predicate memberRefExprs(MemberRefExpr e, Method m, string signature, Anon
|
||||
e.getAnonymousClass() = an
|
||||
}
|
||||
|
||||
query predicate modifiers(LambdaExpr le, Method m, string modifier) {
|
||||
query predicate modifiers(LambdaExpr le, Method m, string modifiers) {
|
||||
le.getAnonymousClass().getAMethod() = m and
|
||||
m.hasModifier(modifier)
|
||||
modifiers = concat(string s | m.hasModifier(s) | s, ", ")
|
||||
}
|
||||
|
||||
query predicate nonOverrideInvoke(LambdaExpr le, Method m, int pCount) {
|
||||
|
||||
@@ -49,3 +49,12 @@ fun fn(boo: Boolean) {
|
||||
fun interface SomePredicate<T> {
|
||||
fun fn(i: T): Boolean
|
||||
}
|
||||
|
||||
fun interface InterfaceFn1Sus {
|
||||
suspend fun fn1(i: Int, j: Int)
|
||||
}
|
||||
|
||||
suspend fun test() {
|
||||
val i0 = InterfaceFn1Sus { a, b -> Unit }
|
||||
i0.fn1(1,2)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
package kotlin.coroutines;
|
||||
|
||||
// This is a stub for the Kotlin Continuation interface.
|
||||
public interface Continuation<T> { }
|
||||
@@ -1,5 +1,19 @@
|
||||
import kotlin.coroutines.Continuation;
|
||||
|
||||
public class Java {
|
||||
void javaFun() {
|
||||
new Kotlin().kotlinFun();
|
||||
}
|
||||
|
||||
public class Djava extends Base {
|
||||
@Override
|
||||
public String fn0(int x) {
|
||||
return super.fn0(x);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object fn1(int x, Continuation<? super String> $completion) {
|
||||
return super.fn1(x, $completion);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,3 +3,13 @@ public class Kotlin {
|
||||
// TODO: Java().javaFun();
|
||||
}
|
||||
}
|
||||
|
||||
open class Base {
|
||||
open fun fn0(x: Int) : String = ""
|
||||
open suspend fun fn1(x: Int) : String = ""
|
||||
}
|
||||
|
||||
class Dkotlin : Base() {
|
||||
override fun fn0(x: Int): String = super.fn0(x)
|
||||
override suspend fun fn1(x: Int): String = super.fn1(x)
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
| Java.java:3:3:3:26 | kotlinFun(...) | Kotlin.kt:2:2:4:2 | kotlinFun |
|
||||
@@ -1,5 +0,0 @@
|
||||
import java
|
||||
|
||||
from MethodAccess ma, Method m
|
||||
where m = ma.getMethod()
|
||||
select ma, m
|
||||
@@ -0,0 +1,23 @@
|
||||
methods
|
||||
| Java.java:4:7:4:13 | javaFun | javaFun() |
|
||||
| Java.java:10:17:10:19 | fn0 | fn0(int) |
|
||||
| Java.java:15:17:15:19 | fn1 | fn1(int,kotlin.coroutines.Continuation) |
|
||||
| Kotlin.kt:2:2:4:2 | kotlinFun | kotlinFun() |
|
||||
| Kotlin.kt:8:10:8:38 | fn0 | fn0(int) |
|
||||
| Kotlin.kt:9:18:9:46 | fn1 | fn1(int) |
|
||||
| Kotlin.kt:13:14:13:51 | fn0 | fn0(int) |
|
||||
| Kotlin.kt:14:22:14:59 | fn1 | fn1(int) |
|
||||
overrides
|
||||
| Java.java:10:17:10:19 | fn0 | Kotlin.kt:8:10:8:38 | fn0 |
|
||||
| Java.java:15:17:15:19 | fn1 | java_and_kotlin.testproj/test.class.files/Base.class:0:0:0:0 | fn1 |
|
||||
| Kotlin.kt:13:14:13:51 | fn0 | Kotlin.kt:8:10:8:38 | fn0 |
|
||||
| Kotlin.kt:14:22:14:59 | fn1 | Kotlin.kt:9:18:9:46 | fn1 |
|
||||
signature_mismatch
|
||||
| Kotlin.kt:9:18:9:46 | fn1 | fn1(int) |
|
||||
| java_and_kotlin.testproj/test.class.files/Base.class:0:0:0:0 | fn1 | fn1(int,kotlin.coroutines.Continuation) |
|
||||
#select
|
||||
| Java.java:5:3:5:26 | kotlinFun(...) | Kotlin.kt:2:2:4:2 | kotlinFun |
|
||||
| Java.java:11:11:11:22 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 |
|
||||
| Java.java:16:11:16:35 | fn1(...) | java_and_kotlin.testproj/test.class.files/Base.class:0:0:0:0 | fn1 |
|
||||
| Kotlin.kt:13:46:13:51 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 |
|
||||
| Kotlin.kt:14:54:14:59 | fn1(...) | Kotlin.kt:9:18:9:46 | fn1 |
|
||||
21
java/ql/test/kotlin/library-tests/java_and_kotlin/test.ql
Normal file
21
java/ql/test/kotlin/library-tests/java_and_kotlin/test.ql
Normal file
@@ -0,0 +1,21 @@
|
||||
import java
|
||||
|
||||
from MethodAccess ma, Method m
|
||||
where m = ma.getMethod()
|
||||
select ma, m
|
||||
|
||||
query predicate methods(Method m, string sig) {
|
||||
m.fromSource() and
|
||||
m.getSignature() = sig
|
||||
}
|
||||
|
||||
query predicate overrides(Method m1, Method m2) {
|
||||
m1.fromSource() and
|
||||
m1.overrides(m2)
|
||||
}
|
||||
|
||||
query predicate signature_mismatch(Method m, string sig) {
|
||||
m.getDeclaringType().getQualifiedName() = "Base" and
|
||||
m.getName() = "fn1" and
|
||||
m.getSignature() = sig
|
||||
}
|
||||
@@ -274,6 +274,7 @@
|
||||
| methods5.kt:10:13:10:18 | f1(...) | MethodAccess |
|
||||
| methods5.kt:10:13:10:18 | new (...) | ClassInstanceExpr |
|
||||
| methods5.kt:10:16:10:17 | 42 | IntegerLiteral |
|
||||
| methods6.kt:3:9:4:1 | Unit | TypeAccess |
|
||||
| methods.kt:2:1:3:1 | Unit | TypeAccess |
|
||||
| methods.kt:2:20:2:25 | int | TypeAccess |
|
||||
| methods.kt:2:28:2:33 | int | TypeAccess |
|
||||
|
||||
@@ -36,6 +36,7 @@ methods
|
||||
| methods5.kt:0:0:0:0 | Methods5Kt | methods5.kt:3:1:11:1 | x | x() | public, static | |
|
||||
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | a | a(int) | public | |
|
||||
| methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | public | |
|
||||
| methods6.kt:0:0:0:0 | Methods6Kt | methods6.kt:3:9:4:1 | s | s() | public, static, suspend | |
|
||||
| methods.kt:0:0:0:0 | MethodsKt | methods.kt:2:1:3:1 | topLevelMethod | topLevelMethod(int,int) | public, static | |
|
||||
| methods.kt:5:1:20:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | public | |
|
||||
| methods.kt:5:1:20:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | public | |
|
||||
|
||||
4
java/ql/test/kotlin/library-tests/methods/methods6.kt
Normal file
4
java/ql/test/kotlin/library-tests/methods/methods6.kt
Normal file
@@ -0,0 +1,4 @@
|
||||
package foo.bar
|
||||
|
||||
suspend fun s() {
|
||||
}
|
||||
Reference in New Issue
Block a user