Merge branch 'main' into jhelie/add-atm-model-integration-tests-hello-world

This commit is contained in:
Jean Helie
2022-11-02 10:09:56 +01:00
committed by GitHub
66 changed files with 1381 additions and 417 deletions

View File

@@ -96,8 +96,8 @@ jobs:
- name: Build Query Pack
run: |
codeql pack create ../shared/ssa --output target/packs
codeql pack create ../misc/suite-helpers --output target/packs
codeql pack create ql/lib --output target/packs
codeql pack install ql/src
codeql pack create ql/src --output target/packs
PACK_FOLDER=$(readlink -f target/packs/codeql/ruby-queries/*)
codeql generate query-help --format=sarifv2.1.0 --output="${PACK_FOLDER}/rules.sarif" ql/src
@@ -202,7 +202,7 @@ jobs:
echo 'name: sample-tests
version: 0.0.0
dependencies:
codeql/ruby-all: 0.0.1
codeql/ruby-all: "*"
extractor: ruby
tests: .
' > qlpack.yml

View File

@@ -1067,6 +1067,59 @@ private predicate variableReadPseudo(ControlFlow::BasicBlock bb, int i, Ssa::Sou
capturedReadIn(bb, i, v, _, _, _)
}
pragma[noinline]
private predicate adjacentDefRead(
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2,
SsaInput::SourceVariable v
) {
adjacentDefRead(def, bb1, i1, bb2, i2) and
v = def.getSourceVariable()
}
private predicate adjacentDefReachesRead(
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
) {
exists(SsaInput::SourceVariable v | adjacentDefRead(def, bb1, i1, bb2, i2, v) |
def.definesAt(v, bb1, i1)
or
SsaInput::variableRead(bb1, i1, v, true)
)
or
exists(SsaInput::BasicBlock bb3, int i3 |
adjacentDefReachesRead(def, bb1, i1, bb3, i3) and
SsaInput::variableRead(bb3, i3, _, false) and
adjacentDefRead(def, bb3, i3, bb2, i2)
)
}
/** Same as `adjacentDefRead`, but skips uncertain reads. */
pragma[nomagic]
private predicate adjacentDefSkipUncertainReads(
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
) {
adjacentDefReachesRead(def, bb1, i1, bb2, i2) and
SsaInput::variableRead(bb2, i2, _, true)
}
private predicate adjacentDefReachesUncertainRead(
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
) {
adjacentDefReachesRead(def, bb1, i1, bb2, i2) and
SsaInput::variableRead(bb2, i2, _, false)
}
/** Same as `lastRefRedef`, but skips uncertain reads. */
pragma[nomagic]
private predicate lastRefSkipUncertainReads(Definition def, SsaInput::BasicBlock bb, int i) {
lastRef(def, bb, i) and
not SsaInput::variableRead(bb, i, def.getSourceVariable(), false)
or
exists(SsaInput::BasicBlock bb0, int i0 |
lastRef(def, bb0, i0) and
adjacentDefReachesUncertainRead(def, bb, i, bb0, i0)
)
}
cached
private module Cached {
cached
@@ -1237,7 +1290,7 @@ private module Cached {
predicate firstReadSameVar(Definition def, ControlFlow::Node cfn) {
exists(ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2 |
def.definesAt(_, bb1, i1) and
adjacentDefNoUncertainReads(def, bb1, i1, bb2, i2) and
adjacentDefSkipUncertainReads(def, bb1, i1, bb2, i2) and
cfn = bb2.getNode(i2)
)
}
@@ -1252,20 +1305,27 @@ private module Cached {
exists(ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2 |
cfn1 = bb1.getNode(i1) and
variableReadActual(bb1, i1, _) and
adjacentDefNoUncertainReads(def, bb1, i1, bb2, i2) and
adjacentDefSkipUncertainReads(def, bb1, i1, bb2, i2) and
cfn2 = bb2.getNode(i2)
)
}
/** Same as `lastRefRedef`, but skips uncertain reads. */
cached
predicate lastRefBeforeRedef(Definition def, ControlFlow::BasicBlock bb, int i, Definition next) {
lastRefRedefNoUncertainReads(def, bb, i, next)
lastRefRedef(def, bb, i, next) and
not SsaInput::variableRead(bb, i, def.getSourceVariable(), false)
or
exists(SsaInput::BasicBlock bb0, int i0 |
lastRefRedef(def, bb0, i0, next) and
adjacentDefReachesUncertainRead(def, bb, i, bb0, i0)
)
}
cached
predicate lastReadSameVar(Definition def, ControlFlow::Node cfn) {
exists(ControlFlow::BasicBlock bb, int i |
lastRefNoUncertainReads(def, bb, i) and
lastRefSkipUncertainReads(def, bb, i) and
variableReadActual(bb, i, _) and
cfn = bb.getNode(i)
)

View File

@@ -1,6 +1,4 @@
---
dependencies:
codeql/suite-helpers:
version: 0.0.2
dependencies: {}
compiled: false
lockVersion: 1.0.0

View File

@@ -1,6 +1,4 @@
---
dependencies:
codeql/suite-helpers:
version: 0.0.2
dependencies: {}
compiled: false
lockVersion: 1.0.0

View File

@@ -1,7 +1,6 @@
package com.github.codeql
import com.github.codeql.KotlinUsesExtractor.LocallyVisibleFunctionLabels
import com.github.codeql.utils.versions.FileEntry
import java.io.BufferedWriter
import java.io.File
import org.jetbrains.kotlin.ir.IrElement
@@ -15,6 +14,7 @@ import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET
import com.semmle.extractor.java.PopulateFile
import com.semmle.util.unicode.UTF8Util
import org.jetbrains.kotlin.ir.expressions.IrCall
/**
* Each `.trap` file has a `TrapLabelManager` while we are writing it.
@@ -269,11 +269,42 @@ open class FileTrapWriter (
*/
val fileId = mkFileId(filePath, populateFileTables)
private fun offsetMinOf(default: Int, vararg options: Int?): Int {
if (default == UNDEFINED_OFFSET || default == SYNTHETIC_OFFSET) {
return default
}
var currentMin = default
for (option in options) {
if (option != null && option != UNDEFINED_OFFSET && option != SYNTHETIC_OFFSET && option < currentMin) {
currentMin = option
}
}
return currentMin
}
private fun getStartOffset(e: IrElement): Int {
return when (e) {
is IrCall -> {
// Calls have incorrect startOffset, so we adjust them:
val dr = e.dispatchReceiver?.let { getStartOffset(it) }
val er = e.extensionReceiver?.let { getStartOffset(it) }
offsetMinOf(e.startOffset, dr, er)
}
else -> e.startOffset
}
}
private fun getEndOffset(e: IrElement): Int {
return e.endOffset
}
/**
* Gets a label for the location of `e`.
*/
fun getLocation(e: IrElement): Label<DbLocation> {
return getLocation(e.startOffset, e.endOffset)
return getLocation(getStartOffset(e), getEndOffset(e))
}
/**
* Gets a label for the location corresponding to `startOffset` and

View File

@@ -4,8 +4,8 @@ exprs
| Test.java:5:58:5:58 | p | Integer |
| user.kt:2:3:2:16 | x | int |
| user.kt:2:11:2:11 | t | Test |
| user.kt:2:11:2:16 | f(...) | Integer |
| user.kt:2:13:2:16 | <implicit not null> | int |
| user.kt:2:13:2:16 | f(...) | Integer |
| user.kt:2:13:2:16 | int | int |
| user.kt:2:15:2:15 | 5 | int |
| user.kt:3:10:3:10 | x | int |

View File

@@ -1,2 +1,2 @@
| user.kt:3:22:3:22 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
| user.kt:3:28:3:28 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
| user.kt:3:15:3:22 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
| user.kt:3:26:3:28 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |

View File

@@ -99,41 +99,41 @@ callArgs
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:41:15:67 | new MiddleManyParams<Float,Double>(...) | -2 |
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:69:15:100 | InnerManyParams<Long,Short> | -3 |
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:85:15:86 | 1 | 0 |
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:91:15:99 | shortValue(...) | 1 |
| KotlinUser.kt:15:91:15:99 | shortValue(...) | KotlinUser.kt:15:89:15:89 | 1 | -1 |
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:19:17:19 | a | -1 |
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:34:17:34 | 0 | 0 |
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:38:17:42 | hello | 1 |
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:20 | a | -1 |
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:22:18:50 | Character | -2 |
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:35:18:35 | 0 | 0 |
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:39:18:43 | hello | 1 |
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:47:18:49 | a | 2 |
| KotlinUser.kt:19:21:19:31 | identity(...) | KotlinUser.kt:19:19:19:19 | b | -1 |
| KotlinUser.kt:19:21:19:31 | identity(...) | KotlinUser.kt:19:30:19:30 | 5 | 0 |
| KotlinUser.kt:20:23:20:39 | identity(...) | KotlinUser.kt:20:20:20:21 | b2 | -1 |
| KotlinUser.kt:20:23:20:39 | identity(...) | KotlinUser.kt:20:33:20:37 | hello | 0 |
| KotlinUser.kt:21:21:21:37 | identity(...) | KotlinUser.kt:21:19:21:19 | c | -1 |
| KotlinUser.kt:21:21:21:37 | identity(...) | KotlinUser.kt:21:31:21:35 | world | 0 |
| KotlinUser.kt:22:21:22:39 | identity(...) | KotlinUser.kt:22:19:22:19 | d | -1 |
| KotlinUser.kt:22:21:22:39 | identity(...) | KotlinUser.kt:22:31:22:37 | goodbye | 0 |
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:19:23:19 | e | -1 |
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:33:23:33 | 1 | 0 |
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:37:23:41 | hello | 1 |
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:45:23:48 | 1.0 | 2 |
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:51:23:53 | 1.0 | 3 |
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:56:23:57 | 1 | 4 |
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:62:23:70 | shortValue(...) | 5 |
| KotlinUser.kt:23:62:23:70 | shortValue(...) | KotlinUser.kt:23:60:23:60 | 1 | -1 |
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:89:15:99 | shortValue(...) | 1 |
| KotlinUser.kt:15:89:15:99 | shortValue(...) | KotlinUser.kt:15:89:15:89 | 1 | -1 |
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:19:17:19 | a | -1 |
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:34:17:34 | 0 | 0 |
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:38:17:42 | hello | 1 |
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:20 | a | -1 |
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:50 | Character | -2 |
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:35:18:35 | 0 | 0 |
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:39:18:43 | hello | 1 |
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:47:18:49 | a | 2 |
| KotlinUser.kt:19:19:19:31 | identity(...) | KotlinUser.kt:19:19:19:19 | b | -1 |
| KotlinUser.kt:19:19:19:31 | identity(...) | KotlinUser.kt:19:30:19:30 | 5 | 0 |
| KotlinUser.kt:20:20:20:39 | identity(...) | KotlinUser.kt:20:20:20:21 | b2 | -1 |
| KotlinUser.kt:20:20:20:39 | identity(...) | KotlinUser.kt:20:33:20:37 | hello | 0 |
| KotlinUser.kt:21:19:21:37 | identity(...) | KotlinUser.kt:21:19:21:19 | c | -1 |
| KotlinUser.kt:21:19:21:37 | identity(...) | KotlinUser.kt:21:31:21:35 | world | 0 |
| KotlinUser.kt:22:19:22:39 | identity(...) | KotlinUser.kt:22:19:22:19 | d | -1 |
| KotlinUser.kt:22:19:22:39 | identity(...) | KotlinUser.kt:22:31:22:37 | goodbye | 0 |
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:19:23:19 | e | -1 |
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:33:23:33 | 1 | 0 |
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:37:23:41 | hello | 1 |
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:45:23:48 | 1.0 | 2 |
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:51:23:53 | 1.0 | 3 |
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:56:23:57 | 1 | 4 |
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:60:23:70 | shortValue(...) | 5 |
| KotlinUser.kt:23:60:23:70 | shortValue(...) | KotlinUser.kt:23:60:23:60 | 1 | -1 |
| KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | KotlinUser.kt:25:27:25:48 | OuterGeneric<String> | -3 |
| KotlinUser.kt:25:50:25:69 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | -1 |
| KotlinUser.kt:25:27:25:69 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | -1 |
| KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | KotlinUser.kt:26:28:26:44 | OuterNotGeneric | -3 |
| KotlinUser.kt:26:46:26:62 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | -1 |
| KotlinUser.kt:26:28:26:62 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | -1 |
| KotlinUser.kt:28:15:28:43 | new TypeParamVisibility<String>(...) | KotlinUser.kt:28:15:28:43 | TypeParamVisibility<String> | -3 |
| KotlinUser.kt:29:35:29:58 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:33 | tpv | -1 |
| KotlinUser.kt:30:43:30:74 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:41 | tpv | -1 |
| KotlinUser.kt:31:39:31:66 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:37 | tpv | -1 |
| KotlinUser.kt:32:47:32:82 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:45 | tpv | -1 |
| KotlinUser.kt:29:31:29:58 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:33 | tpv | -1 |
| KotlinUser.kt:30:39:30:74 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:41 | tpv | -1 |
| KotlinUser.kt:31:35:31:66 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:37 | tpv | -1 |
| KotlinUser.kt:32:43:32:82 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:45 | tpv | -1 |
genericTypes
| extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | S |
| extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | InnerStaticGeneric | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | S |
@@ -275,19 +275,19 @@ nestedTypes
| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility<> |
| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility<String> |
javaKotlinCalleeAgreement
| JavaUser.java:16:22:16:47 | returnsecond(...) | KotlinUser.kt:17:21:17:44 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond |
| JavaUser.java:17:23:17:53 | returnsecond(...) | KotlinUser.kt:18:22:18:50 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond |
| JavaUser.java:18:23:18:35 | identity(...) | KotlinUser.kt:19:21:19:31 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity |
| JavaUser.java:19:23:19:42 | identity(...) | KotlinUser.kt:20:23:20:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity |
| JavaUser.java:20:22:20:40 | identity(...) | KotlinUser.kt:21:21:21:37 | identity(...) | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | identity |
| JavaUser.java:21:22:21:42 | identity(...) | KotlinUser.kt:22:21:22:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | identity |
| JavaUser.java:22:21:22:70 | returnSixth(...) | KotlinUser.kt:23:21:23:71 | returnSixth(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | returnSixth |
| JavaUser.java:24:60:24:108 | getInnerNotGeneric(...) | KotlinUser.kt:25:50:25:69 | getInnerNotGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric |
| JavaUser.java:25:61:25:101 | getInnerGeneric(...) | KotlinUser.kt:26:46:26:62 | getInnerGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | getInnerGeneric |
| JavaUser.java:28:83:28:110 | getVisibleBecauseInner(...) | KotlinUser.kt:29:35:29:58 | getVisibleBecauseInner(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner |
| JavaUser.java:29:136:29:171 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:43:30:74 | getVisibleBecauseInnerIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect |
| JavaUser.java:30:83:30:114 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:39:31:66 | getNotVisibleBecauseStatic(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic |
| JavaUser.java:31:140:31:179 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:47:32:82 | getNotVisibleBecauseStaticIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect |
| JavaUser.java:16:22:16:47 | returnsecond(...) | KotlinUser.kt:17:19:17:44 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond |
| JavaUser.java:17:23:17:53 | returnsecond(...) | KotlinUser.kt:18:20:18:50 | returnsecond(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | returnsecond |
| JavaUser.java:18:23:18:35 | identity(...) | KotlinUser.kt:19:19:19:31 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity |
| JavaUser.java:19:23:19:42 | identity(...) | KotlinUser.kt:20:20:20:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerNotGeneric.class:0:0:0:0 | identity |
| JavaUser.java:20:22:20:40 | identity(...) | KotlinUser.kt:21:19:21:37 | identity(...) | extlib.jar/extlib/OuterNotGeneric$InnerGeneric.class:0:0:0:0 | identity |
| JavaUser.java:21:22:21:42 | identity(...) | KotlinUser.kt:22:19:22:39 | identity(...) | extlib.jar/extlib/OuterGeneric$InnerStaticGeneric.class:0:0:0:0 | identity |
| JavaUser.java:22:21:22:70 | returnSixth(...) | KotlinUser.kt:23:19:23:71 | returnSixth(...) | extlib.jar/extlib/OuterManyParams$MiddleManyParams$InnerManyParams.class:0:0:0:0 | returnSixth |
| JavaUser.java:24:60:24:108 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:69 | getInnerNotGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric |
| JavaUser.java:25:61:25:101 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:62 | getInnerGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | getInnerGeneric |
| JavaUser.java:28:83:28:110 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:58 | getVisibleBecauseInner(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner |
| JavaUser.java:29:136:29:171 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:74 | getVisibleBecauseInnerIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect |
| JavaUser.java:30:83:30:114 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:66 | getNotVisibleBecauseStatic(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic |
| JavaUser.java:31:140:31:179 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:82 | getNotVisibleBecauseStaticIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect |
javaKotlinConstructorAgreement
| JavaUser.java:7:52:7:110 | new InnerGeneric<String>(...) | KotlinUser.kt:9:33:9:63 | new InnerGeneric<String>(...) | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric<String> |
| JavaUser.java:7:53:7:79 | new OuterGeneric<Integer>(...) | KotlinUser.kt:9:13:9:31 | new OuterGeneric<Integer>(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | OuterGeneric<Integer> |

View File

@@ -1,4 +1,4 @@
| User.java:5:5:5:34 | getKotlinVal(...) | getKotlinVal | String |
| test.kt:8:43:8:78 | with(...) | with | Function1<? super T,? extends R> |
| test.kt:8:43:8:78 | with(...) | with | T |
| test.kt:8:68:8:76 | getKotlinVal(...) | getKotlinVal | String |
| test.kt:8:55:8:76 | getKotlinVal(...) | getKotlinVal | String |

View File

@@ -1,3 +1,3 @@
| arrayIterators.kt:10:16:10:25 | iterator(...) | iterator(java.lang.Object[]) | kotlin.jvm.internal.ArrayIteratorKt |
| arrayIterators.kt:11:16:11:25 | iterator(...) | iterator(int[]) | kotlin.jvm.internal.ArrayIteratorsKt |
| arrayIterators.kt:12:16:12:25 | iterator(...) | iterator(boolean[]) | kotlin.jvm.internal.ArrayIteratorsKt |
| arrayIterators.kt:10:14:10:25 | iterator(...) | iterator(java.lang.Object[]) | kotlin.jvm.internal.ArrayIteratorKt |
| arrayIterators.kt:11:14:11:25 | iterator(...) | iterator(int[]) | kotlin.jvm.internal.ArrayIteratorsKt |
| arrayIterators.kt:12:14:12:25 | iterator(...) | iterator(boolean[]) | kotlin.jvm.internal.ArrayIteratorsKt |

View File

@@ -1 +1 @@
| test.kt:1:19:1:26 | toChar(...) |
| test.kt:1:17:1:26 | toChar(...) |

View File

@@ -29,21 +29,21 @@
| generic_anonymous.kt:7:3:7:22 | T | T |
| generic_anonymous.kt:7:15:7:15 | getX$private(...) | new Object(...) { ... } |
| generic_anonymous.kt:7:15:7:15 | this | Generic |
| generic_anonymous.kt:7:17:7:22 | getMember(...) | T |
| generic_anonymous.kt:7:15:7:22 | getMember(...) | T |
| generic_anonymous.kt:11:1:11:56 | String | String |
| generic_anonymous.kt:11:20:11:28 | String | String |
| generic_anonymous.kt:11:33:11:50 | Generic<String> | Generic<String> |
| generic_anonymous.kt:11:33:11:50 | String | String |
| generic_anonymous.kt:11:33:11:50 | new Generic<String>(...) | Generic<String> |
| generic_anonymous.kt:11:33:11:56 | get(...) | String |
| generic_anonymous.kt:11:49:11:49 | s | String |
| generic_anonymous.kt:11:52:11:56 | get(...) | String |
| generic_anonymous.kt:13:1:13:47 | int | int |
| generic_anonymous.kt:13:17:13:22 | int | int |
| generic_anonymous.kt:13:27:13:41 | Generic<Integer> | Generic<Integer> |
| generic_anonymous.kt:13:27:13:41 | Integer | Integer |
| generic_anonymous.kt:13:27:13:41 | new Generic<Integer>(...) | Generic<Integer> |
| generic_anonymous.kt:13:27:13:47 | get(...) | int |
| generic_anonymous.kt:13:40:13:40 | i | int |
| generic_anonymous.kt:13:43:13:47 | get(...) | int |
| generic_anonymous.kt:17:9:17:29 | T0 | T0 |
| generic_anonymous.kt:17:26:17:29 | null | Void |
| generic_anonymous.kt:21:9:21:29 | T1 | T1 |

View File

@@ -1,6 +1,6 @@
| test.kt:20:29:20:31 | new C(...) | test.kt:23:22:23:28 | self1(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:26:22:26:28 | self2(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:29:18:29:29 | fn1(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:32:18:32:29 | fn2(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:35:18:35:31 | call1(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:38:22:38:28 | call2(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:23:14:23:28 | self1(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:26:14:26:28 | self2(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:29:14:29:29 | fn1(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:32:14:32:29 | fn2(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:35:14:35:31 | call1(...) |
| test.kt:20:29:20:31 | new C(...) | test.kt:38:14:38:28 | call2(...) |

View File

@@ -1,22 +1,22 @@
| functionReference.kt:8:59:8:65 | taint(...) | functionReference.kt:8:33:8:66 | 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: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(...) |
| 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(...) |
| functionReference.kt:8:52:8:65 | taint(...) | functionReference.kt:8:21:8:66 | process(...) |
| functionReference.kt:10:71:10:84 | taint(...) | functionReference.kt:10:21:10:85 | process(...) |
| functionReference.kt:12:48:12:61 | taint(...) | functionReference.kt:12:21:12:62 | process(...) |
| functionReference.kt:19:17:19:30 | taint(...) | functionReference.kt:15:21:15:51 | process(...) |
| lambda.kt:4:57:4:70 | taint(...) | lambda.kt:4:21:4:77 | process(...) |
| lambda.kt:6:53:6:66 | taint(...) | lambda.kt:6:21:6:67 | process(...) |
| lambda.kt:7:62:7:75 | taint(...) | lambda.kt:7:21:7:76 | process(...) |
| lambda.kt:10:74:10:87 | taint(...) | lambda.kt:10:21:10:88 | processExt(...) |
| lambda.kt:11:59:11:72 | taint(...) | lambda.kt:11:21:11:91 | processExt(...) |
| lambda.kt:14:138:14:151 | taint(...) | lambda.kt:14:21:14:170 | process(...) |
| lambda.kt:15:156:15:169 | taint(...) | lambda.kt:15:21:15:170 | process(...) |
| lambda.kt:28:28:28:41 | taint(...) | lambda.kt:28:21:28:60 | invoke(...) |
| lambda.kt:30:36:30:49 | taint(...) | lambda.kt:30:21:30:69 | invoke(...) |
| lambda.kt:31:54:31:67 | taint(...) | lambda.kt:31:21:31:69 | invoke(...) |
| localFunction.kt:3:21:3:34 | taint(...) | localFunction.kt:6:21:6:25 | fn1(...) |
| localFunction.kt:7:25:7:38 | taint(...) | localFunction.kt:7:21:7:39 | fn2(...) |
| localFunction.kt:9:29:9:42 | taint(...) | localFunction.kt:12:21:12:25 | fn3(...) |
| localFunction.kt:13:25:13:38 | taint(...) | localFunction.kt:13:21:13:39 | fn4(...) |
| samConversion.kt:11:30:11:43 | taint(...) | samConversion.kt:14:21:14:29 | go(...) |
| samConversion.kt:15:27:15:40 | taint(...) | samConversion.kt:15:21:15:41 | go(...) |
| samConversion.kt:17:34:17:47 | taint(...) | samConversion.kt:20:21:20:29 | go(...) |
| samConversion.kt:21:27:21:40 | taint(...) | samConversion.kt:21:21:21:41 | go(...) |

View File

@@ -1 +1 @@
| NotNullExpr.kt:7:14:7:20 | taint(...) | NotNullExpr.kt:8:15:8:33 | getQueryParameter(...) |
| NotNullExpr.kt:7:14:7:20 | taint(...) | NotNullExpr.kt:8:12:8:33 | getQueryParameter(...) |

View File

@@ -1,5 +1,5 @@
| test.kt:28:16:28:21 | getSecond(...) | Unexpected result: hasTaintFlow=a |
| test.kt:35:16:35:27 | component1(...) | Unexpected result: hasTaintFlow=d |
| test.kt:41:17:41:22 | getSecond(...) | Unexpected result: hasTaintFlow=e |
| test.kt:53:17:53:24 | getDuration(...) | Unexpected result: hasTaintFlow=f |
| test.kt:58:18:58:29 | component2(...) | Unexpected result: hasTaintFlow=g |
| test.kt:28:14:28:21 | getSecond(...) | Unexpected result: hasTaintFlow=a |
| test.kt:35:14:35:27 | component1(...) | Unexpected result: hasTaintFlow=d |
| test.kt:41:14:41:22 | getSecond(...) | Unexpected result: hasTaintFlow=e |
| test.kt:53:14:53:24 | getDuration(...) | Unexpected result: hasTaintFlow=f |
| test.kt:58:14:58:29 | component2(...) | Unexpected result: hasTaintFlow=g |

View File

@@ -90,7 +90,7 @@
| exprs.kt:135:12:135:20 | ... + ... | exprs.kt:135:12:135:14 | 123 | exprs.kt:135:18:135:20 | 456 |
| exprs.kt:161:8:161:16 | ... (value not-equals) ... | exprs.kt:161:8:161:8 | r | exprs.kt:161:13:161:16 | null |
| exprs.kt:190:31:190:37 | ... + ... | exprs.kt:190:31:190:32 | getA1(...) | exprs.kt:190:36:190:37 | a2 |
| exprs.kt:205:23:205:29 | ... + ... | exprs.kt:205:20:205:21 | ...!! | exprs.kt:205:28:205:28 | 5 |
| exprs.kt:205:20:205:29 | ... + ... | exprs.kt:205:20:205:21 | ...!! | exprs.kt:205:28:205:28 | 5 |
| exprs.kt:206:19:206:25 | ... + ... | exprs.kt:206:20:206:21 | ...!! | exprs.kt:206:25:206:25 | 5 |
| exprs.kt:224:12:224:47 | ... (value equals) ... | exprs.kt:224:12:224:27 | notNullPrimitive | exprs.kt:224:32:224:47 | notNullPrimitive |
| exprs.kt:225:12:225:48 | ... (value equals) ... | exprs.kt:225:12:225:27 | notNullPrimitive | exprs.kt:225:32:225:48 | nullablePrimitive |

View File

@@ -31,19 +31,19 @@
| delegatedProperties.kt:6:24:9:9 | ...::... | delegatedProperties.kt:6:24:9:9 | <get-prop1> | PropertyRefExpr |
| delegatedProperties.kt:6:24:9:9 | <get-prop1>(...) | delegatedProperties.kt:6:24:9:9 | get | MethodAccess |
| delegatedProperties.kt:6:24:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
| delegatedProperties.kt:6:24:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
| delegatedProperties.kt:6:24:9:9 | KProperty0<Integer> | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
| delegatedProperties.kt:6:24:9:9 | LazyKt | delegatedProperties.kt:6:24:9:9 | <get-prop1> | TypeAccess |
| delegatedProperties.kt:6:24:9:9 | Object | delegatedProperties.kt:6:24:9:9 | get | TypeAccess |
| delegatedProperties.kt:6:24:9:9 | get(...) | delegatedProperties.kt:6:24:9:9 | invoke | MethodAccess |
| delegatedProperties.kt:6:24:9:9 | getValue(...) | delegatedProperties.kt:6:24:9:9 | <get-prop1> | MethodAccess |
| delegatedProperties.kt:6:24:9:9 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:6:24:9:9 | new (...) | delegatedProperties.kt:6:24:9:9 | get | ClassInstanceExpr |
| 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:24:9:9 | this | delegatedProperties.kt:6:24:9:9 | invoke | ThisAccess |
| 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 |
@@ -87,21 +87,21 @@
| delegatedProperties.kt:19:31:19:51 | a0 | delegatedProperties.kt:19:31:19:51 | set | VarAccess |
| delegatedProperties.kt:19:31:19:51 | get(...) | delegatedProperties.kt:19:31:19:51 | invoke | MethodAccess |
| delegatedProperties.kt:19:31:19:51 | get(...) | delegatedProperties.kt:19:31:19:51 | invoke | MethodAccess |
| delegatedProperties.kt:19:31:19:51 | getValue(...) | delegatedProperties.kt:19:31:19:51 | <get-varResource1> | MethodAccess |
| delegatedProperties.kt:19:31:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:19:31:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | get | ClassInstanceExpr |
| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | get | ClassInstanceExpr |
| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | set | ClassInstanceExpr |
| delegatedProperties.kt:19:31:19:51 | new (...) | delegatedProperties.kt:19:31:19:51 | set | ClassInstanceExpr |
| delegatedProperties.kt:19:31:19:51 | setValue(...) | delegatedProperties.kt:19:31:19:51 | <set-varResource1> | MethodAccess |
| delegatedProperties.kt:19:31:19:51 | this | delegatedProperties.kt:19:31:19:51 | invoke | ThisAccess |
| delegatedProperties.kt:19:31:19:51 | this | delegatedProperties.kt:19:31:19:51 | invoke | ThisAccess |
| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40: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:40: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:40: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:40:5 | fn | TypeAccess |
| delegatedProperties.kt:20:9:20:29 | println(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodAccess |
@@ -115,18 +115,18 @@
| delegatedProperties.kt:23:26:23:31 | ...::... | delegatedProperties.kt:23:26:23:31 | <get-name> | PropertyRefExpr |
| delegatedProperties.kt:23:26:23:31 | <get-name>(...) | delegatedProperties.kt:23:26:23:31 | get | MethodAccess |
| delegatedProperties.kt:23:26:23:31 | KProperty0<String> | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:23:26:23:31 | MapAccessorsKt | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:23:26:23:31 | Object | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:23:26:23:31 | Object | delegatedProperties.kt:23:26:23:31 | get | TypeAccess |
| delegatedProperties.kt:23:26:23:31 | String | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:23:26:23:31 | String | delegatedProperties.kt:23:26:23:31 | <get-name> | TypeAccess |
| delegatedProperties.kt:23:26:23:31 | String | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:23:26:23:31 | get(...) | delegatedProperties.kt:23:26:23:31 | invoke | MethodAccess |
| delegatedProperties.kt:23:26:23:31 | getValue(...) | delegatedProperties.kt:23:26:23:31 | <get-name> | MethodAccess |
| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:23:26:23:31 | <get-name> | VarAccess |
| delegatedProperties.kt:23:26:23:31 | new (...) | delegatedProperties.kt:23:26:23:31 | get | ClassInstanceExpr |
| delegatedProperties.kt:23:26:23:31 | this | delegatedProperties.kt:23:26:23:31 | invoke | ThisAccess |
| 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:40:5 | fn | VarAccess |
| delegatedProperties.kt:25:9:31:9 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:25:9:31:9 | Object | file://:0:0:0:0 | <none> | TypeAccess |
@@ -167,13 +167,13 @@
| delegatedProperties.kt:33:27:33:47 | KProperty0<Integer> | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | TypeAccess |
| delegatedProperties.kt:33:27:33:47 | Object | delegatedProperties.kt:33:27:33:47 | get | TypeAccess |
| delegatedProperties.kt:33:27:33:47 | get(...) | delegatedProperties.kt:33:27:33:47 | invoke | MethodAccess |
| delegatedProperties.kt:33:27:33:47 | getValue(...) | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | MethodAccess |
| delegatedProperties.kt:33:27:33:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:33:27:33:47 | new (...) | delegatedProperties.kt:33:27:33:47 | get | ClassInstanceExpr |
| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:33:27:33:47 | <get-readOnly> | VarAccess |
| delegatedProperties.kt:33:27:33:47 | this | delegatedProperties.kt:33:27:33:47 | invoke | ThisAccess |
| delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:18:5:40: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:40:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodAccess |
| delegatedProperties.kt:34:28:34:48 | ...::... | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | PropertyRefExpr |
@@ -195,6 +195,7 @@
| delegatedProperties.kt:34:28:34:48 | a0 | delegatedProperties.kt:34:28:34:48 | set | VarAccess |
| delegatedProperties.kt:34:28:34:48 | get(...) | delegatedProperties.kt:34:28:34:48 | invoke | MethodAccess |
| delegatedProperties.kt:34:28:34:48 | get(...) | delegatedProperties.kt:34:28:34:48 | invoke | MethodAccess |
| delegatedProperties.kt:34:28:34:48 | getValue(...) | delegatedProperties.kt:34:28:34:48 | <get-readWrite> | MethodAccess |
| delegatedProperties.kt:34:28:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:34:28:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | get | ClassInstanceExpr |
@@ -204,13 +205,12 @@
| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40: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:28:34:48 | setValue(...) | delegatedProperties.kt:34:28:34:48 | <set-readWrite> | MethodAccess |
| delegatedProperties.kt:34:28:34:48 | this | delegatedProperties.kt:34:28:34:48 | invoke | ThisAccess |
| delegatedProperties.kt:34:28:34:48 | this | delegatedProperties.kt:34:28:34:48 | invoke | ThisAccess |
| delegatedProperties.kt:34:31:34:48 | Object | delegatedProperties.kt:18:5:40: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:40:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) | delegatedProperties.kt:18:5:40: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:36:9:36:29 | ConsoleKt | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess |
| delegatedProperties.kt:36:9:36:29 | println(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodAccess |
@@ -231,6 +231,7 @@
| delegatedProperties.kt:39:31:39:51 | Object | delegatedProperties.kt:39:31:39:51 | get | TypeAccess |
| delegatedProperties.kt:39:31:39:51 | get(...) | delegatedProperties.kt:39:31:39:51 | invoke | MethodAccess |
| delegatedProperties.kt:39:31:39:51 | get(...) | delegatedProperties.kt:39:31:39:51 | invoke | MethodAccess |
| delegatedProperties.kt:39:31:39:51 | getValue(...) | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | MethodAccess |
| delegatedProperties.kt:39:31:39:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:39:31:39:51 | new (...) | delegatedProperties.kt:39:31:39:51 | get | ClassInstanceExpr |
| delegatedProperties.kt:39:31:39:51 | new (...) | delegatedProperties.kt:39:31:39:51 | get | ClassInstanceExpr |
@@ -240,7 +241,6 @@
| delegatedProperties.kt:39:31:39:51 | varResource2$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
| delegatedProperties.kt:39:31:39:51 | varResource2$delegate | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | VarAccess |
| delegatedProperties.kt:39:34:39:51 | DelegateProvider | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess |
| delegatedProperties.kt:39:34:39:51 | getValue(...) | delegatedProperties.kt:39:31:39:51 | <get-varResource2> | MethodAccess |
| delegatedProperties.kt:39:34:39:51 | new DelegateProvider(...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr |
| delegatedProperties.kt:42:27:42:47 | ...::... | delegatedProperties.kt:42:27:42:47 | getVarResource0 | PropertyRefExpr |
| delegatedProperties.kt:42:27:42:47 | ...::... | delegatedProperties.kt:42:27:42:47 | setVarResource0 | PropertyRefExpr |
@@ -263,10 +263,12 @@
| delegatedProperties.kt:42:27:42:47 | a1 | delegatedProperties.kt:42:27:42:47 | set | VarAccess |
| delegatedProperties.kt:42:27:42:47 | get(...) | delegatedProperties.kt:42:27:42:47 | invoke | MethodAccess |
| delegatedProperties.kt:42:27:42:47 | get(...) | delegatedProperties.kt:42:27:42:47 | invoke | MethodAccess |
| delegatedProperties.kt:42:27:42:47 | getValue(...) | delegatedProperties.kt:42:27:42:47 | getVarResource0 | MethodAccess |
| delegatedProperties.kt:42:27:42:47 | getVarResource0(...) | delegatedProperties.kt:42:27:42:47 | get | MethodAccess |
| delegatedProperties.kt:42:27:42:47 | getVarResource0(...) | delegatedProperties.kt:42:27:42:47 | get | MethodAccess |
| delegatedProperties.kt:42:27:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:42:27:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:42:27:42:47 | setValue(...) | delegatedProperties.kt:42:27:42:47 | setVarResource0 | MethodAccess |
| delegatedProperties.kt:42:27:42:47 | setVarResource0(...) | delegatedProperties.kt:42:27:42:47 | set | MethodAccess |
| delegatedProperties.kt:42:27:42:47 | setVarResource0(...) | delegatedProperties.kt:42:27:42:47 | set | MethodAccess |
| delegatedProperties.kt:42:27:42:47 | this | delegatedProperties.kt:42:27:42:47 | getVarResource0 | ThisAccess |
@@ -278,9 +280,7 @@
| delegatedProperties.kt:42:27:42:47 | varResource0$delegate | delegatedProperties.kt:17:1:43:1 | Owner | VarAccess |
| delegatedProperties.kt:42:30:42:47 | <set-?> | delegatedProperties.kt:42:27:42:47 | setVarResource0 | VarAccess |
| delegatedProperties.kt:42:30:42:47 | ResourceDelegate | delegatedProperties.kt:17:1:43:1 | Owner | TypeAccess |
| delegatedProperties.kt:42:30:42:47 | getValue(...) | delegatedProperties.kt:42:27:42:47 | getVarResource0 | MethodAccess |
| delegatedProperties.kt:42:30:42:47 | new ResourceDelegate(...) | delegatedProperties.kt:17:1:43:1 | Owner | ClassInstanceExpr |
| delegatedProperties.kt:42:30:42:47 | setValue(...) | delegatedProperties.kt:42:27:42:47 | setVarResource0 | MethodAccess |
| delegatedProperties.kt:46:14:48:5 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:46:27:46:41 | Owner | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:46:44:46:65 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
@@ -354,6 +354,8 @@
| delegatedProperties.kt:66:33:66:50 | ...::... | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | PropertyRefExpr |
| delegatedProperties.kt:66:33:66:50 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
@@ -361,6 +363,8 @@
| delegatedProperties.kt:66:33:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | MyClass | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | MyClass | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | get | VarAccess |
| delegatedProperties.kt:66:33:66:50 | a0 | delegatedProperties.kt:66:33:66:50 | get | VarAccess |
@@ -375,10 +379,12 @@
| delegatedProperties.kt:66:33:66:50 | get(...) | delegatedProperties.kt:66:33:66:50 | invoke | MethodAccess |
| delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | get | MethodAccess |
| delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | get | MethodAccess |
| delegatedProperties.kt:66:33:66:50 | getValue(...) | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | MethodAccess |
| delegatedProperties.kt:66:33:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | set | MethodAccess |
| delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:33:66:50 | set | MethodAccess |
| delegatedProperties.kt:66:33:66:50 | setValue(...) | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | MethodAccess |
| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | ThisAccess |
| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | invoke | ThisAccess |
| delegatedProperties.kt:66:33:66:50 | this | delegatedProperties.kt:66:33:66:50 | invoke | ThisAccess |
@@ -392,18 +398,12 @@
| delegatedProperties.kt:66:36:66:50 | <dispatchReceiver> | delegatedProperties.kt:66:36:66:50 | | VarAccess |
| delegatedProperties.kt:66:36:66:50 | <set-?> | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | VarAccess |
| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:36:66:50 | KMutableProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:66:36:66:50 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | TypeAccess |
| delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | set | VarAccess |
| delegatedProperties.kt:66:36:66:50 | get(...) | delegatedProperties.kt:66:36:66:50 | invoke | MethodAccess |
| delegatedProperties.kt:66:36:66:50 | getMemberInt(...) | delegatedProperties.kt:66:36:66:50 | get | MethodAccess |
| delegatedProperties.kt:66:36:66:50 | getValue(...) | delegatedProperties.kt:66:33:66:50 | getDelegatedToMember1 | MethodAccess |
| delegatedProperties.kt:66:36:66:50 | setMemberInt(...) | delegatedProperties.kt:66:36:66:50 | set | MethodAccess |
| delegatedProperties.kt:66:36:66:50 | setValue(...) | delegatedProperties.kt:66:33:66:50 | setDelegatedToMember1 | MethodAccess |
| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | | ThisAccess |
| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | get | ThisAccess |
| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess |
@@ -415,14 +415,20 @@
| delegatedProperties.kt:67:33:67:53 | ...::... | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | PropertyRefExpr |
| delegatedProperties.kt:67:33:67:53 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | get | VarAccess |
| delegatedProperties.kt:67:33:67:53 | a0 | delegatedProperties.kt:67:33:67:53 | get | VarAccess |
@@ -437,10 +443,12 @@
| delegatedProperties.kt:67:33:67:53 | get(...) | delegatedProperties.kt:67:33:67:53 | invoke | MethodAccess |
| delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | get | MethodAccess |
| delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | get | MethodAccess |
| delegatedProperties.kt:67:33:67:53 | getValue(...) | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | MethodAccess |
| delegatedProperties.kt:67:33:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | set | MethodAccess |
| delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:33:67:53 | set | MethodAccess |
| delegatedProperties.kt:67:33:67:53 | setValue(...) | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | MethodAccess |
| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | ThisAccess |
| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | invoke | ThisAccess |
| delegatedProperties.kt:67:33:67:53 | this | delegatedProperties.kt:67:33:67:53 | invoke | ThisAccess |
@@ -450,28 +458,22 @@
| delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:65:1:85:1 | MyClass | PropertyRefExpr |
| delegatedProperties.kt:67:36:67:53 | <set-?> | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | VarAccess |
| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | TypeAccess |
| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | get | VarAccess |
| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | invoke | VarAccess |
| delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | set | VarAccess |
| delegatedProperties.kt:67:36:67:53 | a1 | delegatedProperties.kt:67:36:67:53 | set | VarAccess |
| delegatedProperties.kt:67:36:67:53 | get(...) | delegatedProperties.kt:67:36:67:53 | invoke | MethodAccess |
| delegatedProperties.kt:67:36:67:53 | getMemberInt(...) | delegatedProperties.kt:67:36:67:53 | get | MethodAccess |
| delegatedProperties.kt:67:36:67:53 | getValue(...) | delegatedProperties.kt:67:33:67:53 | getDelegatedToMember2 | MethodAccess |
| delegatedProperties.kt:67:36:67:53 | setMemberInt(...) | delegatedProperties.kt:67:36:67:53 | set | MethodAccess |
| delegatedProperties.kt:67:36:67:53 | setValue(...) | delegatedProperties.kt:67:33:67:53 | setDelegatedToMember2 | MethodAccess |
| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess |
| delegatedProperties.kt:69:36:69:56 | ...::... | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | PropertyRefExpr |
| delegatedProperties.kt:69:36:69:56 | ...::... | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | PropertyRefExpr |
| delegatedProperties.kt:69:36:69:56 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
@@ -479,6 +481,8 @@
| delegatedProperties.kt:69:36:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | MyClass | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | MyClass | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | get | VarAccess |
| delegatedProperties.kt:69:36:69:56 | a0 | delegatedProperties.kt:69:36:69:56 | get | VarAccess |
@@ -493,10 +497,12 @@
| delegatedProperties.kt:69:36:69:56 | get(...) | delegatedProperties.kt:69:36:69:56 | invoke | MethodAccess |
| delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | get | MethodAccess |
| delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | get | MethodAccess |
| delegatedProperties.kt:69:36:69:56 | getValue(...) | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | MethodAccess |
| delegatedProperties.kt:69:36:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | set | MethodAccess |
| delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:36:69:56 | set | MethodAccess |
| delegatedProperties.kt:69:36:69:56 | setValue(...) | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | MethodAccess |
| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | ThisAccess |
| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | invoke | ThisAccess |
| delegatedProperties.kt:69:36:69:56 | this | delegatedProperties.kt:69:36:69:56 | invoke | ThisAccess |
@@ -512,18 +518,12 @@
| delegatedProperties.kt:69:39:69:56 | DelegatedPropertiesKt | delegatedProperties.kt:69:39:69:56 | get | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | DelegatedPropertiesKt | delegatedProperties.kt:69:39:69:56 | set | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | KMutableProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | TypeAccess |
| delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | set | VarAccess |
| delegatedProperties.kt:69:39:69:56 | get(...) | delegatedProperties.kt:69:39:69:56 | invoke | MethodAccess |
| delegatedProperties.kt:69:39:69:56 | getExtDelegated(...) | delegatedProperties.kt:69:39:69:56 | get | MethodAccess |
| delegatedProperties.kt:69:39:69:56 | getValue(...) | delegatedProperties.kt:69:36:69:56 | getDelegatedToExtMember1 | MethodAccess |
| delegatedProperties.kt:69:39:69:56 | setExtDelegated(...) | delegatedProperties.kt:69:39:69:56 | set | MethodAccess |
| delegatedProperties.kt:69:39:69:56 | setValue(...) | delegatedProperties.kt:69:36:69:56 | setDelegatedToExtMember1 | MethodAccess |
| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | | ThisAccess |
| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | get | ThisAccess |
| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess |
@@ -535,14 +535,20 @@
| delegatedProperties.kt:70:36:70:59 | ...::... | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | PropertyRefExpr |
| delegatedProperties.kt:70:36:70:59 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | get | VarAccess |
| delegatedProperties.kt:70:36:70:59 | a0 | delegatedProperties.kt:70:36:70:59 | get | VarAccess |
@@ -557,10 +563,12 @@
| delegatedProperties.kt:70:36:70:59 | get(...) | delegatedProperties.kt:70:36:70:59 | invoke | MethodAccess |
| delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | get | MethodAccess |
| delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | get | MethodAccess |
| delegatedProperties.kt:70:36:70:59 | getValue(...) | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | MethodAccess |
| delegatedProperties.kt:70:36:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | set | MethodAccess |
| delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:36:70:59 | set | MethodAccess |
| delegatedProperties.kt:70:36:70:59 | setValue(...) | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | MethodAccess |
| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | ThisAccess |
| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | invoke | ThisAccess |
| delegatedProperties.kt:70:36:70:59 | this | delegatedProperties.kt:70:36:70:59 | invoke | ThisAccess |
@@ -572,36 +580,31 @@
| delegatedProperties.kt:70:39:70:59 | DelegatedPropertiesKt | delegatedProperties.kt:70:39:70:59 | get | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | DelegatedPropertiesKt | delegatedProperties.kt:70:39:70:59 | set | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | TypeAccess |
| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | get | VarAccess |
| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | invoke | VarAccess |
| delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | set | VarAccess |
| delegatedProperties.kt:70:39:70:59 | a1 | delegatedProperties.kt:70:39:70:59 | set | VarAccess |
| delegatedProperties.kt:70:39:70:59 | get(...) | delegatedProperties.kt:70:39:70:59 | invoke | MethodAccess |
| delegatedProperties.kt:70:39:70:59 | getExtDelegated(...) | delegatedProperties.kt:70:39:70:59 | get | MethodAccess |
| delegatedProperties.kt:70:39:70:59 | getValue(...) | delegatedProperties.kt:70:36:70:59 | getDelegatedToExtMember2 | MethodAccess |
| delegatedProperties.kt:70:39:70:59 | setExtDelegated(...) | delegatedProperties.kt:70:39:70:59 | set | MethodAccess |
| delegatedProperties.kt:70:39:70:59 | setValue(...) | delegatedProperties.kt:70:36:70:59 | setDelegatedToExtMember2 | MethodAccess |
| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess |
| delegatedProperties.kt:72:36:72:56 | ...::... | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | PropertyRefExpr |
| delegatedProperties.kt:72:36:72:56 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:72:36:72:56 | Integer | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
| delegatedProperties.kt:72:36:72:56 | Integer | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
| delegatedProperties.kt:72:36:72:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:72:36:72:56 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:72:36:72:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
| delegatedProperties.kt:72:36:72:56 | MyClass | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
| delegatedProperties.kt:72:36:72:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
| delegatedProperties.kt:72:36:72:56 | a0 | delegatedProperties.kt:72:36:72:56 | get | VarAccess |
| delegatedProperties.kt:72:36:72:56 | a0 | delegatedProperties.kt:72:36:72:56 | invoke | VarAccess |
| delegatedProperties.kt:72:36:72:56 | delegatedToBaseClass1$delegate | delegatedProperties.kt:65:1:85:1 | MyClass | VarAccess |
| delegatedProperties.kt:72:36:72:56 | get(...) | delegatedProperties.kt:72:36:72:56 | invoke | MethodAccess |
| delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1(...) | delegatedProperties.kt:72:36:72:56 | get | MethodAccess |
| delegatedProperties.kt:72:36:72:56 | getValue(...) | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | MethodAccess |
| delegatedProperties.kt:72:36:72:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:72:36:72:56 | this | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | ThisAccess |
| delegatedProperties.kt:72:36:72:56 | this | delegatedProperties.kt:72:36:72:56 | invoke | ThisAccess |
@@ -612,13 +615,10 @@
| delegatedProperties.kt:72:39:72:56 | ...=... | delegatedProperties.kt:72:39:72:56 | | AssignExpr |
| delegatedProperties.kt:72:39:72:56 | <dispatchReceiver> | delegatedProperties.kt:72:39:72:56 | | VarAccess |
| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
| delegatedProperties.kt:72:39:72:56 | KProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:72:39:72:56 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:72:39:72:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | TypeAccess |
| delegatedProperties.kt:72:39:72:56 | get(...) | delegatedProperties.kt:72:39:72:56 | invoke | MethodAccess |
| delegatedProperties.kt:72:39:72:56 | getBaseClassInt(...) | delegatedProperties.kt:72:39:72:56 | get | MethodAccess |
| delegatedProperties.kt:72:39:72:56 | getValue(...) | delegatedProperties.kt:72:36:72:56 | getDelegatedToBaseClass1 | MethodAccess |
| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | | ThisAccess |
| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | get | ThisAccess |
| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | invoke | ThisAccess |
@@ -626,46 +626,49 @@
| delegatedProperties.kt:72:39:72:56 | this.<dispatchReceiver> | delegatedProperties.kt:72:39:72:56 | get | VarAccess |
| delegatedProperties.kt:73:36:73:56 | ...::... | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | PropertyRefExpr |
| delegatedProperties.kt:73:36:73:56 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:73:36:73:56 | Base | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | Base | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | Integer | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | Integer | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | KProperty1<Base,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | MyClass | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | a0 | delegatedProperties.kt:73:36:73:56 | get | VarAccess |
| delegatedProperties.kt:73:36:73:56 | a0 | delegatedProperties.kt:73:36:73:56 | invoke | VarAccess |
| delegatedProperties.kt:73:36:73:56 | delegatedToBaseClass2$delegate | delegatedProperties.kt:65:1:85:1 | MyClass | VarAccess |
| delegatedProperties.kt:73:36:73:56 | get(...) | delegatedProperties.kt:73:36:73:56 | invoke | MethodAccess |
| delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2(...) | delegatedProperties.kt:73:36:73:56 | get | MethodAccess |
| delegatedProperties.kt:73:36:73:56 | getValue(...) | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | MethodAccess |
| delegatedProperties.kt:73:36:73:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:73:36:73:56 | this | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | ThisAccess |
| delegatedProperties.kt:73:36:73:56 | this | delegatedProperties.kt:73:36:73:56 | invoke | ThisAccess |
| delegatedProperties.kt:73:36:73:56 | this.delegatedToBaseClass2$delegate | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | VarAccess |
| delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:65:1:85:1 | MyClass | PropertyRefExpr |
| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:39:73:56 | KProperty1<Base,Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:73:39:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | TypeAccess |
| delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | get | VarAccess |
| delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | invoke | VarAccess |
| delegatedProperties.kt:73:39:73:56 | get(...) | delegatedProperties.kt:73:39:73:56 | invoke | MethodAccess |
| delegatedProperties.kt:73:39:73:56 | getBaseClassInt(...) | delegatedProperties.kt:73:39:73:56 | get | MethodAccess |
| delegatedProperties.kt:73:39:73:56 | getValue(...) | delegatedProperties.kt:73:36:73:56 | getDelegatedToBaseClass2 | MethodAccess |
| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | invoke | ThisAccess |
| delegatedProperties.kt:75:39:75:78 | ...::... | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | PropertyRefExpr |
| delegatedProperties.kt:75:39:75:78 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:75:39:75:78 | Integer | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
| delegatedProperties.kt:75:39:75:78 | Integer | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
| delegatedProperties.kt:75:39:75:78 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:75:39:75:78 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:75:39:75:78 | KProperty1<MyClass,Integer> | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
| delegatedProperties.kt:75:39:75:78 | MyClass | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
| delegatedProperties.kt:75:39:75:78 | PropertyReferenceDelegatesKt | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
| delegatedProperties.kt:75:39:75:78 | a0 | delegatedProperties.kt:75:39:75:78 | get | VarAccess |
| delegatedProperties.kt:75:39:75:78 | a0 | delegatedProperties.kt:75:39:75:78 | invoke | VarAccess |
| delegatedProperties.kt:75:39:75:78 | delegatedToAnotherClass1$delegate | delegatedProperties.kt:65:1:85:1 | MyClass | VarAccess |
| delegatedProperties.kt:75:39:75:78 | get(...) | delegatedProperties.kt:75:39:75:78 | invoke | MethodAccess |
| delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1(...) | delegatedProperties.kt:75:39:75:78 | get | MethodAccess |
| delegatedProperties.kt:75:39:75:78 | getValue(...) | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | MethodAccess |
| delegatedProperties.kt:75:39:75:78 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:75:39:75:78 | this | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | ThisAccess |
| delegatedProperties.kt:75:39:75:78 | this | delegatedProperties.kt:75:39:75:78 | invoke | ThisAccess |
@@ -678,12 +681,9 @@
| delegatedProperties.kt:75:42:75:78 | <dispatchReceiver> | delegatedProperties.kt:75:42:75:78 | | VarAccess |
| delegatedProperties.kt:75:42:75:78 | ClassWithDelegate | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
| delegatedProperties.kt:75:42:75:78 | KProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:75:42:75:78 | PropertyReferenceDelegatesKt | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
| delegatedProperties.kt:75:42:75:78 | get(...) | delegatedProperties.kt:75:42:75:78 | invoke | MethodAccess |
| delegatedProperties.kt:75:42:75:78 | getAnotherClassInt(...) | delegatedProperties.kt:75:42:75:78 | get | MethodAccess |
| delegatedProperties.kt:75:42:75:78 | getValue(...) | delegatedProperties.kt:75:39:75:78 | getDelegatedToAnotherClass1 | MethodAccess |
| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | | ThisAccess |
| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | get | ThisAccess |
| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | invoke | ThisAccess |
@@ -693,6 +693,8 @@
| delegatedProperties.kt:77:34:77:49 | ...::... | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | PropertyRefExpr |
| delegatedProperties.kt:77:34:77:49 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:77:34:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
@@ -700,6 +702,8 @@
| delegatedProperties.kt:77:34:77:49 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | MyClass | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | MyClass | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | a0 | delegatedProperties.kt:77:34:77:49 | get | VarAccess |
| delegatedProperties.kt:77:34:77:49 | a0 | delegatedProperties.kt:77:34:77:49 | get | VarAccess |
@@ -714,10 +718,12 @@
| delegatedProperties.kt:77:34:77:49 | get(...) | delegatedProperties.kt:77:34:77:49 | invoke | MethodAccess |
| delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel(...) | delegatedProperties.kt:77:34:77:49 | get | MethodAccess |
| delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel(...) | delegatedProperties.kt:77:34:77:49 | get | MethodAccess |
| delegatedProperties.kt:77:34:77:49 | getValue(...) | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | MethodAccess |
| delegatedProperties.kt:77:34:77:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel(...) | delegatedProperties.kt:77:34:77:49 | set | MethodAccess |
| delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel(...) | delegatedProperties.kt:77:34:77:49 | set | MethodAccess |
| delegatedProperties.kt:77:34:77:49 | setValue(...) | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | MethodAccess |
| delegatedProperties.kt:77:34:77:49 | this | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | ThisAccess |
| delegatedProperties.kt:77:34:77:49 | this | delegatedProperties.kt:77:34:77:49 | invoke | ThisAccess |
| delegatedProperties.kt:77:34:77:49 | this | delegatedProperties.kt:77:34:77:49 | invoke | ThisAccess |
@@ -729,29 +735,26 @@
| delegatedProperties.kt:77:37:77:49 | DelegatedPropertiesKt | delegatedProperties.kt:77:37:77:49 | get | TypeAccess |
| delegatedProperties.kt:77:37:77:49 | DelegatedPropertiesKt | delegatedProperties.kt:77:37:77:49 | set | TypeAccess |
| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:37:77:49 | KMutableProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | TypeAccess |
| delegatedProperties.kt:77:37:77:49 | a0 | delegatedProperties.kt:77:37:77:49 | set | VarAccess |
| delegatedProperties.kt:77:37:77:49 | get(...) | delegatedProperties.kt:77:37:77:49 | invoke | MethodAccess |
| delegatedProperties.kt:77:37:77:49 | getTopLevelInt(...) | delegatedProperties.kt:77:37:77:49 | get | MethodAccess |
| delegatedProperties.kt:77:37:77:49 | getValue(...) | delegatedProperties.kt:77:34:77:49 | getDelegatedToTopLevel | MethodAccess |
| delegatedProperties.kt:77:37:77:49 | setTopLevelInt(...) | delegatedProperties.kt:77:37:77:49 | set | MethodAccess |
| delegatedProperties.kt:77:37:77:49 | setValue(...) | delegatedProperties.kt:77:34:77:49 | setDelegatedToTopLevel | MethodAccess |
| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | invoke | ThisAccess |
| delegatedProperties.kt:79:18:79:38 | ...::... | delegatedProperties.kt:79:18:79:38 | getMax | PropertyRefExpr |
| delegatedProperties.kt:79:18:79:38 | ...=... | delegatedProperties.kt:65:1:85:1 | MyClass | KtInitializerAssignExpr |
| delegatedProperties.kt:79:18:79:38 | Integer | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
| delegatedProperties.kt:79:18:79:38 | Integer | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
| delegatedProperties.kt:79:18:79:38 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:79:18:79:38 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:79:18:79:38 | KProperty1<MyClass,Integer> | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
| delegatedProperties.kt:79:18:79:38 | MyClass | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
| delegatedProperties.kt:79:18:79:38 | PropertyReferenceDelegatesKt | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
| delegatedProperties.kt:79:18:79:38 | a0 | delegatedProperties.kt:79:18:79:38 | get | VarAccess |
| delegatedProperties.kt:79:18:79:38 | a0 | delegatedProperties.kt:79:18:79:38 | invoke | VarAccess |
| delegatedProperties.kt:79:18:79:38 | get(...) | delegatedProperties.kt:79:18:79:38 | invoke | MethodAccess |
| delegatedProperties.kt:79:18:79:38 | getMax(...) | delegatedProperties.kt:79:18:79:38 | get | MethodAccess |
| delegatedProperties.kt:79:18:79:38 | getValue(...) | delegatedProperties.kt:79:18:79:38 | getMax | MethodAccess |
| delegatedProperties.kt:79:18:79:38 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:79:18:79:38 | max$delegate | delegatedProperties.kt:65:1:85:1 | MyClass | VarAccess |
| delegatedProperties.kt:79:18:79:38 | this | delegatedProperties.kt:79:18:79:38 | getMax | ThisAccess |
@@ -759,12 +762,9 @@
| delegatedProperties.kt:79:18:79:38 | this.max$delegate | delegatedProperties.kt:79:18:79:38 | getMax | VarAccess |
| delegatedProperties.kt:79:21:79:38 | ...::... | delegatedProperties.kt:65:1:85:1 | MyClass | PropertyRefExpr |
| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
| delegatedProperties.kt:79:21:79:38 | KProperty0<Integer> | delegatedProperties.kt:65:1:85:1 | MyClass | TypeAccess |
| delegatedProperties.kt:79:21:79:38 | MAX_VALUE | delegatedProperties.kt:79:21:79:38 | get | VarAccess |
| delegatedProperties.kt:79:21:79:38 | PropertyReferenceDelegatesKt | delegatedProperties.kt:79:18:79:38 | getMax | TypeAccess |
| delegatedProperties.kt:79:21:79:38 | get(...) | delegatedProperties.kt:79:21:79:38 | invoke | MethodAccess |
| delegatedProperties.kt:79:21:79:38 | getValue(...) | delegatedProperties.kt:79:18:79:38 | getMax | MethodAccess |
| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | invoke | ThisAccess |
| delegatedProperties.kt:81:5:84:5 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | ...::... | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | PropertyRefExpr |
@@ -774,6 +774,8 @@
| delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3>(...) | delegatedProperties.kt:82:37:82:54 | set | MethodAccess |
| delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3>(...) | delegatedProperties.kt:82:37:82:54 | set | MethodAccess |
| delegatedProperties.kt:82:37:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | KMutableProperty0<Integer> | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | KMutableProperty0<Integer> | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
@@ -781,6 +783,8 @@
| delegatedProperties.kt:82:37:82:54 | Object | delegatedProperties.kt:82:37:82:54 | get | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | Object | delegatedProperties.kt:82:37:82:54 | set | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | Object | delegatedProperties.kt:82:37:82:54 | set | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | PropertyReferenceDelegatesKt | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | PropertyReferenceDelegatesKt | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | a0 | delegatedProperties.kt:82:37:82:54 | set | VarAccess |
| delegatedProperties.kt:82:37:82:54 | a0 | delegatedProperties.kt:82:37:82:54 | set | VarAccess |
@@ -789,12 +793,14 @@
| delegatedProperties.kt:82:37:82:54 | delegatedToMember3$delegate | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | VarAccess |
| delegatedProperties.kt:82:37:82:54 | get(...) | delegatedProperties.kt:82:37:82:54 | invoke | MethodAccess |
| delegatedProperties.kt:82:37:82:54 | get(...) | delegatedProperties.kt:82:37:82:54 | invoke | MethodAccess |
| delegatedProperties.kt:82:37:82:54 | getValue(...) | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | MethodAccess |
| delegatedProperties.kt:82:37:82:54 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:82:37:82:54 | new (...) | delegatedProperties.kt:82:37:82:54 | get | ClassInstanceExpr |
| delegatedProperties.kt:82:37:82:54 | new (...) | delegatedProperties.kt:82:37:82:54 | get | ClassInstanceExpr |
| delegatedProperties.kt:82:37:82:54 | new (...) | delegatedProperties.kt:82:37:82:54 | set | ClassInstanceExpr |
| delegatedProperties.kt:82:37:82:54 | new (...) | delegatedProperties.kt:82:37:82:54 | set | ClassInstanceExpr |
| delegatedProperties.kt:82:37:82:54 | setValue(...) | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | MethodAccess |
| delegatedProperties.kt:82:37:82:54 | this | delegatedProperties.kt:82:37:82:54 | invoke | ThisAccess |
| delegatedProperties.kt:82:37:82:54 | this | delegatedProperties.kt:82:37:82:54 | invoke | ThisAccess |
| delegatedProperties.kt:82:40:82:43 | this | delegatedProperties.kt:81:5:84:5 | fn | ThisAccess |
@@ -802,18 +808,12 @@
| delegatedProperties.kt:82:40:82:54 | ...=... | delegatedProperties.kt:82:40:82:54 | | AssignExpr |
| delegatedProperties.kt:82:40:82:54 | <dispatchReceiver> | delegatedProperties.kt:82:40:82:54 | | VarAccess |
| delegatedProperties.kt:82:40:82:54 | Integer | delegatedProperties.kt:81:5:84:5 | fn | TypeAccess |
| delegatedProperties.kt:82:40:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:40:82:54 | Integer | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:40:82:54 | KMutableProperty0<Integer> | delegatedProperties.kt:81:5:84:5 | fn | TypeAccess |
| delegatedProperties.kt:82:40:82:54 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:82:40:82:54 | PropertyReferenceDelegatesKt | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:40:82:54 | PropertyReferenceDelegatesKt | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | TypeAccess |
| delegatedProperties.kt:82:40:82:54 | a0 | delegatedProperties.kt:82:40:82:54 | set | VarAccess |
| delegatedProperties.kt:82:40:82:54 | get(...) | delegatedProperties.kt:82:40:82:54 | invoke | MethodAccess |
| delegatedProperties.kt:82:40:82:54 | getMemberInt(...) | delegatedProperties.kt:82:40:82:54 | get | MethodAccess |
| delegatedProperties.kt:82:40:82:54 | getValue(...) | delegatedProperties.kt:82:37:82:54 | <get-delegatedToMember3> | MethodAccess |
| delegatedProperties.kt:82:40:82:54 | setMemberInt(...) | delegatedProperties.kt:82:40:82:54 | set | MethodAccess |
| delegatedProperties.kt:82:40:82:54 | setValue(...) | delegatedProperties.kt:82:37:82:54 | <set-delegatedToMember3> | MethodAccess |
| delegatedProperties.kt:82:40:82:54 | this | delegatedProperties.kt:82:40:82:54 | | ThisAccess |
| delegatedProperties.kt:82:40:82:54 | this | delegatedProperties.kt:82:40:82:54 | get | ThisAccess |
| delegatedProperties.kt:82:40:82:54 | this | delegatedProperties.kt:82:40:82:54 | invoke | ThisAccess |
@@ -840,6 +840,8 @@
| delegatedProperties.kt:87:31:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:31:87:46 | getExtDelegated | VarAccess |
| delegatedProperties.kt:87:31:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:31:87:46 | setExtDelegated | VarAccess |
| delegatedProperties.kt:87:31:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
@@ -847,6 +849,8 @@
| delegatedProperties.kt:87:31:87:46 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | MyClass | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | MyClass | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | a0 | delegatedProperties.kt:87:31:87:46 | get | VarAccess |
| delegatedProperties.kt:87:31:87:46 | a0 | delegatedProperties.kt:87:31:87:46 | get | VarAccess |
@@ -860,10 +864,12 @@
| delegatedProperties.kt:87:31:87:46 | get(...) | delegatedProperties.kt:87:31:87:46 | invoke | MethodAccess |
| delegatedProperties.kt:87:31:87:46 | getExtDelegated(...) | delegatedProperties.kt:87:31:87:46 | get | MethodAccess |
| delegatedProperties.kt:87:31:87:46 | getExtDelegated(...) | delegatedProperties.kt:87:31:87:46 | get | MethodAccess |
| delegatedProperties.kt:87:31:87:46 | getValue(...) | delegatedProperties.kt:87:31:87:46 | getExtDelegated | MethodAccess |
| delegatedProperties.kt:87:31:87:46 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | int | file://:0:0:0:0 | <none> | TypeAccess |
| delegatedProperties.kt:87:31:87:46 | setExtDelegated(...) | delegatedProperties.kt:87:31:87:46 | set | MethodAccess |
| delegatedProperties.kt:87:31:87:46 | setExtDelegated(...) | delegatedProperties.kt:87:31:87:46 | set | MethodAccess |
| delegatedProperties.kt:87:31:87:46 | setValue(...) | delegatedProperties.kt:87:31:87:46 | setExtDelegated | MethodAccess |
| delegatedProperties.kt:87:31:87:46 | this | delegatedProperties.kt:87:31:87:46 | invoke | ThisAccess |
| delegatedProperties.kt:87:31:87:46 | this | delegatedProperties.kt:87:31:87:46 | invoke | ThisAccess |
| delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:0:0:0:0 | <clinit> | PropertyRefExpr |
@@ -871,17 +877,11 @@
| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | get | TypeAccess |
| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | set | TypeAccess |
| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:0:0:0:0 | <clinit> | TypeAccess |
| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
| delegatedProperties.kt:87:34:87:46 | KMutableProperty0<Integer> | delegatedProperties.kt:0:0:0:0 | <clinit> | TypeAccess |
| delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:31:87:46 | getExtDelegated | TypeAccess |
| delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:31:87:46 | setExtDelegated | TypeAccess |
| delegatedProperties.kt:87:34:87:46 | a0 | delegatedProperties.kt:87:34:87:46 | set | VarAccess |
| delegatedProperties.kt:87:34:87:46 | get(...) | delegatedProperties.kt:87:34:87:46 | invoke | MethodAccess |
| delegatedProperties.kt:87:34:87:46 | getTopLevelInt(...) | delegatedProperties.kt:87:34:87:46 | get | MethodAccess |
| delegatedProperties.kt:87:34:87:46 | getValue(...) | delegatedProperties.kt:87:31:87:46 | getExtDelegated | MethodAccess |
| delegatedProperties.kt:87:34:87:46 | setTopLevelInt(...) | delegatedProperties.kt:87:34:87:46 | set | MethodAccess |
| delegatedProperties.kt:87:34:87:46 | setValue(...) | delegatedProperties.kt:87:31:87:46 | setExtDelegated | MethodAccess |
| delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess |
| exprs.kt:0:0:0:0 | Color | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:0:0:0:0 | Color | file://:0:0:0:0 | <none> | TypeAccess |
@@ -948,7 +948,7 @@
| exprs.kt:21:21:21:21 | y | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
| exprs.kt:22:5:22:21 | i12 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
| exprs.kt:22:15:22:15 | x | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
| exprs.kt:22:17:22:21 | ~... | exprs.kt:4:1:136:1 | topLevelMethod | BitNotExpr |
| exprs.kt:22:15:22:21 | ~... | exprs.kt:4:1:136:1 | topLevelMethod | BitNotExpr |
| exprs.kt:23:5:23:20 | i13 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
| exprs.kt:23:15:23:15 | x | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
| exprs.kt:23:15:23:20 | ... (value equals) ... | exprs.kt:4:1:136:1 | topLevelMethod | ValueEQExpr |
@@ -1162,7 +1162,7 @@
| exprs.kt:72:22:72:23 | ly | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
| exprs.kt:73:5:73:22 | l12 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
| exprs.kt:73:15:73:16 | lx | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
| exprs.kt:73:18:73:22 | ~... | exprs.kt:4:1:136:1 | topLevelMethod | BitNotExpr |
| exprs.kt:73:15:73:22 | ~... | exprs.kt:4:1:136:1 | topLevelMethod | BitNotExpr |
| exprs.kt:74:5:74:22 | l13 | exprs.kt:4:1:136:1 | topLevelMethod | LocalVariableDeclExpr |
| exprs.kt:74:15:74:16 | lx | exprs.kt:4:1:136:1 | topLevelMethod | VarAccess |
| exprs.kt:74:15:74:22 | ... (value equals) ... | exprs.kt:4:1:136:1 | topLevelMethod | ValueEQExpr |
@@ -1430,7 +1430,7 @@
| exprs.kt:159:9:159:18 | Polygon | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:160:5:160:25 | r | exprs.kt:159:1:166:1 | foo | LocalVariableDeclExpr |
| exprs.kt:160:13:160:13 | p | exprs.kt:159:1:166:1 | foo | VarAccess |
| exprs.kt:160:15:160:25 | getBounds(...) | exprs.kt:159:1:166:1 | foo | MethodAccess |
| exprs.kt:160:13:160:25 | getBounds(...) | exprs.kt:159:1:166:1 | foo | MethodAccess |
| exprs.kt:161:5:165:5 | when ... | exprs.kt:159:1:166:1 | foo | WhenExpr |
| exprs.kt:161:8:161:8 | r | exprs.kt:159:1:166:1 | foo | VarAccess |
| exprs.kt:161:8:161:16 | ... (value not-equals) ... | exprs.kt:159:1:166:1 | foo | ValueNEExpr |
@@ -1534,8 +1534,8 @@
| exprs.kt:190:31:190:32 | getA1(...) | exprs.kt:189:16:191:9 | | MethodAccess |
| exprs.kt:190:31:190:32 | this | exprs.kt:189:16:191:9 | | ThisAccess |
| exprs.kt:190:31:190:37 | ... + ... | exprs.kt:189:16:191:9 | | AddExpr |
| exprs.kt:190:31:190:49 | toString(...) | exprs.kt:189:16:191:9 | | MethodAccess |
| exprs.kt:190:36:190:37 | a2 | exprs.kt:189:16:191:9 | | VarAccess |
| exprs.kt:190:40:190:49 | toString(...) | exprs.kt:189:16:191:9 | | MethodAccess |
| exprs.kt:195:1:197:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:195:22:195:28 | Object | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:196:5:196:20 | y | exprs.kt:195:1:197:1 | notNullAssertion | LocalVariableDeclExpr |
@@ -1546,12 +1546,12 @@
| exprs.kt:200:21:200:30 | String | file://:0:0:0:0 | <none> | TypeAccess |
| exprs.kt:202:9:202:29 | a | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
| exprs.kt:202:17:202:18 | aa | exprs.kt:200:5:211:5 | x | VarAccess |
| exprs.kt:202:20:202:29 | String | exprs.kt:200:5:211:5 | x | TypeAccess |
| exprs.kt:202:20:202:29 | valueOf(...) | exprs.kt:200:5:211:5 | x | MethodAccess |
| exprs.kt:202:17:202:29 | String | exprs.kt:200:5:211:5 | x | TypeAccess |
| exprs.kt:202:17:202:29 | valueOf(...) | exprs.kt:200:5:211:5 | x | MethodAccess |
| exprs.kt:203:9:203:27 | b0 | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
| exprs.kt:203:19:203:19 | s | exprs.kt:200:5:211:5 | x | VarAccess |
| exprs.kt:203:21:203:27 | Intrinsics | exprs.kt:200:5:211:5 | x | TypeAccess |
| exprs.kt:203:21:203:27 | stringPlus(...) | exprs.kt:200:5:211:5 | x | MethodAccess |
| exprs.kt:203:19:203:27 | Intrinsics | exprs.kt:200:5:211:5 | x | TypeAccess |
| exprs.kt:203:19:203:27 | stringPlus(...) | exprs.kt:200:5:211:5 | x | MethodAccess |
| exprs.kt:203:26:203:26 | 5 | exprs.kt:200:5:211:5 | x | IntegerLiteral |
| exprs.kt:204:9:204:23 | b1 | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
| exprs.kt:204:19:204:19 | s | exprs.kt:200:5:211:5 | x | VarAccess |
@@ -1561,7 +1561,7 @@
| exprs.kt:205:9:205:29 | b2 | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
| exprs.kt:205:19:205:19 | s | exprs.kt:200:5:211:5 | x | VarAccess |
| exprs.kt:205:20:205:21 | ...!! | exprs.kt:200:5:211:5 | x | NotNullExpr |
| exprs.kt:205:23:205:29 | ... + ... | exprs.kt:200:5:211:5 | x | AddExpr |
| exprs.kt:205:20:205:29 | ... + ... | exprs.kt:200:5:211:5 | x | AddExpr |
| exprs.kt:205:28:205:28 | 5 | exprs.kt:200:5:211:5 | x | IntegerLiteral |
| exprs.kt:206:9:206:25 | b3 | exprs.kt:200:5:211:5 | x | LocalVariableDeclExpr |
| exprs.kt:206:19:206:19 | s | exprs.kt:200:5:211:5 | x | VarAccess |
@@ -1802,25 +1802,25 @@
| exprs.kt:289:7:289:8 | i0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:289:7:289:8 | i0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:290:5:290:6 | i0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:290:5:290:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:290:8:290:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:290:8:290:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:290:8:290:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:291:5:291:6 | i0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:291:5:291:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:291:8:291:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:291:8:291:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:291:8:291:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:292:5:292:6 | i1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:292:5:292:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:292:8:292:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:292:8:292:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:292:8:292:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:293:5:293:6 | i1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:293:5:293:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:293:8:293:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:293:8:293:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:293:8:293:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:294:5:294:5 | i | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:294:5:294:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
| exprs.kt:294:7:294:11 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:294:7:294:11 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:294:7:294:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
| exprs.kt:296:5:296:6 | -... | exprs.kt:279:1:340:1 | unaryExprs | MinusExpr |
| exprs.kt:296:5:296:6 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:296:5:296:6 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
@@ -1870,25 +1870,25 @@
| exprs.kt:303:7:303:8 | b0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:303:7:303:8 | b0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:304:5:304:6 | b0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:304:5:304:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:304:8:304:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:304:8:304:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:304:8:304:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:305:5:305:6 | b0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:305:5:305:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:305:8:305:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:305:8:305:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:305:8:305:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:306:5:306:6 | b1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:306:5:306:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:306:8:306:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:306:8:306:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:306:8:306:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:307:5:307:6 | b1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:307:5:307:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:307:8:307:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:307:8:307:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:307:8:307:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:308:5:308:5 | b | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:308:5:308:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
| exprs.kt:308:7:308:11 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:308:7:308:11 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:308:7:308:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
| exprs.kt:310:5:310:6 | -... | exprs.kt:279:1:340:1 | unaryExprs | MinusExpr |
| exprs.kt:310:5:310:6 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:310:5:310:6 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
@@ -1938,25 +1938,25 @@
| exprs.kt:317:7:317:8 | s0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:317:7:317:8 | s0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:318:5:318:6 | s0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:318:5:318:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:318:8:318:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:318:8:318:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:318:8:318:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:319:5:319:6 | s0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:319:5:319:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:319:8:319:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:319:8:319:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:319:8:319:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:320:5:320:6 | s1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:320:5:320:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:320:8:320:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:320:8:320:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:320:8:320:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:321:5:321:6 | s1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:321:5:321:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:321:8:321:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:321:8:321:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:321:8:321:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:322:5:322:5 | s | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:322:5:322:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
| exprs.kt:322:7:322:11 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:322:7:322:11 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:322:7:322:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
| exprs.kt:324:5:324:6 | -... | exprs.kt:279:1:340:1 | unaryExprs | MinusExpr |
| exprs.kt:324:5:324:6 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:324:5:324:6 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
@@ -2006,25 +2006,25 @@
| exprs.kt:331:7:331:8 | l0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:331:7:331:8 | l0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:332:5:332:6 | l0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:332:5:332:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:332:8:332:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:332:8:332:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:332:8:332:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:333:5:333:6 | l0 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:333:5:333:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:333:8:333:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:333:8:333:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:333:8:333:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:334:5:334:6 | l1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:334:5:334:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:334:8:334:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:334:8:334:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:334:8:334:12 | inc(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:335:5:335:6 | l1 | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:335:5:335:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:335:8:335:12 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:335:8:335:12 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:335:8:335:12 | dec(...) | exprs.kt:279:1:340:1 | unaryExprs | MethodAccess |
| exprs.kt:336:5:336:5 | l | exprs.kt:279:1:340:1 | unaryExprs | VarAccess |
| exprs.kt:336:5:336:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
| exprs.kt:336:7:336:11 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:336:7:336:11 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
| exprs.kt:336:7:336:11 | ~... | exprs.kt:279:1:340:1 | unaryExprs | BitNotExpr |
| exprs.kt:338:5:338:6 | +... | exprs.kt:279:1:340:1 | unaryExprs | PlusExpr |
| exprs.kt:338:5:338:6 | <implicit coercion to unit> | exprs.kt:279:1:340:1 | unaryExprs | ImplicitCoercionToUnitExpr |
| exprs.kt:338:5:338:6 | Unit | exprs.kt:279:1:340:1 | unaryExprs | TypeAccess |
@@ -3234,11 +3234,11 @@
| 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:83:38: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:5:84:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
| 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 |
@@ -3248,11 +3248,11 @@
| 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:86:46: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:5:87:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
| 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 |
@@ -3401,13 +3401,13 @@
| 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:5:91:60 | 23 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
| funcExprs.kt:91:5:91:60 | Object | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
| funcExprs.kt:91:5:91:60 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
| funcExprs.kt:91:5:91:60 | new Object[] | funcExprs.kt:82:9:96:1 | fn | ArrayCreationExpr |
| funcExprs.kt:91:5:91:60 | {...} | funcExprs.kt:82:9:96:1 | fn | ArrayInit |
| 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 |
@@ -3482,9 +3482,9 @@
| 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:5:95:58 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodAccess |
| 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 |
@@ -3560,22 +3560,22 @@
| localFunctionCalls.kt:10:5:10:13 | C1<Integer> | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:10:5:10:13 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:10:5:10:13 | new C1<Integer>(...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
| localFunctionCalls.kt:10:5:10:20 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:10:5:10:20 | Object | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:10:5:10:20 | f1(...) | localFunctionCalls.kt:3:1:12:1 | x | MethodAccess |
| localFunctionCalls.kt:10:5:10:20 | new (...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
| localFunctionCalls.kt:10:15:10:20 | <implicit coercion to unit> | localFunctionCalls.kt:3:1:12:1 | x | ImplicitCoercionToUnitExpr |
| localFunctionCalls.kt:10:15:10:20 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:10:15:10:20 | Object | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:10:15:10:20 | Unit | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:10:15:10:20 | f1(...) | localFunctionCalls.kt:3:1:12:1 | x | MethodAccess |
| localFunctionCalls.kt:10:15:10:20 | new (...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
| localFunctionCalls.kt:10:18:10:19 | 42 | localFunctionCalls.kt:3:1:12:1 | x | IntegerLiteral |
| localFunctionCalls.kt:11:5:11:13 | C1<Integer> | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:11:5:11:13 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:11:5:11:13 | new C1<Integer>(...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
| localFunctionCalls.kt:11:5:11:20 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:11:5:11:20 | Object | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:11:5:11:20 | f1(...) | localFunctionCalls.kt:3:1:12:1 | x | MethodAccess |
| localFunctionCalls.kt:11:5:11:20 | new (...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
| localFunctionCalls.kt:11:15:11:20 | <implicit coercion to unit> | localFunctionCalls.kt:3:1:12:1 | x | ImplicitCoercionToUnitExpr |
| localFunctionCalls.kt:11:15:11:20 | Integer | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:11:15:11:20 | Object | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:11:15:11:20 | Unit | localFunctionCalls.kt:3:1:12:1 | x | TypeAccess |
| localFunctionCalls.kt:11:15:11:20 | f1(...) | localFunctionCalls.kt:3:1:12:1 | x | MethodAccess |
| localFunctionCalls.kt:11:15:11:20 | new (...) | localFunctionCalls.kt:3:1:12:1 | x | ClassInstanceExpr |
| localFunctionCalls.kt:11:18:11:19 | 42 | localFunctionCalls.kt:3:1:12:1 | x | IntegerLiteral |
| samConversion.kt:1:1:14:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
| samConversion.kt:1:10:1:19 | boolean | file://:0:0:0:0 | <none> | TypeAccess |
@@ -4259,7 +4259,7 @@
| 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:5: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 |
| samConversion.kt:63:5:63:13 | ...=... | samConversion.kt:62:1:64:1 | PropertyRefsTest | KtInitializerAssignExpr |

View File

@@ -1,6 +1,6 @@
| exprs.kt:22:17:22:21 | ~... | exprs.kt:22:15:22:15 | x |
| exprs.kt:22:15:22:21 | ~... | exprs.kt:22:15:22:15 | x |
| exprs.kt:32:15:32:26 | !... | exprs.kt:32:15:32:26 | contains(...) |
| exprs.kt:73:18:73:22 | ~... | exprs.kt:73:15:73:16 | lx |
| exprs.kt:73:15:73:22 | ~... | exprs.kt:73:15:73:16 | lx |
| exprs.kt:115:14:115:16 | !... | exprs.kt:115:15:115:16 | b1 |
| exprs.kt:196:19:196:20 | ...!! | exprs.kt:196:18:196:18 | x |
| exprs.kt:205:20:205:21 | ...!! | exprs.kt:205:19:205:19 | s |
@@ -9,15 +9,15 @@
| exprs.kt:281:5:281:6 | +... | exprs.kt:281:6:281:6 | i |
| exprs.kt:282:5:282:6 | -... | exprs.kt:282:6:282:6 | d |
| exprs.kt:283:5:283:6 | +... | exprs.kt:283:6:283:6 | d |
| exprs.kt:294:7:294:11 | ~... | exprs.kt:294:5:294:5 | i |
| exprs.kt:294:5:294:11 | ~... | exprs.kt:294:5:294:5 | i |
| exprs.kt:296:5:296:6 | -... | exprs.kt:296:6:296:6 | b |
| exprs.kt:297:5:297:6 | +... | exprs.kt:297:6:297:6 | b |
| exprs.kt:308:7:308:11 | ~... | exprs.kt:308:5:308:5 | b |
| exprs.kt:308:5:308:11 | ~... | exprs.kt:308:5:308:5 | b |
| exprs.kt:310:5:310:6 | -... | exprs.kt:310:6:310:6 | s |
| exprs.kt:311:5:311:6 | +... | exprs.kt:311:6:311:6 | s |
| exprs.kt:322:7:322:11 | ~... | exprs.kt:322:5:322:5 | s |
| exprs.kt:322:5:322:11 | ~... | exprs.kt:322:5:322:5 | s |
| exprs.kt:324:5:324:6 | -... | exprs.kt:324:6:324:6 | l |
| exprs.kt:325:5:325:6 | +... | exprs.kt:325:6:325:6 | l |
| exprs.kt:336:7:336:11 | ~... | exprs.kt:336:5:336:5 | l |
| exprs.kt:336:5:336:11 | ~... | exprs.kt:336:5:336:5 | l |
| exprs.kt:338:5:338:6 | +... | exprs.kt:338:6:338:6 | f |
| exprs.kt:339:5:339:6 | -... | exprs.kt:339:6:339:6 | f |

View File

@@ -1,20 +1,20 @@
| A.java:3:9:3:49 | someFun(...) | A.java:3:9:3:20 | ExtensionsKt | A.java:3:30:3:44 | new SomeClass(...) |
| A.java:3:9:3:49 | someFun(...) | A.java:3:9:3:20 | ExtensionsKt | A.java:3:47:3:48 | "" |
| extensions.kt:21:17:21:38 | someClassMethod(...) | extensions.kt:21:5:21:15 | new SomeClass(...) | extensions.kt:21:34:21:36 | foo |
| extensions.kt:22:17:22:30 | someFun(...) | extensions.kt:22:17:22:30 | ExtensionsKt | extensions.kt:22:5:22:15 | new SomeClass(...) |
| extensions.kt:22:17:22:30 | someFun(...) | extensions.kt:22:17:22:30 | ExtensionsKt | extensions.kt:22:26:22:28 | foo |
| extensions.kt:23:17:23:30 | bothFun(...) | extensions.kt:23:17:23:30 | ExtensionsKt | extensions.kt:23:5:23:15 | new SomeClass(...) |
| extensions.kt:23:17:23:30 | bothFun(...) | extensions.kt:23:17:23:30 | ExtensionsKt | extensions.kt:23:26:23:28 | foo |
| extensions.kt:24:17:24:35 | bothFunDiffTypes(...) | extensions.kt:24:17:24:35 | ExtensionsKt | extensions.kt:24:5:24:15 | new SomeClass(...) |
| extensions.kt:24:17:24:35 | bothFunDiffTypes(...) | extensions.kt:24:17:24:35 | ExtensionsKt | extensions.kt:24:34:24:34 | 1 |
| extensions.kt:25:20:25:44 | anotherClassMethod(...) | extensions.kt:25:5:25:18 | new AnotherClass(...) | extensions.kt:25:40:25:42 | foo |
| extensions.kt:26:20:26:36 | anotherFun(...) | extensions.kt:26:20:26:36 | ExtensionsKt | extensions.kt:26:5:26:18 | new AnotherClass(...) |
| extensions.kt:26:20:26:36 | anotherFun(...) | extensions.kt:26:20:26:36 | ExtensionsKt | extensions.kt:26:32:26:34 | foo |
| extensions.kt:27:20:27:33 | bothFun(...) | extensions.kt:27:20:27:33 | ExtensionsKt | extensions.kt:27:5:27:18 | new AnotherClass(...) |
| extensions.kt:27:20:27:33 | bothFun(...) | extensions.kt:27:20:27:33 | ExtensionsKt | extensions.kt:27:29:27:31 | foo |
| extensions.kt:28:20:28:42 | bothFunDiffTypes(...) | extensions.kt:28:20:28:42 | ExtensionsKt | extensions.kt:28:5:28:18 | new AnotherClass(...) |
| extensions.kt:28:20:28:42 | bothFunDiffTypes(...) | extensions.kt:28:20:28:42 | ExtensionsKt | extensions.kt:28:38:28:40 | foo |
| extensions.kt:29:18:29:27 | bar(...) | extensions.kt:29:18:29:27 | ExtensionsKt | extensions.kt:29:6:29:15 | someString |
| extensions.kt:29:18:29:27 | bar(...) | extensions.kt:29:18:29:27 | ExtensionsKt | extensions.kt:29:23:29:25 | foo |
| extensions.kt:31:18:31:32 | baz(...) | extensions.kt:31:18:31:32 | new (...) | extensions.kt:31:6:31:15 | someString |
| extensions.kt:31:18:31:32 | baz(...) | extensions.kt:31:18:31:32 | new (...) | extensions.kt:31:23:31:30 | bazParam |
| extensions.kt:21:5:21:38 | someClassMethod(...) | extensions.kt:21:5:21:15 | new SomeClass(...) | extensions.kt:21:34:21:36 | foo |
| extensions.kt:22:5:22:30 | someFun(...) | extensions.kt:22:5:22:30 | ExtensionsKt | extensions.kt:22:5:22:15 | new SomeClass(...) |
| extensions.kt:22:5:22:30 | someFun(...) | extensions.kt:22:5:22:30 | ExtensionsKt | extensions.kt:22:26:22:28 | foo |
| extensions.kt:23:5:23:30 | bothFun(...) | extensions.kt:23:5:23:30 | ExtensionsKt | extensions.kt:23:5:23:15 | new SomeClass(...) |
| extensions.kt:23:5:23:30 | bothFun(...) | extensions.kt:23:5:23:30 | ExtensionsKt | extensions.kt:23:26:23:28 | foo |
| extensions.kt:24:5:24:35 | bothFunDiffTypes(...) | extensions.kt:24:5:24:35 | ExtensionsKt | extensions.kt:24:5:24:15 | new SomeClass(...) |
| extensions.kt:24:5:24:35 | bothFunDiffTypes(...) | extensions.kt:24:5:24:35 | ExtensionsKt | extensions.kt:24:34:24:34 | 1 |
| extensions.kt:25:5:25:44 | anotherClassMethod(...) | extensions.kt:25:5:25:18 | new AnotherClass(...) | extensions.kt:25:40:25:42 | foo |
| extensions.kt:26:5:26:36 | anotherFun(...) | extensions.kt:26:5:26:36 | ExtensionsKt | extensions.kt:26:5:26:18 | new AnotherClass(...) |
| extensions.kt:26:5:26:36 | anotherFun(...) | extensions.kt:26:5:26:36 | ExtensionsKt | extensions.kt:26:32:26:34 | foo |
| extensions.kt:27:5:27:33 | bothFun(...) | extensions.kt:27:5:27:33 | ExtensionsKt | extensions.kt:27:5:27:18 | new AnotherClass(...) |
| extensions.kt:27:5:27:33 | bothFun(...) | extensions.kt:27:5:27:33 | ExtensionsKt | extensions.kt:27:29:27:31 | foo |
| extensions.kt:28:5:28:42 | bothFunDiffTypes(...) | extensions.kt:28:5:28:42 | ExtensionsKt | extensions.kt:28:5:28:18 | new AnotherClass(...) |
| extensions.kt:28:5:28:42 | bothFunDiffTypes(...) | extensions.kt:28:5:28:42 | ExtensionsKt | extensions.kt:28:38:28:40 | foo |
| extensions.kt:29:6:29:27 | bar(...) | extensions.kt:29:6:29:27 | ExtensionsKt | extensions.kt:29:6:29:15 | someString |
| extensions.kt:29:6:29:27 | bar(...) | extensions.kt:29:6:29:27 | ExtensionsKt | extensions.kt:29:23:29:25 | foo |
| extensions.kt:31:6:31:32 | baz(...) | extensions.kt:31:6:31:32 | new (...) | extensions.kt:31:6:31:15 | someString |
| extensions.kt:31:6:31:32 | baz(...) | extensions.kt:31:6:31:32 | new (...) | extensions.kt:31:23:31:30 | bazParam |

View File

@@ -1 +1 @@
| A.kt:4:21:4:29 | someFun(...) | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | someFun | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | C<D1,D2,E1,E2> | file:///!unknown-binary-location/OC.class:0:0:0:0 | OC<F1,F2> |
| A.kt:4:19:4:29 | someFun(...) | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | someFun | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | C<D1,D2,E1,E2> | file:///!unknown-binary-location/OC.class:0:0:0:0 | OC<F1,F2> |

View File

@@ -1 +1 @@
| A.kt:4:21:4:29 | someFun(...) | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | someFun | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | C<D1,D2,E1,E2> | file:///!unknown-binary-location/OC.class:0:0:0:0 | OC<F1,F2> |
| A.kt:4:19:4:29 | someFun(...) | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | someFun | file:///!unknown-binary-location/OC$C.class:0:0:0:0 | C<D1,D2,E1,E2> | file:///!unknown-binary-location/OC.class:0:0:0:0 | OC<F1,F2> |

View File

@@ -13,13 +13,13 @@ callArgs
| KotlinUser.kt:10:13:10:29 | new OuterNotGeneric(...) | KotlinUser.kt:10:13:10:29 | OuterNotGeneric | -3 |
| KotlinUser.kt:10:31:10:52 | new InnerGeneric<String>(...) | KotlinUser.kt:10:13:10:29 | new OuterNotGeneric(...) | -2 |
| KotlinUser.kt:10:31:10:52 | new InnerGeneric<String>(...) | KotlinUser.kt:10:31:10:52 | InnerGeneric<String> | -3 |
| KotlinUser.kt:12:21:12:44 | returnsecond(...) | KotlinUser.kt:12:19:12:19 | a | -1 |
| KotlinUser.kt:12:21:12:44 | returnsecond(...) | KotlinUser.kt:12:34:12:34 | 0 | 0 |
| KotlinUser.kt:12:21:12:44 | returnsecond(...) | KotlinUser.kt:12:38:12:42 | hello | 1 |
| KotlinUser.kt:13:21:13:31 | identity(...) | KotlinUser.kt:13:19:13:19 | b | -1 |
| KotlinUser.kt:13:21:13:31 | identity(...) | KotlinUser.kt:13:30:13:30 | 5 | 0 |
| KotlinUser.kt:14:21:14:37 | identity(...) | KotlinUser.kt:14:19:14:19 | c | -1 |
| KotlinUser.kt:14:21:14:37 | identity(...) | KotlinUser.kt:14:31:14:35 | world | 0 |
| KotlinUser.kt:12:19:12:44 | returnsecond(...) | KotlinUser.kt:12:19:12:19 | a | -1 |
| KotlinUser.kt:12:19:12:44 | returnsecond(...) | KotlinUser.kt:12:34:12:34 | 0 | 0 |
| KotlinUser.kt:12:19:12:44 | returnsecond(...) | KotlinUser.kt:12:38:12:42 | hello | 1 |
| KotlinUser.kt:13:19:13:31 | identity(...) | KotlinUser.kt:13:19:13:19 | b | -1 |
| KotlinUser.kt:13:19:13:31 | identity(...) | KotlinUser.kt:13:30:13:30 | 5 | 0 |
| KotlinUser.kt:14:19:14:37 | identity(...) | KotlinUser.kt:14:19:14:19 | c | -1 |
| KotlinUser.kt:14:19:14:37 | identity(...) | KotlinUser.kt:14:31:14:35 | world | 0 |
genericTypes
| OuterGeneric.kt:3:1:21:1 | OuterGeneric | OuterGeneric.kt:3:27:3:27 | T |
| OuterGeneric.kt:11:3:19:3 | InnerGeneric | OuterGeneric.kt:11:35:11:35 | S |

View File

@@ -8,12 +8,12 @@ calls
| test.kt:5:32:5:46 | identity(...) | test.kt:5:3:5:46 | identity2 | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | test.kt:1:1:13:1 | Generic |
| test.kt:7:21:7:26 | getStored(...) | test.kt:7:3:7:26 | getter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | test.kt:1:1:13:1 | Generic |
| test.kt:8:26:8:31 | setStored(...) | test.kt:8:3:8:41 | setter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | test.kt:1:1:13:1 | Generic |
| test.kt:11:47:11:70 | privateid(...) | test.kt:11:3:11:70 | callPrivateId | test.kt:1:1:13:1 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
| test.kt:18:13:18:35 | identity(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
| test.kt:19:13:19:36 | identity2(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
| test.kt:22:16:22:23 | getter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> |
| test.kt:25:15:25:33 | setter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> |
| test.kt:26:15:26:22 | getter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> |
| test.kt:11:44:11:70 | privateid(...) | test.kt:11:3:11:70 | callPrivateId | test.kt:1:1:13:1 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
| test.kt:18:3:18:35 | identity(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
| test.kt:19:3:19:36 | identity2(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> |
| test.kt:22:3:22:23 | getter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> |
| test.kt:25:3:25:33 | setter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> |
| test.kt:26:3:26:22 | getter(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> |
constructors
| Generic2.class:0:0:0:0 | Generic2<? extends String> | Generic2.class:0:0:0:0 | Generic2<? extends String> | Generic2<? extends String>(<nulltype>) | <nulltype> | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 |
| Generic2.class:0:0:0:0 | Generic2<? super String> | Generic2.class:0:0:0:0 | Generic2<? super String> | Generic2<? super String>(java.lang.String) | String | void | Test.java:1:7:1:14 | Generic2 | Test.java:3:10:3:17 | Generic2 |

View File

@@ -56,10 +56,10 @@ genericFunction
| generics.kt:57:5:62:5 | fn1 | generics.kt:56:1:63:1 | Class1 | generics.kt:57:10:57:11 | T2 | 0 |
| generics.kt:59:13:59:43 | fn2 | generics.kt:58:9:60:9 | Local | generics.kt:59:18:59:19 | T4 | 0 |
genericCall
| generics.kt:27:17:27:22 | f2(...) | generics.kt:15:10:15:10 | U | String |
| generics.kt:30:17:30:21 | f2(...) | generics.kt:15:10:15:10 | U | Integer |
| generics.kt:32:8:32:12 | f4(...) | generics.kt:21:10:21:10 | P | Integer |
| generics.kt:61:22:61:31 | fn2(...) | generics.kt:59:18:59:19 | T4 | String |
| generics.kt:27:14:27:22 | f2(...) | generics.kt:15:10:15:10 | U | String |
| generics.kt:30:14:30:21 | f2(...) | generics.kt:15:10:15:10 | U | Integer |
| generics.kt:32:5:32:12 | f4(...) | generics.kt:21:10:21:10 | P | Integer |
| generics.kt:61:9:61:31 | fn2(...) | generics.kt:59:18:59:19 | T4 | String |
genericCtor
| generics.kt:16:16:16:26 | new C1<U,U>(...) | 0 | U |
| generics.kt:16:16:16:26 | new C1<U,U>(...) | 1 | U |

View File

@@ -3,8 +3,8 @@
| Test.java:25:5:25:16 | hashCode(...) | hashCode | Object |
| Test.java:26:5:26:17 | inheritMe(...) | inheritMe | Test |
| Test.java:28:5:28:34 | inheritedInterfaceMethodJ(...) | inheritedInterfaceMethodJ | ParentIf |
| Test.kt:23:7:23:16 | toString(...) | toString | Object |
| Test.kt:24:7:24:15 | equals(...) | equals | Object |
| Test.kt:25:7:25:16 | hashCode(...) | hashCode | Object |
| Test.kt:26:7:26:17 | inheritMe(...) | inheritMe | TestKt |
| Test.kt:28:9:28:35 | inheritedInterfaceMethodK(...) | inheritedInterfaceMethodK | ParentIfK |
| Test.kt:23:5:23:16 | toString(...) | toString | Object |
| Test.kt:24:5:24:15 | equals(...) | equals | Object |
| Test.kt:25:5:25:16 | hashCode(...) | hashCode | Object |
| Test.kt:26:5:26:17 | inheritMe(...) | inheritMe | TestKt |
| Test.kt:28:5:28:35 | inheritedInterfaceMethodK(...) | inheritedInterfaceMethodK | ParentIfK |

View File

@@ -1,2 +1,2 @@
| user.kt:1:42:1:58 | contains(...) |
| user.kt:1:40:1:58 | contains(...) |
| user.kt:1:63:1:74 | contains(...) |

View File

@@ -19,5 +19,5 @@ signature_mismatch
| 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 |
| Kotlin.kt:13:40:13:51 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 |
| Kotlin.kt:14:48:14:59 | fn1(...) | Kotlin.kt:9:18:9:46 | fn1 |

View File

@@ -36,16 +36,16 @@ staticMembers
| test.kt:11:3:27:3 | Companion | test.kt:24:15:24:34 | getPropWithStaticGetter(...) | test.kt:24:15:24:34 | this | instance |
| test.kt:11:3:27:3 | Companion | test.kt:25:18:25:60 | setPropWithStaticSetter(...) | test.kt:25:18:25:60 | HasCompanion.Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:25:35:25:54 | setPropWithStaticGetter(...) | test.kt:25:35:25:54 | this | instance |
| test.kt:11:3:27:3 | Companion | test.kt:52:16:52:32 | staticMethod(...) | test.kt:52:3:52:14 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:53:16:53:35 | nonStaticMethod(...) | test.kt:53:3:53:14 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:52:3:52:32 | staticMethod(...) | test.kt:52:3:52:14 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:53:3:53:35 | nonStaticMethod(...) | test.kt:53:3:53:14 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:54:3:54:25 | setStaticProp(...) | test.kt:54:3:54:14 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:54:42:54:54 | getNonStaticProp(...) | test.kt:54:29:54:40 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:54:29:54:54 | getNonStaticProp(...) | test.kt:54:29:54:40 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:55:3:55:28 | setNonStaticProp(...) | test.kt:55:3:55:14 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:55:45:55:54 | getStaticProp(...) | test.kt:55:32:55:43 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:55:32:55:54 | getStaticProp(...) | test.kt:55:32:55:43 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:56:3:56:35 | setPropWithStaticGetter(...) | test.kt:56:3:56:14 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:56:52:56:71 | getPropWithStaticSetter(...) | test.kt:56:39:56:50 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:56:39:56:71 | getPropWithStaticSetter(...) | test.kt:56:39:56:50 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:57:3:57:35 | setPropWithStaticSetter(...) | test.kt:57:3:57:14 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:57:52:57:71 | getPropWithStaticGetter(...) | test.kt:57:39:57:50 | Companion | instance |
| test.kt:11:3:27:3 | Companion | test.kt:57:39:57:71 | getPropWithStaticGetter(...) | test.kt:57:39:57:50 | Companion | instance |
| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:13:5:13:34 | staticMethod(...) | JavaUser.java:13:5:13:16 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:14:5:14:46 | nonStaticMethod(...) | JavaUser.java:14:5:14:25 | NonCompanion.INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | JavaUser.java:15:5:15:72 | setStaticProp(...) | JavaUser.java:15:5:15:16 | NonCompanion | static |
@@ -62,13 +62,13 @@ staticMembers
| test.kt:31:1:47:1 | NonCompanion | test.kt:41:22:41:41 | setPropWithStaticSetter(...) | test.kt:41:22:41:41 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:44:13:44:32 | getPropWithStaticGetter(...) | test.kt:44:13:44:32 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:45:33:45:52 | setPropWithStaticGetter(...) | test.kt:45:33:45:52 | NonCompanion.INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:60:16:60:32 | staticMethod(...) | test.kt:60:16:60:32 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:61:16:61:35 | nonStaticMethod(...) | test.kt:61:3:61:14 | INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:60:3:60:32 | staticMethod(...) | test.kt:60:3:60:32 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:61:3:61:35 | nonStaticMethod(...) | test.kt:61:3:61:14 | INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:62:3:62:25 | setStaticProp(...) | test.kt:62:3:62:25 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:62:42:62:54 | getNonStaticProp(...) | test.kt:62:29:62:40 | INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:62:29:62:54 | getNonStaticProp(...) | test.kt:62:29:62:40 | INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:63:3:63:28 | setNonStaticProp(...) | test.kt:63:3:63:14 | INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:63:45:63:54 | getStaticProp(...) | test.kt:63:45:63:54 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:63:32:63:54 | getStaticProp(...) | test.kt:63:32:63:54 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:64:3:64:35 | setPropWithStaticGetter(...) | test.kt:64:3:64:14 | INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:64:52:64:71 | getPropWithStaticSetter(...) | test.kt:64:39:64:50 | INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:64:39:64:71 | getPropWithStaticSetter(...) | test.kt:64:39:64:50 | INSTANCE | instance |
| test.kt:31:1:47:1 | NonCompanion | test.kt:65:3:65:35 | setPropWithStaticSetter(...) | test.kt:65:3:65:35 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:65:52:65:71 | getPropWithStaticGetter(...) | test.kt:65:52:65:71 | NonCompanion | static |
| test.kt:31:1:47:1 | NonCompanion | test.kt:65:39:65:71 | getPropWithStaticGetter(...) | test.kt:65:39:65:71 | NonCompanion | static |

View File

@@ -1,8 +1,8 @@
| test.kt:4:15:4:26 | println(...) | file://<external>/ConsoleKt.class:0:0:0:0 | println |
| test.kt:9:9:9:13 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private |
| test.kt:9:15:9:17 | f(...) | test.kt:4:5:4:26 | f |
| test.kt:9:9:9:17 | f(...) | test.kt:4:5:4:26 | f |
| test.kt:10:13:10:23 | get(...) | test.kt:10:13:10:23 | get |
| test.kt:10:13:10:23 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private |
| test.kt:10:13:10:23 | setTest0$private(...) | test.kt:2:22:2:40 | setTest0$private |
| test.kt:10:25:10:37 | isInitialized(...) | file://<external>/LateinitKt.class:0:0:0:0 | isInitialized |
| test.kt:14:15:14:17 | f(...) | test.kt:4:5:4:26 | f |
| test.kt:10:13:10:37 | isInitialized(...) | file://<external>/LateinitKt.class:0:0:0:0 | isInitialized |
| test.kt:14:9:14:17 | f(...) | test.kt:4:5:4:26 | f |

View File

@@ -1,2 +1,2 @@
| test.kt:1:100:1:109 | mutableIterator(...) | mutableIterator |
| test.kt:3:73:3:82 | iterator(...) | iterator |
| test.kt:1:98:1:109 | mutableIterator(...) | mutableIterator |
| test.kt:3:71:3:82 | iterator(...) | iterator |

View File

@@ -139,23 +139,23 @@
| delegates.kt:4:18:6:5 | ...=... | KtInitializerAssignExpr |
| delegates.kt:4:18:6:5 | Integer | TypeAccess |
| delegates.kt:4:18:6:5 | Integer | TypeAccess |
| delegates.kt:4:18:6:5 | Integer | TypeAccess |
| delegates.kt:4:18:6:5 | KProperty1<MyClass,Integer> | TypeAccess |
| delegates.kt:4:18:6:5 | Lazy<Integer> | TypeAccess |
| delegates.kt:4:18:6:5 | LazyKt | TypeAccess |
| delegates.kt:4:18:6:5 | MyClass | TypeAccess |
| delegates.kt:4:18:6:5 | a0 | VarAccess |
| delegates.kt:4:18:6:5 | a0 | VarAccess |
| delegates.kt:4:18:6:5 | get(...) | MethodAccess |
| delegates.kt:4:18:6:5 | getLazyProp(...) | MethodAccess |
| delegates.kt:4:18:6:5 | getValue(...) | MethodAccess |
| delegates.kt:4:18:6:5 | int | TypeAccess |
| delegates.kt:4:18:6:5 | lazyProp$delegate | VarAccess |
| delegates.kt:4:18:6:5 | this | ThisAccess |
| delegates.kt:4:18:6:5 | this | ThisAccess |
| delegates.kt:4:18:6:5 | this.lazyProp$delegate | VarAccess |
| delegates.kt:4:21:6:5 | Integer | TypeAccess |
| delegates.kt:4:21:6:5 | Integer | TypeAccess |
| delegates.kt:4:21:6:5 | LazyKt | TypeAccess |
| delegates.kt:4:21:6:5 | LazyKt | TypeAccess |
| delegates.kt:4:21:6:5 | getValue(...) | MethodAccess |
| delegates.kt:4:21:6:5 | lazy(...) | MethodAccess |
| delegates.kt:4:26:6:5 | ...->... | LambdaExpr |
| delegates.kt:4:26:6:5 | Function0<Integer> | TypeAccess |
@@ -189,9 +189,11 @@
| delegates.kt:8:32:11:5 | get(...) | MethodAccess |
| delegates.kt:8:32:11:5 | getObservableProp(...) | MethodAccess |
| delegates.kt:8:32:11:5 | getObservableProp(...) | MethodAccess |
| delegates.kt:8:32:11:5 | getValue(...) | MethodAccess |
| delegates.kt:8:32:11:5 | observableProp$delegate | VarAccess |
| delegates.kt:8:32:11:5 | setObservableProp(...) | MethodAccess |
| delegates.kt:8:32:11:5 | setObservableProp(...) | MethodAccess |
| delegates.kt:8:32:11:5 | setValue(...) | MethodAccess |
| delegates.kt:8:32:11:5 | this | ThisAccess |
| delegates.kt:8:32:11:5 | this | ThisAccess |
| delegates.kt:8:32:11:5 | this | ThisAccess |
@@ -200,10 +202,8 @@
| delegates.kt:8:32:11:5 | this.observableProp$delegate | VarAccess |
| delegates.kt:8:35:8:43 | INSTANCE | VarAccess |
| delegates.kt:8:35:11:5 | <set-?> | VarAccess |
| delegates.kt:8:35:11:5 | getValue(...) | MethodAccess |
| delegates.kt:8:35:11:5 | setValue(...) | MethodAccess |
| delegates.kt:8:45:11:5 | String | TypeAccess |
| delegates.kt:8:45:11:5 | observable(...) | MethodAccess |
| delegates.kt:8:35:11:5 | String | TypeAccess |
| delegates.kt:8:35:11:5 | observable(...) | MethodAccess |
| delegates.kt:8:57:8:62 | <none> | StringLiteral |
| delegates.kt:8:66:11:5 | ...->... | LambdaExpr |
| delegates.kt:8:66:11:5 | Function3<KProperty<?>,String,String,Unit> | TypeAccess |
@@ -275,8 +275,8 @@
| enumClass.kt:10:14:10:42 | int | TypeAccess |
| enumClass.kt:10:20:10:25 | int | TypeAccess |
| enumClass.kt:10:30:10:33 | this | ThisAccess |
| enumClass.kt:10:30:10:38 | f(...) | MethodAccess |
| enumClass.kt:10:30:10:42 | ... + ... | AddExpr |
| enumClass.kt:10:35:10:38 | f(...) | MethodAccess |
| enumClass.kt:10:37:10:37 | i | VarAccess |
| enumClass.kt:10:42:10:42 | i | VarAccess |
| enumClass.kt:13:12:13:29 | int | TypeAccess |
@@ -326,12 +326,12 @@
| methods5.kt:10:3:10:11 | C1<Integer> | TypeAccess |
| methods5.kt:10:3:10:11 | Integer | TypeAccess |
| methods5.kt:10:3:10:11 | new C1<Integer>(...) | ClassInstanceExpr |
| methods5.kt:10:3:10:18 | Integer | TypeAccess |
| methods5.kt:10:3:10:18 | Object | TypeAccess |
| methods5.kt:10:3:10:18 | f1(...) | MethodAccess |
| methods5.kt:10:3:10:18 | new (...) | ClassInstanceExpr |
| methods5.kt:10:13:10:18 | <implicit coercion to unit> | ImplicitCoercionToUnitExpr |
| methods5.kt:10:13:10:18 | Integer | TypeAccess |
| methods5.kt:10:13:10:18 | Object | TypeAccess |
| methods5.kt:10:13:10:18 | Unit | TypeAccess |
| 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 |

View File

@@ -1,4 +1,4 @@
| file1.kt:4:18:4:23 | fun2(...) | file2.kt:3:5:3:18 | fun2 | Class2.fun2 | file2.kt:2:1:4:1 | Class2 |
| file1.kt:4:9:4:23 | fun2(...) | file2.kt:3:5:3:18 | fun2 | Class2.fun2 | file2.kt:2:1:4:1 | Class2 |
| file1.kt:5:9:5:14 | fun3(...) | file3.kt:5:1:6:1 | fun3 | MyJvmName.fun3 | file3.kt:0:0:0:0 | MyJvmName |
| file1.kt:6:9:6:14 | fun4(...) | file4.kt:4:1:5:1 | fun4 | File4Kt.fun4 | file4.kt:0:0:0:0 | File4Kt |
| file1.kt:11:29:11:56 | toArray(...) | file://<external>/CollectionToArray.class:0:0:0:0 | toArray | kotlin.jvm.internal.CollectionToArray.toArray | file://<external>/CollectionToArray.class:0:0:0:0 | CollectionToArray |

View File

@@ -22,20 +22,20 @@ variableInitializerType
| reflection.kt:116:9:116:44 | KFunction<Unit> x | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:116:40:116:44 | new Function1<Integer,Unit>(...) { ... } | file://<external>/Function1.class:0:0:0:0 | Function1<Integer,Unit> | true |
| reflection.kt:116:9:116:44 | KFunction<Unit> x | file://<external>/KFunction.class:0:0:0:0 | KFunction<Unit> | reflection.kt:116:40:116:44 | new Function1<Integer,Unit>(...) { ... } | file://<external>/FunctionReference.class:0:0:0:0 | FunctionReference | true |
invocation
| reflection.kt:8:21:8:24 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
| reflection.kt:11:26:11:33 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
| reflection.kt:12:29:12:32 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
| reflection.kt:13:48:13:53 | getGetter(...) | file://<external>/KProperty1.class:0:0:0:0 | getGetter |
| reflection.kt:8:17:8:24 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
| reflection.kt:11:23:11:33 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
| reflection.kt:12:26:12:32 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
| reflection.kt:13:45:13:53 | getGetter(...) | file://<external>/KProperty1.class:0:0:0:0 | getGetter |
| reflection.kt:14:38:14:44 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
| reflection.kt:18:27:18:37 | set(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | set |
| reflection.kt:19:29:19:32 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
| reflection.kt:20:55:20:60 | getSetter(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | getSetter |
| reflection.kt:18:24:18:37 | set(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | set |
| reflection.kt:19:26:19:32 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
| reflection.kt:20:52:20:60 | getSetter(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | getSetter |
| reflection.kt:21:44:21:50 | set(...) | file://<external>/KMutableProperty1.class:0:0:0:0 | set |
| reflection.kt:24:31:24:37 | getMembers(...) | file://<external>/KClass.class:0:0:0:0 | getMembers |
| reflection.kt:24:51:24:54 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
| reflection.kt:25:23:25:33 | get(...) | file://<external>/KProperty2.class:0:0:0:0 | get |
| reflection.kt:50:30:50:39 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
| reflection.kt:51:30:51:34 | get(...) | file://<external>/KProperty0.class:0:0:0:0 | get |
| reflection.kt:24:21:24:37 | getMembers(...) | file://<external>/KClass.class:0:0:0:0 | getMembers |
| reflection.kt:24:48:24:54 | getName(...) | file://<external>/KCallable.class:0:0:0:0 | getName |
| reflection.kt:25:18:25:33 | get(...) | file://<external>/KProperty2.class:0:0:0:0 | get |
| reflection.kt:50:13:50:39 | get(...) | file://<external>/KProperty1.class:0:0:0:0 | get |
| reflection.kt:51:13:51:34 | get(...) | file://<external>/KProperty0.class:0:0:0:0 | get |
functionReferences
| reflection.kt:7:49:7:54 | ...::... | reflection.kt:7:49:7:54 | invoke | reflection.kt:29:9:29:33 | m |
| reflection.kt:14:38:14:44 | ...::... | reflection.kt:14:38:14:44 | invoke | file://<external>/KProperty1.class:0:0:0:0 | get |

View File

@@ -1,11 +1,11 @@
diag
#select
| test.kt:1:84:1:89 | length(...) | java.lang.CharSequence | length |
| test.kt:1:97:1:100 | size(...) | java.util.Collection<String> | size |
| test.kt:1:108:1:111 | size(...) | java.util.Map<String,String> | size |
| test.kt:1:119:1:122 | keySet(...) | java.util.Map<String,String> | keySet |
| test.kt:1:124:1:127 | size(...) | java.util.Set<String> | size |
| test.kt:1:135:1:140 | values(...) | java.util.Map<String,String> | values |
| test.kt:1:142:1:145 | size(...) | java.util.Collection<String> | size |
| test.kt:1:153:1:159 | entrySet(...) | java.util.Map<String,String> | entrySet |
| test.kt:1:161:1:164 | size(...) | java.util.Set<Entry<String,String>> | size |
| test.kt:1:81:1:89 | length(...) | java.lang.CharSequence | length |
| test.kt:1:93:1:100 | size(...) | java.util.Collection<String> | size |
| test.kt:1:104:1:111 | size(...) | java.util.Map<String,String> | size |
| test.kt:1:115:1:122 | keySet(...) | java.util.Map<String,String> | keySet |
| test.kt:1:115:1:127 | size(...) | java.util.Set<String> | size |
| test.kt:1:131:1:140 | values(...) | java.util.Map<String,String> | values |
| test.kt:1:131:1:145 | size(...) | java.util.Collection<String> | size |
| test.kt:1:149:1:159 | entrySet(...) | java.util.Map<String,String> | entrySet |
| test.kt:1:149:1:164 | size(...) | java.util.Set<Entry<String,String>> | size |

View File

@@ -1,2 +1,2 @@
| test.kt:4:17:4:30 | Class<> | TypeAccess | forName |
| test.kt:7:18:7:44 | StringsKt | TypeAccess | format |
| test.kt:7:11:7:44 | StringsKt | TypeAccess | format |

View File

@@ -90,10 +90,10 @@
| stmts.kt:41:19:41:36 | tmp3_loop_parameter | VarAccess |
| stmts.kt:41:20:41:20 | x | VarAccess |
| stmts.kt:41:20:41:23 | rangeTo(...) | MethodAccess |
| stmts.kt:41:20:41:36 | CollectionsKt | TypeAccess |
| stmts.kt:41:20:41:36 | Integer | TypeAccess |
| stmts.kt:41:20:41:36 | withIndex(...) | MethodAccess |
| stmts.kt:41:23:41:23 | y | VarAccess |
| stmts.kt:41:26:41:36 | CollectionsKt | TypeAccess |
| stmts.kt:41:26:41:36 | Integer | TypeAccess |
| stmts.kt:41:26:41:36 | withIndex(...) | MethodAccess |
| stmts.kt:42:9:42:24 | when ... | WhenExpr |
| stmts.kt:42:13:42:13 | x | VarAccess |
| stmts.kt:42:13:42:17 | ... > ... | GTExpr |

View File

@@ -1,2 +1,2 @@
| test.kt:31:17:31:24 | source(...) | test.kt:31:15:31:25 | f(...) |
| test.kt:32:17:32:24 | source(...) | test.kt:32:15:32:25 | g(...) |
| test.kt:31:17:31:24 | source(...) | test.kt:31:10:31:25 | f(...) |
| test.kt:32:17:32:24 | source(...) | test.kt:32:10:32:25 | g(...) |

View File

@@ -15,9 +15,9 @@
| this.kt:40:13:40:30 | topLevelInnerFun(...) | topLevelInnerFun |
| this.kt:41:13:41:27 | outerInnerFun(...) | outerInnerFun |
| this.kt:42:13:42:35 | topLevelOuterInnerFun(...) | topLevelOuterInnerFun |
| this.kt:43:18:43:27 | innerFun(...) | innerFun |
| this.kt:44:18:44:35 | topLevelInnerFun(...) | topLevelInnerFun |
| this.kt:45:18:45:32 | outerInnerFun(...) | outerInnerFun |
| this.kt:46:18:46:40 | topLevelOuterInnerFun(...) | topLevelOuterInnerFun |
| this.kt:43:13:43:27 | innerFun(...) | innerFun |
| this.kt:44:13:44:35 | topLevelInnerFun(...) | topLevelInnerFun |
| this.kt:45:13:45:32 | outerInnerFun(...) | outerInnerFun |
| this.kt:46:13:46:40 | topLevelOuterInnerFun(...) | topLevelOuterInnerFun |
| this.kt:64:1:65:1 | super(...) | Object |
| this.kt:67:1:68:1 | super(...) | Object |

View File

@@ -83,4 +83,4 @@ implicitVarargsArguments
| test.kt:45:5:45:39 | new HasVarargConstructor(...) | 1 | test.kt:45:34:45:38 | array |
| test.kt:55:13:55:43 | new X(...) | 0 | test.kt:55:42:55:42 | 1 |
| test.kt:55:13:55:43 | new X(...) | 1 | test.kt:55:15:55:35 | tmp0_s |
| test.kt:55:22:55:35 | toTypedArray(...) | 0 | test.kt:55:19:55:20 | sl |
| test.kt:55:19:55:35 | toTypedArray(...) | 0 | test.kt:55:19:55:20 | sl |

View File

@@ -11,3 +11,9 @@ data class F(val x: Int) {
return other != null && other::class == this::class
}
}
data class G(val x: Int) {
override fun equals(other: Any?): Boolean {
return other != null && other.javaClass == this.javaClass
}
}

View File

@@ -0,0 +1 @@
Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql

View File

@@ -0,0 +1,5 @@
data class X(val prop: Int)
fun fn(x: X) {
1 - x.prop + 2
}

View File

@@ -615,9 +615,9 @@ private predicate isInstance(DataFlow::Node n, Module tp, boolean exact) {
exact = true
or
// `self.new` inside a singleton method
exists(MethodBase target |
selfInMethod(sourceNode.(SsaSelfDefinitionNode).getVariable(), target, tp) and
singletonMethod(target, _, _) and
exists(MethodBase caller |
selfInMethod(sourceNode.(SsaSelfDefinitionNode).getVariable(), caller, tp) and
singletonMethod(caller, _, _) and
exact = false
)
)
@@ -991,14 +991,13 @@ private predicate isInstanceLocalMustFlow(DataFlow::Node n, Module tp, boolean e
* `name` is the name of the method being called by `call`.
*/
pragma[nomagic]
private predicate mayBenefitFromCallContext0(
private predicate argFlowsToReceiver(
RelevantCall ctx, ArgumentNode arg, RelevantCall call, Callable encl, string name
) {
exists(
ParameterNodeImpl p, SsaDefinitionNode ssaNode, ParameterPosition ppos, ArgumentPosition apos
|
// the receiver of `call` references `p`
ssaNode = trackInstance(_, _) and
LocalFlow::localFlowSsaParamInput(p, ssaNode) and
flowsToMethodCallReceiver(pragma[only_bind_into](call), pragma[only_bind_into](ssaNode),
pragma[only_bind_into](name)) and
@@ -1016,24 +1015,66 @@ private predicate mayBenefitFromCallContext0(
/**
* Holds if `ctx` targets `encl`, which is the enclosing callable of `call`, and
* the receiver of `call` is a parameter access, where the corresponding argument
* of `ctx` has type `tp`.
* `arg` of `ctx` has type `tp`.
*
* `name` is the name of the method being called by `call`, and `exact` is pertaining
* to the type of the argument.
*/
pragma[nomagic]
private predicate mayBenefitFromCallContext1(
RelevantCall ctx, RelevantCall call, Callable encl, Module tp, boolean exact, string name
private predicate mayBenefitFromCallContextInstance(
RelevantCall ctx, RelevantCall call, ArgumentNode arg, Callable encl, Module tp, boolean exact,
string name
) {
exists(ArgumentNode arg |
mayBenefitFromCallContext0(ctx, pragma[only_bind_into](arg), call, encl,
pragma[only_bind_into](name)) and
// `arg` has a relevant instance type
isInstanceLocalMustFlow(arg, tp, exact) and
exists(lookupMethod(tp, pragma[only_bind_into](name)))
argFlowsToReceiver(ctx, pragma[only_bind_into](arg), call, encl, pragma[only_bind_into](name)) and
// `arg` has a relevant instance type
isInstanceLocalMustFlow(arg, tp, exact) and
exists(lookupMethod(tp, pragma[only_bind_into](name)))
}
/** Same as `resolveConstantReadAccess`, but includes local must-flow through SSA definitions. */
private predicate resolveConstantReadAccessMustFlow(DataFlow::Node n, Module tp) {
tp = resolveConstantReadAccess(n.asExpr().getExpr())
or
exists(DataFlow::Node mid | resolveConstantReadAccessMustFlow(mid, tp) |
n.asExpr() = mid.(SsaDefinitionNode).getDefinition().getARead()
or
n.(SsaDefinitionNode).getDefinition().(Ssa::WriteDefinition).assigns(mid.asExpr())
)
}
/**
* Holds if `ctx` targets `encl`, which is the enclosing callable of `call`, and
* the receiver of `call` is a parameter access, where the corresponding argument
* `arg` of `ctx` is a module access targeting a module of type `tp`.
*
* `name` is the name of the method being called by `call`, and `exact` is pertaining
* to the type of the argument.
*/
pragma[nomagic]
private predicate mayBenefitFromCallContextSingleton(
RelevantCall ctx, RelevantCall call, ArgumentNode arg, Callable encl, Module tp, boolean exact,
string name
) {
argFlowsToReceiver(ctx, pragma[only_bind_into](arg), call, encl, pragma[only_bind_into](name)) and
// `arg` has a relevant module type
(
resolveConstantReadAccessMustFlow(arg, tp) and
exact = true
or
exists(SelfVariable self | arg.asExpr().getExpr() = self.getAnAccess() |
selfInModule(self, tp) and
exact = true
or
exists(MethodBase caller |
selfInMethod(self, caller, tp) and
singletonMethod(caller, _, _) and
exact = false
)
)
) and
exists(lookupSingletonMethod(tp, pragma[only_bind_into](name), exact))
}
/**
* Holds if the set of viable implementations that can be called by `call`
* might be improved by knowing the call context. This is the case if the
@@ -1041,7 +1082,9 @@ private predicate mayBenefitFromCallContext1(
* the implicit `self` parameter).
*/
predicate mayBenefitFromCallContext(DataFlowCall call, DataFlowCallable c) {
mayBenefitFromCallContext1(_, call.asCall(), c.asCallable(), _, _, _)
mayBenefitFromCallContextInstance(_, call.asCall(), _, c.asCallable(), _, _, _)
or
mayBenefitFromCallContextSingleton(_, call.asCall(), _, c.asCallable(), _, _, _)
}
/**
@@ -1050,28 +1093,38 @@ predicate mayBenefitFromCallContext(DataFlowCall call, DataFlowCallable c) {
*/
pragma[nomagic]
DataFlowCallable viableImplInCallContext(DataFlowCall call, DataFlowCall ctx) {
// `ctx` can provide a potentially better type bound
exists(RelevantCall call0, Callable res |
call0 = call.asCall() and
res = result.asCallable() and
res = getTarget(call0) and // make sure to not include e.g. private methods
exists(Module m, boolean exact, string name |
res = lookupMethod(m, name, exact) and
mayBenefitFromCallContext1(ctx.asCall(), pragma[only_bind_into](call0), _,
pragma[only_bind_into](m), exact, pragma[only_bind_into](name))
mayBenefitFromCallContext(call, _) and
(
// `ctx` can provide a potentially better type bound
exists(RelevantCall call0, Callable res |
call0 = call.asCall() and
res = result.asCallable() and
res = getTarget(call0) and // make sure to not include e.g. private methods
exists(Module m, boolean exact, string name |
mayBenefitFromCallContextInstance(ctx.asCall(), pragma[only_bind_into](call0), _, _,
pragma[only_bind_into](m), exact, pragma[only_bind_into](name)) and
res = lookupMethod(m, name, exact)
or
mayBenefitFromCallContextSingleton(ctx.asCall(), pragma[only_bind_into](call0), _, _,
pragma[only_bind_into](m), exact, pragma[only_bind_into](name)) and
res = lookupSingletonMethod(m, name, exact)
)
)
or
// `ctx` cannot provide a type bound
exists(RelevantCall call0, RelevantCall ctx0, ArgumentNode arg, string name |
call0 = call.asCall() and
ctx0 = ctx.asCall() and
argFlowsToReceiver(ctx0, arg, call0, _, name) and
not mayBenefitFromCallContextInstance(ctx0, call0, arg, _, _, _, name) and
not mayBenefitFromCallContextSingleton(ctx0, call0, arg, _, _, _, name) and
result = viableSourceCallable(call)
)
or
// library calls should always be able to resolve
argFlowsToReceiver(ctx.asCall(), _, call.asCall(), _, _) and
result = viableLibraryCallable(call)
)
or
// `ctx` cannot provide a type bound
exists(ArgumentNode arg |
mayBenefitFromCallContext0(ctx.asCall(), arg, call.asCall(), _, _) and
not isInstanceLocalMustFlow(arg, _, _) and
result = viableSourceCallable(call)
)
or
// library calls should always be able to resolve
mayBenefitFromCallContext0(ctx.asCall(), _, call.asCall(), _, _) and
result = viableLibraryCallable(call)
}
predicate exprNodeReturnedFrom = exprNodeReturnedFromCached/2;

View File

@@ -1,6 +1,4 @@
---
dependencies:
codeql/suite-helpers:
version: 0.0.2
dependencies: {}
compiled: false
lockVersion: 1.0.0

View File

@@ -40,16 +40,70 @@ edges
| call_sensitivity.rb:50:15:50:15 | x : | call_sensitivity.rb:51:10:51:10 | x |
| call_sensitivity.rb:54:15:54:15 | x : | call_sensitivity.rb:55:13:55:13 | x : |
| call_sensitivity.rb:54:15:54:15 | x : | call_sensitivity.rb:55:13:55:13 | x : |
| call_sensitivity.rb:54:15:54:15 | x : | call_sensitivity.rb:55:13:55:13 | x : |
| call_sensitivity.rb:54:15:54:15 | x : | call_sensitivity.rb:55:13:55:13 | x : |
| call_sensitivity.rb:55:13:55:13 | x : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:55:13:55:13 | x : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:58:18:58:18 | y : | call_sensitivity.rb:59:15:59:15 | y : |
| call_sensitivity.rb:58:18:58:18 | y : | call_sensitivity.rb:59:15:59:15 | y : |
| call_sensitivity.rb:59:15:59:15 | y : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:59:15:59:15 | y : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:64:11:64:18 | call to taint : | call_sensitivity.rb:54:15:54:15 | x : |
| call_sensitivity.rb:64:11:64:18 | call to taint : | call_sensitivity.rb:54:15:54:15 | x : |
| call_sensitivity.rb:65:14:65:22 | call to taint : | call_sensitivity.rb:58:18:58:18 | y : |
| call_sensitivity.rb:65:14:65:22 | call to taint : | call_sensitivity.rb:58:18:58:18 | y : |
| call_sensitivity.rb:55:13:55:13 | x : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:55:13:55:13 | x : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:58:20:58:20 | x : | call_sensitivity.rb:59:18:59:18 | x : |
| call_sensitivity.rb:58:20:58:20 | x : | call_sensitivity.rb:59:18:59:18 | x : |
| call_sensitivity.rb:59:18:59:18 | x : | call_sensitivity.rb:54:15:54:15 | x : |
| call_sensitivity.rb:59:18:59:18 | x : | call_sensitivity.rb:54:15:54:15 | x : |
| call_sensitivity.rb:62:18:62:18 | y : | call_sensitivity.rb:63:15:63:15 | y : |
| call_sensitivity.rb:62:18:62:18 | y : | call_sensitivity.rb:63:15:63:15 | y : |
| call_sensitivity.rb:62:18:62:18 | y : | call_sensitivity.rb:63:15:63:15 | y : |
| call_sensitivity.rb:62:18:62:18 | y : | call_sensitivity.rb:63:15:63:15 | y : |
| call_sensitivity.rb:63:15:63:15 | y : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:63:15:63:15 | y : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:63:15:63:15 | y : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:63:15:63:15 | y : | call_sensitivity.rb:50:15:50:15 | x : |
| call_sensitivity.rb:66:20:66:20 | x : | call_sensitivity.rb:67:24:67:24 | x : |
| call_sensitivity.rb:66:20:66:20 | x : | call_sensitivity.rb:67:24:67:24 | x : |
| call_sensitivity.rb:67:24:67:24 | x : | call_sensitivity.rb:62:18:62:18 | y : |
| call_sensitivity.rb:67:24:67:24 | x : | call_sensitivity.rb:62:18:62:18 | y : |
| call_sensitivity.rb:70:30:70:30 | x : | call_sensitivity.rb:71:10:71:10 | x |
| call_sensitivity.rb:70:30:70:30 | x : | call_sensitivity.rb:71:10:71:10 | x |
| call_sensitivity.rb:74:30:74:30 | x : | call_sensitivity.rb:75:23:75:23 | x : |
| call_sensitivity.rb:74:30:74:30 | x : | call_sensitivity.rb:75:23:75:23 | x : |
| call_sensitivity.rb:74:30:74:30 | x : | call_sensitivity.rb:75:23:75:23 | x : |
| call_sensitivity.rb:74:30:74:30 | x : | call_sensitivity.rb:75:23:75:23 | x : |
| call_sensitivity.rb:75:23:75:23 | x : | call_sensitivity.rb:70:30:70:30 | x : |
| call_sensitivity.rb:75:23:75:23 | x : | call_sensitivity.rb:70:30:70:30 | x : |
| call_sensitivity.rb:75:23:75:23 | x : | call_sensitivity.rb:70:30:70:30 | x : |
| call_sensitivity.rb:75:23:75:23 | x : | call_sensitivity.rb:70:30:70:30 | x : |
| call_sensitivity.rb:78:35:78:35 | x : | call_sensitivity.rb:79:28:79:28 | x : |
| call_sensitivity.rb:78:35:78:35 | x : | call_sensitivity.rb:79:28:79:28 | x : |
| call_sensitivity.rb:79:28:79:28 | x : | call_sensitivity.rb:74:30:74:30 | x : |
| call_sensitivity.rb:79:28:79:28 | x : | call_sensitivity.rb:74:30:74:30 | x : |
| call_sensitivity.rb:82:33:82:33 | y : | call_sensitivity.rb:83:25:83:25 | y : |
| call_sensitivity.rb:82:33:82:33 | y : | call_sensitivity.rb:83:25:83:25 | y : |
| call_sensitivity.rb:82:33:82:33 | y : | call_sensitivity.rb:83:25:83:25 | y : |
| call_sensitivity.rb:82:33:82:33 | y : | call_sensitivity.rb:83:25:83:25 | y : |
| call_sensitivity.rb:83:25:83:25 | y : | call_sensitivity.rb:70:30:70:30 | x : |
| call_sensitivity.rb:83:25:83:25 | y : | call_sensitivity.rb:70:30:70:30 | x : |
| call_sensitivity.rb:83:25:83:25 | y : | call_sensitivity.rb:70:30:70:30 | x : |
| call_sensitivity.rb:83:25:83:25 | y : | call_sensitivity.rb:70:30:70:30 | x : |
| call_sensitivity.rb:86:35:86:35 | x : | call_sensitivity.rb:87:34:87:34 | x : |
| call_sensitivity.rb:86:35:86:35 | x : | call_sensitivity.rb:87:34:87:34 | x : |
| call_sensitivity.rb:87:34:87:34 | x : | call_sensitivity.rb:82:33:82:33 | y : |
| call_sensitivity.rb:87:34:87:34 | x : | call_sensitivity.rb:82:33:82:33 | y : |
| call_sensitivity.rb:92:11:92:18 | call to taint : | call_sensitivity.rb:54:15:54:15 | x : |
| call_sensitivity.rb:92:11:92:18 | call to taint : | call_sensitivity.rb:54:15:54:15 | x : |
| call_sensitivity.rb:93:16:93:23 | call to taint : | call_sensitivity.rb:58:20:58:20 | x : |
| call_sensitivity.rb:93:16:93:23 | call to taint : | call_sensitivity.rb:58:20:58:20 | x : |
| call_sensitivity.rb:94:14:94:22 | call to taint : | call_sensitivity.rb:62:18:62:18 | y : |
| call_sensitivity.rb:94:14:94:22 | call to taint : | call_sensitivity.rb:62:18:62:18 | y : |
| call_sensitivity.rb:95:16:95:24 | call to taint : | call_sensitivity.rb:66:20:66:20 | x : |
| call_sensitivity.rb:95:16:95:24 | call to taint : | call_sensitivity.rb:66:20:66:20 | x : |
| call_sensitivity.rb:97:21:97:28 | call to taint : | call_sensitivity.rb:74:30:74:30 | x : |
| call_sensitivity.rb:97:21:97:28 | call to taint : | call_sensitivity.rb:74:30:74:30 | x : |
| call_sensitivity.rb:98:26:98:33 | call to taint : | call_sensitivity.rb:78:35:78:35 | x : |
| call_sensitivity.rb:98:26:98:33 | call to taint : | call_sensitivity.rb:78:35:78:35 | x : |
| call_sensitivity.rb:99:24:99:32 | call to taint : | call_sensitivity.rb:82:33:82:33 | y : |
| call_sensitivity.rb:99:24:99:32 | call to taint : | call_sensitivity.rb:82:33:82:33 | y : |
| call_sensitivity.rb:100:26:100:33 | call to taint : | call_sensitivity.rb:86:35:86:35 | x : |
| call_sensitivity.rb:100:26:100:33 | call to taint : | call_sensitivity.rb:86:35:86:35 | x : |
nodes
| call_sensitivity.rb:9:6:9:14 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:9:6:9:14 | ( ... ) | semmle.label | ( ... ) |
@@ -103,16 +157,72 @@ nodes
| call_sensitivity.rb:51:10:51:10 | x | semmle.label | x |
| call_sensitivity.rb:54:15:54:15 | x : | semmle.label | x : |
| call_sensitivity.rb:54:15:54:15 | x : | semmle.label | x : |
| call_sensitivity.rb:54:15:54:15 | x : | semmle.label | x : |
| call_sensitivity.rb:54:15:54:15 | x : | semmle.label | x : |
| call_sensitivity.rb:55:13:55:13 | x : | semmle.label | x : |
| call_sensitivity.rb:55:13:55:13 | x : | semmle.label | x : |
| call_sensitivity.rb:58:18:58:18 | y : | semmle.label | y : |
| call_sensitivity.rb:58:18:58:18 | y : | semmle.label | y : |
| call_sensitivity.rb:59:15:59:15 | y : | semmle.label | y : |
| call_sensitivity.rb:59:15:59:15 | y : | semmle.label | y : |
| call_sensitivity.rb:64:11:64:18 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:64:11:64:18 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:65:14:65:22 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:65:14:65:22 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:55:13:55:13 | x : | semmle.label | x : |
| call_sensitivity.rb:55:13:55:13 | x : | semmle.label | x : |
| call_sensitivity.rb:58:20:58:20 | x : | semmle.label | x : |
| call_sensitivity.rb:58:20:58:20 | x : | semmle.label | x : |
| call_sensitivity.rb:59:18:59:18 | x : | semmle.label | x : |
| call_sensitivity.rb:59:18:59:18 | x : | semmle.label | x : |
| call_sensitivity.rb:62:18:62:18 | y : | semmle.label | y : |
| call_sensitivity.rb:62:18:62:18 | y : | semmle.label | y : |
| call_sensitivity.rb:62:18:62:18 | y : | semmle.label | y : |
| call_sensitivity.rb:62:18:62:18 | y : | semmle.label | y : |
| call_sensitivity.rb:63:15:63:15 | y : | semmle.label | y : |
| call_sensitivity.rb:63:15:63:15 | y : | semmle.label | y : |
| call_sensitivity.rb:63:15:63:15 | y : | semmle.label | y : |
| call_sensitivity.rb:63:15:63:15 | y : | semmle.label | y : |
| call_sensitivity.rb:66:20:66:20 | x : | semmle.label | x : |
| call_sensitivity.rb:66:20:66:20 | x : | semmle.label | x : |
| call_sensitivity.rb:67:24:67:24 | x : | semmle.label | x : |
| call_sensitivity.rb:67:24:67:24 | x : | semmle.label | x : |
| call_sensitivity.rb:70:30:70:30 | x : | semmle.label | x : |
| call_sensitivity.rb:70:30:70:30 | x : | semmle.label | x : |
| call_sensitivity.rb:71:10:71:10 | x | semmle.label | x |
| call_sensitivity.rb:71:10:71:10 | x | semmle.label | x |
| call_sensitivity.rb:74:30:74:30 | x : | semmle.label | x : |
| call_sensitivity.rb:74:30:74:30 | x : | semmle.label | x : |
| call_sensitivity.rb:74:30:74:30 | x : | semmle.label | x : |
| call_sensitivity.rb:74:30:74:30 | x : | semmle.label | x : |
| call_sensitivity.rb:75:23:75:23 | x : | semmle.label | x : |
| call_sensitivity.rb:75:23:75:23 | x : | semmle.label | x : |
| call_sensitivity.rb:75:23:75:23 | x : | semmle.label | x : |
| call_sensitivity.rb:75:23:75:23 | x : | semmle.label | x : |
| call_sensitivity.rb:78:35:78:35 | x : | semmle.label | x : |
| call_sensitivity.rb:78:35:78:35 | x : | semmle.label | x : |
| call_sensitivity.rb:79:28:79:28 | x : | semmle.label | x : |
| call_sensitivity.rb:79:28:79:28 | x : | semmle.label | x : |
| call_sensitivity.rb:82:33:82:33 | y : | semmle.label | y : |
| call_sensitivity.rb:82:33:82:33 | y : | semmle.label | y : |
| call_sensitivity.rb:82:33:82:33 | y : | semmle.label | y : |
| call_sensitivity.rb:82:33:82:33 | y : | semmle.label | y : |
| call_sensitivity.rb:83:25:83:25 | y : | semmle.label | y : |
| call_sensitivity.rb:83:25:83:25 | y : | semmle.label | y : |
| call_sensitivity.rb:83:25:83:25 | y : | semmle.label | y : |
| call_sensitivity.rb:83:25:83:25 | y : | semmle.label | y : |
| call_sensitivity.rb:86:35:86:35 | x : | semmle.label | x : |
| call_sensitivity.rb:86:35:86:35 | x : | semmle.label | x : |
| call_sensitivity.rb:87:34:87:34 | x : | semmle.label | x : |
| call_sensitivity.rb:87:34:87:34 | x : | semmle.label | x : |
| call_sensitivity.rb:92:11:92:18 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:92:11:92:18 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:93:16:93:23 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:93:16:93:23 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:94:14:94:22 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:94:14:94:22 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:95:16:95:24 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:95:16:95:24 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:97:21:97:28 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:97:21:97:28 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:98:26:98:33 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:98:26:98:33 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:99:24:99:32 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:99:24:99:32 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:100:26:100:33 | call to taint : | semmle.label | call to taint : |
| call_sensitivity.rb:100:26:100:33 | call to taint : | semmle.label | call to taint : |
subpaths
#select
| call_sensitivity.rb:9:6:9:14 | ( ... ) | call_sensitivity.rb:9:7:9:13 | call to taint : | call_sensitivity.rb:9:6:9:14 | ( ... ) | $@ | call_sensitivity.rb:9:7:9:13 | call to taint : | call to taint : |
@@ -120,16 +230,56 @@ subpaths
| call_sensitivity.rb:31:27:31:27 | x | call_sensitivity.rb:32:25:32:32 | call to taint : | call_sensitivity.rb:31:27:31:27 | x | $@ | call_sensitivity.rb:32:25:32:32 | call to taint : | call to taint : |
| call_sensitivity.rb:40:31:40:31 | x | call_sensitivity.rb:41:25:41:32 | call to taint : | call_sensitivity.rb:40:31:40:31 | x | $@ | call_sensitivity.rb:41:25:41:32 | call to taint : | call to taint : |
| call_sensitivity.rb:43:32:43:32 | x | call_sensitivity.rb:44:26:44:33 | call to taint : | call_sensitivity.rb:43:32:43:32 | x | $@ | call_sensitivity.rb:44:26:44:33 | call to taint : | call to taint : |
| call_sensitivity.rb:51:10:51:10 | x | call_sensitivity.rb:64:11:64:18 | call to taint : | call_sensitivity.rb:51:10:51:10 | x | $@ | call_sensitivity.rb:64:11:64:18 | call to taint : | call to taint : |
| call_sensitivity.rb:51:10:51:10 | x | call_sensitivity.rb:65:14:65:22 | call to taint : | call_sensitivity.rb:51:10:51:10 | x | $@ | call_sensitivity.rb:65:14:65:22 | call to taint : | call to taint : |
| call_sensitivity.rb:51:10:51:10 | x | call_sensitivity.rb:92:11:92:18 | call to taint : | call_sensitivity.rb:51:10:51:10 | x | $@ | call_sensitivity.rb:92:11:92:18 | call to taint : | call to taint : |
| call_sensitivity.rb:51:10:51:10 | x | call_sensitivity.rb:93:16:93:23 | call to taint : | call_sensitivity.rb:51:10:51:10 | x | $@ | call_sensitivity.rb:93:16:93:23 | call to taint : | call to taint : |
| call_sensitivity.rb:51:10:51:10 | x | call_sensitivity.rb:94:14:94:22 | call to taint : | call_sensitivity.rb:51:10:51:10 | x | $@ | call_sensitivity.rb:94:14:94:22 | call to taint : | call to taint : |
| call_sensitivity.rb:51:10:51:10 | x | call_sensitivity.rb:95:16:95:24 | call to taint : | call_sensitivity.rb:51:10:51:10 | x | $@ | call_sensitivity.rb:95:16:95:24 | call to taint : | call to taint : |
| call_sensitivity.rb:71:10:71:10 | x | call_sensitivity.rb:97:21:97:28 | call to taint : | call_sensitivity.rb:71:10:71:10 | x | $@ | call_sensitivity.rb:97:21:97:28 | call to taint : | call to taint : |
| call_sensitivity.rb:71:10:71:10 | x | call_sensitivity.rb:98:26:98:33 | call to taint : | call_sensitivity.rb:71:10:71:10 | x | $@ | call_sensitivity.rb:98:26:98:33 | call to taint : | call to taint : |
| call_sensitivity.rb:71:10:71:10 | x | call_sensitivity.rb:99:24:99:32 | call to taint : | call_sensitivity.rb:71:10:71:10 | x | $@ | call_sensitivity.rb:99:24:99:32 | call to taint : | call to taint : |
| call_sensitivity.rb:71:10:71:10 | x | call_sensitivity.rb:100:26:100:33 | call to taint : | call_sensitivity.rb:71:10:71:10 | x | $@ | call_sensitivity.rb:100:26:100:33 | call to taint : | call to taint : |
mayBenefitFromCallContext
| call_sensitivity.rb:51:5:51:10 | call to sink | call_sensitivity.rb:50:3:52:5 | method1 |
| call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:54:3:56:5 | method2 |
| call_sensitivity.rb:59:5:59:16 | call to method1 | call_sensitivity.rb:58:3:60:5 | method3 |
| call_sensitivity.rb:59:5:59:18 | call to method2 | call_sensitivity.rb:58:3:60:5 | call_method2 |
| call_sensitivity.rb:63:5:63:16 | call to method1 | call_sensitivity.rb:62:3:64:5 | method3 |
| call_sensitivity.rb:67:5:67:25 | call to method3 | call_sensitivity.rb:66:3:68:5 | call_method3 |
| call_sensitivity.rb:75:5:75:23 | call to singleton_method1 | call_sensitivity.rb:74:3:76:5 | singleton_method2 |
| call_sensitivity.rb:79:5:79:28 | call to singleton_method2 | call_sensitivity.rb:78:3:80:5 | call_singleton_method2 |
| call_sensitivity.rb:83:5:83:26 | call to singleton_method1 | call_sensitivity.rb:82:3:84:5 | singleton_method3 |
| call_sensitivity.rb:87:5:87:35 | call to singleton_method3 | call_sensitivity.rb:86:3:88:5 | call_singleton_method3 |
| call_sensitivity.rb:112:5:112:18 | call to method2 | call_sensitivity.rb:111:3:113:5 | call_method2 |
| call_sensitivity.rb:116:5:116:25 | call to method3 | call_sensitivity.rb:115:3:117:5 | call_method3 |
| call_sensitivity.rb:120:5:120:28 | call to singleton_method2 | call_sensitivity.rb:119:3:121:5 | call_singleton_method2 |
| call_sensitivity.rb:124:5:124:35 | call to singleton_method3 | call_sensitivity.rb:123:3:125:5 | call_singleton_method3 |
viableImplInCallContext
| call_sensitivity.rb:51:5:51:10 | call to sink | call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:5:1:7:3 | sink |
| call_sensitivity.rb:51:5:51:10 | call to sink | call_sensitivity.rb:59:5:59:16 | call to method1 | call_sensitivity.rb:5:1:7:3 | sink |
| call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:64:1:64:19 | call to method2 | call_sensitivity.rb:50:3:52:5 | method1 |
| call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:74:1:74:19 | call to method2 | call_sensitivity.rb:68:3:70:5 | method1 |
| call_sensitivity.rb:59:5:59:16 | call to method1 | call_sensitivity.rb:65:1:65:23 | call to method3 | call_sensitivity.rb:50:3:52:5 | method1 |
| call_sensitivity.rb:59:5:59:16 | call to method1 | call_sensitivity.rb:75:1:75:23 | call to method3 | call_sensitivity.rb:68:3:70:5 | method1 |
| call_sensitivity.rb:51:5:51:10 | call to sink | call_sensitivity.rb:63:5:63:16 | call to method1 | call_sensitivity.rb:5:1:7:3 | sink |
| call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:59:5:59:18 | call to method2 | call_sensitivity.rb:50:3:52:5 | method1 |
| call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:59:5:59:18 | call to method2 | call_sensitivity.rb:103:3:105:5 | method1 |
| call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:92:1:92:19 | call to method2 | call_sensitivity.rb:50:3:52:5 | method1 |
| call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:112:5:112:18 | call to method2 | call_sensitivity.rb:103:3:105:5 | method1 |
| call_sensitivity.rb:55:5:55:13 | call to method1 | call_sensitivity.rb:129:1:129:19 | call to method2 | call_sensitivity.rb:103:3:105:5 | method1 |
| call_sensitivity.rb:59:5:59:18 | call to method2 | call_sensitivity.rb:93:1:93:24 | call to call_method2 | call_sensitivity.rb:54:3:56:5 | method2 |
| call_sensitivity.rb:63:5:63:16 | call to method1 | call_sensitivity.rb:67:5:67:25 | call to method3 | call_sensitivity.rb:50:3:52:5 | method1 |
| call_sensitivity.rb:63:5:63:16 | call to method1 | call_sensitivity.rb:67:5:67:25 | call to method3 | call_sensitivity.rb:103:3:105:5 | method1 |
| call_sensitivity.rb:63:5:63:16 | call to method1 | call_sensitivity.rb:94:1:94:23 | call to method3 | call_sensitivity.rb:50:3:52:5 | method1 |
| call_sensitivity.rb:63:5:63:16 | call to method1 | call_sensitivity.rb:116:5:116:25 | call to method3 | call_sensitivity.rb:103:3:105:5 | method1 |
| call_sensitivity.rb:63:5:63:16 | call to method1 | call_sensitivity.rb:131:1:131:23 | call to method3 | call_sensitivity.rb:103:3:105:5 | method1 |
| call_sensitivity.rb:67:5:67:25 | call to method3 | call_sensitivity.rb:95:1:95:25 | call to call_method3 | call_sensitivity.rb:62:3:64:5 | method3 |
| call_sensitivity.rb:75:5:75:23 | call to singleton_method1 | call_sensitivity.rb:79:5:79:28 | call to singleton_method2 | call_sensitivity.rb:70:3:72:5 | singleton_method1 |
| call_sensitivity.rb:75:5:75:23 | call to singleton_method1 | call_sensitivity.rb:79:5:79:28 | call to singleton_method2 | call_sensitivity.rb:107:3:109:5 | singleton_method1 |
| call_sensitivity.rb:75:5:75:23 | call to singleton_method1 | call_sensitivity.rb:97:1:97:29 | call to singleton_method2 | call_sensitivity.rb:70:3:72:5 | singleton_method1 |
| call_sensitivity.rb:75:5:75:23 | call to singleton_method1 | call_sensitivity.rb:120:5:120:28 | call to singleton_method2 | call_sensitivity.rb:107:3:109:5 | singleton_method1 |
| call_sensitivity.rb:75:5:75:23 | call to singleton_method1 | call_sensitivity.rb:134:1:134:29 | call to singleton_method2 | call_sensitivity.rb:107:3:109:5 | singleton_method1 |
| call_sensitivity.rb:79:5:79:28 | call to singleton_method2 | call_sensitivity.rb:98:1:98:34 | call to call_singleton_method2 | call_sensitivity.rb:74:3:76:5 | singleton_method2 |
| call_sensitivity.rb:83:5:83:26 | call to singleton_method1 | call_sensitivity.rb:87:5:87:35 | call to singleton_method3 | call_sensitivity.rb:70:3:72:5 | singleton_method1 |
| call_sensitivity.rb:83:5:83:26 | call to singleton_method1 | call_sensitivity.rb:87:5:87:35 | call to singleton_method3 | call_sensitivity.rb:107:3:109:5 | singleton_method1 |
| call_sensitivity.rb:83:5:83:26 | call to singleton_method1 | call_sensitivity.rb:99:1:99:33 | call to singleton_method3 | call_sensitivity.rb:70:3:72:5 | singleton_method1 |
| call_sensitivity.rb:83:5:83:26 | call to singleton_method1 | call_sensitivity.rb:124:5:124:35 | call to singleton_method3 | call_sensitivity.rb:107:3:109:5 | singleton_method1 |
| call_sensitivity.rb:83:5:83:26 | call to singleton_method1 | call_sensitivity.rb:136:1:136:33 | call to singleton_method3 | call_sensitivity.rb:107:3:109:5 | singleton_method1 |
| call_sensitivity.rb:87:5:87:35 | call to singleton_method3 | call_sensitivity.rb:100:1:100:34 | call to call_singleton_method3 | call_sensitivity.rb:82:3:84:5 | singleton_method3 |
| call_sensitivity.rb:112:5:112:18 | call to method2 | call_sensitivity.rb:130:1:130:24 | call to call_method2 | call_sensitivity.rb:54:3:56:5 | method2 |
| call_sensitivity.rb:116:5:116:25 | call to method3 | call_sensitivity.rb:132:1:132:25 | call to call_method3 | call_sensitivity.rb:62:3:64:5 | method3 |
| call_sensitivity.rb:120:5:120:28 | call to singleton_method2 | call_sensitivity.rb:135:1:135:34 | call to call_singleton_method2 | call_sensitivity.rb:74:3:76:5 | singleton_method2 |
| call_sensitivity.rb:124:5:124:35 | call to singleton_method3 | call_sensitivity.rb:137:1:137:34 | call to call_singleton_method3 | call_sensitivity.rb:82:3:84:5 | singleton_method3 |

View File

@@ -48,28 +48,90 @@ apply_lambda(MY_LAMBDA2, taint(9))
class A
def method1 x
sink x # $ hasValueFlow=10 $ hasValueFlow=11
sink x # $ hasValueFlow=10 $ hasValueFlow=11 $ hasValueFlow=12 $ hasValueFlow=13
end
def method2 x
method1 x
end
def call_method2 x
self.method2 x
end
def method3(x, y)
x.method1(y)
end
def call_method3 x
self.method3(self, x)
end
def self.singleton_method1 x
sink x # $ hasValueFlow=14 $ hasValueFlow=15 # $ hasValueFlow=16 $ hasValueFlow=17
end
def self.singleton_method2 x
singleton_method1 x
end
def self.call_singleton_method2 x
self.singleton_method2 x
end
def self.singleton_method3(x, y)
x.singleton_method1(y)
end
def self.call_singleton_method3 x
self.singleton_method3(self, x)
end
end
a = A.new
a.method2(taint 10)
a.method3(a, taint(11))
a.call_method2(taint 11)
a.method3(a, taint(12))
a.call_method3(taint(13))
A.singleton_method2(taint 14)
A.call_singleton_method2(taint 15)
A.singleton_method3(A, taint(16))
A.call_singleton_method3(taint 17)
class B < A
def method1 x
puts x
puts "NON SINK: #{x}"
end
def self.singleton_method1 x
puts "NON SINK: #{x}"
end
def call_method2 x
self.method2 x
end
def call_method3 x
self.method3(self, x)
end
def self.call_singleton_method2 x
self.singleton_method2 x
end
def self.call_singleton_method3 x
self.singleton_method3(self, x)
end
end
b = B.new
b.method2(taint 12)
b.method3(b, taint(13))
b.method2(taint 18)
b.call_method2(taint 19)
b.method3(b, taint(20))
b.call_method3(taint(21))
B.singleton_method2(taint 22)
B.call_singleton_method2(taint 23)
B.singleton_method3(B, taint(24))
B.call_singleton_method3(taint 25)

View File

@@ -1,6 +1,4 @@
---
dependencies:
codeql/suite-helpers:
version: 0.0.2
dependencies: {}
compiled: false
lockVersion: 1.0.0

View File

@@ -0,0 +1,4 @@
---
dependencies: {}
compiled: false
lockVersion: 1.0.0

View File

@@ -660,14 +660,14 @@ module Make<InputSig Input> {
}
pragma[noinline]
private predicate adjacentDefRead(
deprecated private predicate adjacentDefRead(
Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2, SourceVariable v
) {
adjacentDefRead(def, bb1, i1, bb2, i2) and
v = def.getSourceVariable()
}
private predicate adjacentDefReachesRead(
deprecated private predicate adjacentDefReachesRead(
Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2
) {
exists(SourceVariable v | adjacentDefRead(def, bb1, i1, bb2, i2, v) |
@@ -689,7 +689,7 @@ module Make<InputSig Input> {
* Same as `adjacentDefRead`, but ignores uncertain reads.
*/
pragma[nomagic]
predicate adjacentDefNoUncertainReads(
deprecated predicate adjacentDefNoUncertainReads(
Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2
) {
adjacentDefReachesRead(def, bb1, i1, bb2, i2) and
@@ -734,7 +734,7 @@ module Make<InputSig Input> {
lastRefRedef(inp, _, _, def)
}
private predicate adjacentDefReachesUncertainRead(
deprecated private predicate adjacentDefReachesUncertainRead(
Definition def, BasicBlock bb1, int i1, BasicBlock bb2, int i2
) {
adjacentDefReachesRead(def, bb1, i1, bb2, i2) and
@@ -747,7 +747,9 @@ module Make<InputSig Input> {
* Same as `lastRefRedef`, but ignores uncertain reads.
*/
pragma[nomagic]
predicate lastRefRedefNoUncertainReads(Definition def, BasicBlock bb, int i, Definition next) {
deprecated predicate lastRefRedefNoUncertainReads(
Definition def, BasicBlock bb, int i, Definition next
) {
lastRefRedef(def, bb, i, next) and
not variableRead(bb, i, def.getSourceVariable(), false)
or
@@ -787,7 +789,7 @@ module Make<InputSig Input> {
* Same as `lastRefRedef`, but ignores uncertain reads.
*/
pragma[nomagic]
predicate lastRefNoUncertainReads(Definition def, BasicBlock bb, int i) {
deprecated predicate lastRefNoUncertainReads(Definition def, BasicBlock bb, int i) {
lastRef(def, bb, i) and
not variableRead(bb, i, def.getSourceVariable(), false)
or

View File

@@ -82,6 +82,7 @@ private module Frameworks {
private import codeql.swift.frameworks.StandardLibrary.String
private import codeql.swift.frameworks.StandardLibrary.Url
private import codeql.swift.frameworks.StandardLibrary.UrlSession
private import codeql.swift.frameworks.StandardLibrary.WebView
}
/**

View File

@@ -574,6 +574,14 @@ private module PostUpdateNodes {
override DataFlowCallable getEnclosingCallable() { result = TDataFlowFunc(n.getScope()) }
}
class SummaryPostUpdateNode extends SummaryNode, PostUpdateNodeImpl {
SummaryPostUpdateNode() { FlowSummaryImpl::Private::summaryPostUpdateNode(this, _) }
override Node getPreUpdateNode() {
FlowSummaryImpl::Private::summaryPostUpdateNode(this, result)
}
}
}
private import PostUpdateNodes

View File

@@ -0,0 +1,133 @@
import swift
private import codeql.swift.dataflow.DataFlow
private import codeql.swift.dataflow.ExternalFlow
private import codeql.swift.dataflow.FlowSources
private import codeql.swift.dataflow.FlowSteps
/**
* A model for WKScriptMessage sources. Classes implementing the `WKScriptMessageHandler` protocol
* act as a bridge between JavaScript and native code. The messages sent from JavaScript code are
* stored in the `message` parameter of `userContentController`.
*/
private class WKScriptMessageSources extends SourceModelCsv {
override predicate row(string row) {
row = ";WKScriptMessageHandler;true;userContentController(_:didReceive:);;;Parameter[1];remote"
}
}
/** The class `WKScriptMessage`. */
private class WKScriptMessageDecl extends ClassDecl {
WKScriptMessageDecl() { this.getName() = "WKScriptMessage" }
}
/**
* A content implying that, if a `WKScriptMessage` is tainted, its `body` field is tainted.
*/
private class WKScriptMessageBodyInheritsTaint extends TaintInheritingContent,
DataFlow::Content::FieldContent {
WKScriptMessageBodyInheritsTaint() {
exists(FieldDecl f | this.getField() = f |
f.getEnclosingDecl() instanceof WKScriptMessageDecl and
f.getName() = "body"
)
}
}
/**
* A model for `JSContext` sources. `JSContext` acts as a bridge between JavaScript and
* native code, so any object obtained from it has the potential of being tainted by a malicious
* website visited in the WebView.
*/
private class JsContextSources extends SourceModelCsv {
override predicate row(string row) {
row =
[
";JSContext;true;globalObject;;;;remote",
";JSContext;true;objectAtIndexedSubscript(_:);;;ReturnValue;remote",
";JSContext;true;objectForKeyedSubscript(_:);;;ReturnValue;remote"
]
}
}
/**
* A model for `JSValue` summaries. If a `JSValue` is tainted, any object it is converted into
* is also tainted.
*/
private class JsValueSummaries extends SummaryModelCsv {
override predicate row(string row) {
row =
[
";JSValue;true;init(object:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;init(bool:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;init(double:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;init(int32:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;init(uInt32:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;init(point:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;init(range:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;init(rect:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;init(size:in:);;;Argument[0];ReturnValue;taint",
";JSValue;true;toObject();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toObjectOf(_:);;;Argument[-1];ReturnValue;taint",
";JSValue;true;toBool();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toDouble();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toInt32();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toUInt32();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toNumber();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toString();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toDate();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toArray();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toDictionary();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toPoint();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toRange();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toRect();;;Argument[-1];ReturnValue;taint",
";JSValue;true;toSize();;;Argument[-1];ReturnValue;taint",
// TODO: These models could use content flow to be more precise
";JSValue;true;atIndex(_:);;;Argument[-1];ReturnValue;taint",
";JSValue;true;defineProperty(_:descriptor:);;;Argument[1];Argument[-1];taint",
";JSValue;true;forProperty(_:);;;Argument[-1];ReturnValue;taint",
";JSValue;true;setValue(_:at:);;;Argument[0];Argument[-1];taint",
";JSValue;true;setValue(_:forProperty:);;;Argument[0];Argument[-1];taint"
]
}
}
/** The `JSExport` protocol. */
private class JsExport extends ProtocolDecl {
JsExport() { this.getName() = "JSExport" }
}
/** A protocol inheriting `JSExport`. */
private class JsExportedProto extends ProtocolDecl {
JsExportedProto() { this.getABaseTypeDecl+() instanceof JsExport }
}
/** A type that adopts a `JSExport`-inherited protocol. */
private class JsExportedType extends ClassOrStructDecl {
JsExportedType() { this.getABaseTypeDecl*() instanceof JsExportedProto }
}
/**
* A flow source that models properties and methods defined in a `JSExport`-inherited protocol
* and implemented in a type adopting that protcol. These members are accessible from JavaScript
* when the object is assigned to a `JSContext`.
*/
private class JsExportedSource extends RemoteFlowSource {
JsExportedSource() {
exists(MethodDecl adopter, MethodDecl base |
base.getEnclosingDecl() instanceof JsExportedProto and
adopter.getEnclosingDecl() instanceof JsExportedType
|
this.(DataFlow::ParameterNode).getParameter().getDeclaringFunction() = adopter and
adopter.getName() = base.getName()
)
or
exists(FieldDecl adopter, FieldDecl base |
base.getEnclosingDecl() instanceof JsExportedProto and
adopter.getEnclosingDecl() instanceof JsExportedType
|
this.asExpr().(MemberRefExpr).getMember() = adopter and adopter.getName() = base.getName()
)
}
override string getSourceType() { result = "Member of a type exposed through JSExport" }
}

View File

@@ -8,3 +8,10 @@
| url.swift:53:15:53:19 | .resourceBytes | external |
| url.swift:60:15:60:19 | .lines | external |
| url.swift:67:16:67:22 | .lines | external |
| webview.swift:20:82:20:102 | message | external |
| webview.swift:25:5:25:13 | .globalObject | external |
| webview.swift:26:5:26:39 | call to objectForKeyedSubscript(_:) | external |
| webview.swift:39:9:39:9 | .tainted | Member of a type exposed through JSExport |
| webview.swift:43:10:43:10 | self | Member of a type exposed through JSExport |
| webview.swift:43:18:43:24 | arg1 | Member of a type exposed through JSExport |
| webview.swift:43:29:43:35 | arg2 | Member of a type exposed through JSExport |

View File

@@ -0,0 +1,48 @@
// --- stubs ---
class WKUserContentController {}
class WKScriptMessage {}
protocol WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage)
}
protocol NSCopying {}
protocol NSObjectProtocol {}
class JSValue {}
class JSContext {
var globalObject: JSValue { get { return JSValue() } }
func objectForKeyedSubscript(_: Any!) -> JSValue! { return JSValue() }
func setObject(_: Any, forKeyedSubscript: (NSCopying & NSObjectProtocol) ) {}
}
protocol JSExport {}
// --- tests ---
class TestMessageHandler: WKScriptMessageHandler {
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { // SOURCE
}
}
func testJsContext(context: JSContext) {
context.globalObject // SOURCE
context.objectForKeyedSubscript("") // SOURCE
}
protocol Exported : JSExport {
var tainted: Any { get }
func tainted(arg1: Any, arg2: Any)
}
class ExportedImpl : Exported {
var tainted: Any { get { return "" } }
var notTainted: Any { get { return ""} }
func readFields() {
tainted // SOURCE
notTainted
}
func tainted(arg1: Any, arg2: Any) { // SOURCES
}
func notTainted(arg1: Any, arg2: Any) {
}
}

View File

@@ -161,3 +161,4 @@
| url.swift:100:12:100:54 | ...! | url.swift:100:12:100:56 | .standardizedFileURL |
| url.swift:101:15:101:57 | ...! | url.swift:101:15:101:59 | .user |
| url.swift:102:15:102:57 | ...! | url.swift:102:15:102:59 | .password |
| webview.swift:52:11:52:18 | call to source() | webview.swift:52:10:52:41 | .body |

View File

@@ -119,11 +119,160 @@ edges
| url.swift:117:28:117:28 | tainted : | url.swift:117:16:117:35 | call to init(string:) : |
| url.swift:120:46:120:46 | urlTainted : | url.swift:43:2:46:55 | [summary param] 0 in dataTask(with:completionHandler:) : |
| url.swift:120:61:120:61 | data : | url.swift:121:15:121:19 | ...! |
| webview.swift:16:5:16:39 | [summary param] 0 in init(object:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(object:in:) : |
| webview.swift:17:5:17:38 | [summary param] 0 in init(bool:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(bool:in:) : |
| webview.swift:18:5:18:42 | [summary param] 0 in init(double:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(double:in:) : |
| webview.swift:19:5:19:40 | [summary param] 0 in init(int32:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(int32:in:) : |
| webview.swift:20:5:20:42 | [summary param] 0 in init(uInt32:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(uInt32:in:) : |
| webview.swift:21:5:21:42 | [summary param] 0 in init(point:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(point:in:) : |
| webview.swift:22:5:22:42 | [summary param] 0 in init(range:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(range:in:) : |
| webview.swift:23:5:23:40 | [summary param] 0 in init(rect:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(rect:in:) : |
| webview.swift:24:5:24:40 | [summary param] 0 in init(size:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(size:in:) : |
| webview.swift:25:5:25:41 | [summary param] this in toObject() : | file://:0:0:0:0 | [summary] to write: return (return) in toObject() : |
| webview.swift:26:5:26:55 | [summary param] this in toObjectOf(_:) : | file://:0:0:0:0 | [summary] to write: return (return) in toObjectOf(_:) : |
| webview.swift:27:5:27:42 | [summary param] this in toBool() : | file://:0:0:0:0 | [summary] to write: return (return) in toBool() : |
| webview.swift:28:5:28:44 | [summary param] this in toDouble() : | file://:0:0:0:0 | [summary] to write: return (return) in toDouble() : |
| webview.swift:29:5:29:40 | [summary param] this in toInt32() : | file://:0:0:0:0 | [summary] to write: return (return) in toInt32() : |
| webview.swift:30:5:30:42 | [summary param] this in toUInt32() : | file://:0:0:0:0 | [summary] to write: return (return) in toUInt32() : |
| webview.swift:31:5:31:62 | [summary param] this in toNumber() : | file://:0:0:0:0 | [summary] to write: return (return) in toNumber() : |
| webview.swift:32:5:32:44 | [summary param] this in toString() : | file://:0:0:0:0 | [summary] to write: return (return) in toString() : |
| webview.swift:33:5:33:44 | [summary param] this in toDate() : | file://:0:0:0:0 | [summary] to write: return (return) in toDate() : |
| webview.swift:34:5:34:44 | [summary param] this in toArray() : | file://:0:0:0:0 | [summary] to write: return (return) in toArray() : |
| webview.swift:35:5:35:65 | [summary param] this in toDictionary() : | file://:0:0:0:0 | [summary] to write: return (return) in toDictionary() : |
| webview.swift:36:5:36:50 | [summary param] this in toPoint() : | file://:0:0:0:0 | [summary] to write: return (return) in toPoint() : |
| webview.swift:37:5:37:50 | [summary param] this in toRange() : | file://:0:0:0:0 | [summary] to write: return (return) in toRange() : |
| webview.swift:38:5:38:47 | [summary param] this in toRect() : | file://:0:0:0:0 | [summary] to write: return (return) in toRect() : |
| webview.swift:39:5:39:47 | [summary param] this in toSize() : | file://:0:0:0:0 | [summary] to write: return (return) in toSize() : |
| webview.swift:40:5:40:84 | [summary param] this in atIndex(_:) : | file://:0:0:0:0 | [summary] to write: return (return) in atIndex(_:) : |
| webview.swift:41:5:41:53 | [summary param] 1 in defineProperty(_:descriptor:) : | file://:0:0:0:0 | [summary] to write: argument this in defineProperty(_:descriptor:) : |
| webview.swift:42:5:42:89 | [summary param] this in forProperty(_:) : | file://:0:0:0:0 | [summary] to write: return (return) in forProperty(_:) : |
| webview.swift:43:5:43:38 | [summary param] 0 in setValue(_:at:) : | file://:0:0:0:0 | [summary] to write: argument this in setValue(_:at:) : |
| webview.swift:44:5:44:48 | [summary param] 0 in setValue(_:forProperty:) : | file://:0:0:0:0 | [summary] to write: argument this in setValue(_:forProperty:) : |
| webview.swift:52:11:52:18 | call to source() : | webview.swift:52:10:52:41 | .body |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:59:10:59:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:60:10:60:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:61:10:61:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:62:10:62:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:63:10:63:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:64:10:64:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:65:10:65:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:66:10:66:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:67:10:67:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:68:10:68:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:69:10:69:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:70:10:70:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:71:10:71:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:72:10:72:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:73:10:73:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:74:10:74:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:75:10:75:10 | source : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:78:26:78:26 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:79:24:79:24 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:80:26:80:26 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:81:25:81:25 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:82:26:82:26 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:83:25:83:25 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:84:25:84:25 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:85:24:85:24 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:86:24:86:24 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:89:39:89:39 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:93:17:93:17 | s : |
| webview.swift:56:13:56:20 | call to source() : | webview.swift:97:17:97:17 | s : |
| webview.swift:59:10:59:10 | source : | webview.swift:25:5:25:41 | [summary param] this in toObject() : |
| webview.swift:59:10:59:10 | source : | webview.swift:59:10:59:26 | call to toObject() |
| webview.swift:60:10:60:10 | source : | webview.swift:26:5:26:55 | [summary param] this in toObjectOf(_:) : |
| webview.swift:60:10:60:10 | source : | webview.swift:60:10:60:41 | call to toObjectOf(_:) |
| webview.swift:61:10:61:10 | source : | webview.swift:27:5:27:42 | [summary param] this in toBool() : |
| webview.swift:61:10:61:10 | source : | webview.swift:61:10:61:24 | call to toBool() |
| webview.swift:62:10:62:10 | source : | webview.swift:28:5:28:44 | [summary param] this in toDouble() : |
| webview.swift:62:10:62:10 | source : | webview.swift:62:10:62:26 | call to toDouble() |
| webview.swift:63:10:63:10 | source : | webview.swift:29:5:29:40 | [summary param] this in toInt32() : |
| webview.swift:63:10:63:10 | source : | webview.swift:63:10:63:25 | call to toInt32() |
| webview.swift:64:10:64:10 | source : | webview.swift:30:5:30:42 | [summary param] this in toUInt32() : |
| webview.swift:64:10:64:10 | source : | webview.swift:64:10:64:26 | call to toUInt32() |
| webview.swift:65:10:65:10 | source : | webview.swift:31:5:31:62 | [summary param] this in toNumber() : |
| webview.swift:65:10:65:10 | source : | webview.swift:65:10:65:26 | call to toNumber() |
| webview.swift:66:10:66:10 | source : | webview.swift:32:5:32:44 | [summary param] this in toString() : |
| webview.swift:66:10:66:10 | source : | webview.swift:66:10:66:26 | call to toString() |
| webview.swift:67:10:67:10 | source : | webview.swift:33:5:33:44 | [summary param] this in toDate() : |
| webview.swift:67:10:67:10 | source : | webview.swift:67:10:67:24 | call to toDate() |
| webview.swift:68:10:68:10 | source : | webview.swift:34:5:34:44 | [summary param] this in toArray() : |
| webview.swift:68:10:68:10 | source : | webview.swift:68:10:68:25 | call to toArray() |
| webview.swift:69:10:69:10 | source : | webview.swift:35:5:35:65 | [summary param] this in toDictionary() : |
| webview.swift:69:10:69:10 | source : | webview.swift:69:10:69:30 | call to toDictionary() |
| webview.swift:70:10:70:10 | source : | webview.swift:36:5:36:50 | [summary param] this in toPoint() : |
| webview.swift:70:10:70:10 | source : | webview.swift:70:10:70:25 | call to toPoint() |
| webview.swift:71:10:71:10 | source : | webview.swift:37:5:37:50 | [summary param] this in toRange() : |
| webview.swift:71:10:71:10 | source : | webview.swift:71:10:71:25 | call to toRange() |
| webview.swift:72:10:72:10 | source : | webview.swift:38:5:38:47 | [summary param] this in toRect() : |
| webview.swift:72:10:72:10 | source : | webview.swift:72:10:72:24 | call to toRect() |
| webview.swift:73:10:73:10 | source : | webview.swift:39:5:39:47 | [summary param] this in toSize() : |
| webview.swift:73:10:73:10 | source : | webview.swift:73:10:73:24 | call to toSize() |
| webview.swift:74:10:74:10 | source : | webview.swift:40:5:40:84 | [summary param] this in atIndex(_:) : |
| webview.swift:74:10:74:10 | source : | webview.swift:74:10:74:26 | call to atIndex(_:) |
| webview.swift:75:10:75:10 | source : | webview.swift:42:5:42:89 | [summary param] this in forProperty(_:) : |
| webview.swift:75:10:75:10 | source : | webview.swift:75:10:75:31 | call to forProperty(_:) |
| webview.swift:78:26:78:26 | s : | webview.swift:16:5:16:39 | [summary param] 0 in init(object:in:) : |
| webview.swift:78:26:78:26 | s : | webview.swift:78:10:78:47 | call to init(object:in:) |
| webview.swift:79:24:79:24 | s : | webview.swift:17:5:17:38 | [summary param] 0 in init(bool:in:) : |
| webview.swift:79:24:79:24 | s : | webview.swift:79:10:79:47 | call to init(bool:in:) |
| webview.swift:80:26:80:26 | s : | webview.swift:18:5:18:42 | [summary param] 0 in init(double:in:) : |
| webview.swift:80:26:80:26 | s : | webview.swift:80:10:80:51 | call to init(double:in:) |
| webview.swift:81:25:81:25 | s : | webview.swift:19:5:19:40 | [summary param] 0 in init(int32:in:) : |
| webview.swift:81:25:81:25 | s : | webview.swift:81:10:81:49 | call to init(int32:in:) |
| webview.swift:82:26:82:26 | s : | webview.swift:20:5:20:42 | [summary param] 0 in init(uInt32:in:) : |
| webview.swift:82:26:82:26 | s : | webview.swift:82:10:82:51 | call to init(uInt32:in:) |
| webview.swift:83:25:83:25 | s : | webview.swift:21:5:21:42 | [summary param] 0 in init(point:in:) : |
| webview.swift:83:25:83:25 | s : | webview.swift:83:10:83:51 | call to init(point:in:) |
| webview.swift:84:25:84:25 | s : | webview.swift:22:5:22:42 | [summary param] 0 in init(range:in:) : |
| webview.swift:84:25:84:25 | s : | webview.swift:84:10:84:51 | call to init(range:in:) |
| webview.swift:85:24:85:24 | s : | webview.swift:23:5:23:40 | [summary param] 0 in init(rect:in:) : |
| webview.swift:85:24:85:24 | s : | webview.swift:85:10:85:49 | call to init(rect:in:) |
| webview.swift:86:24:86:24 | s : | webview.swift:24:5:24:40 | [summary param] 0 in init(size:in:) : |
| webview.swift:86:24:86:24 | s : | webview.swift:86:10:86:49 | call to init(size:in:) |
| webview.swift:89:5:89:5 | [post] v1 : | webview.swift:90:10:90:10 | v1 |
| webview.swift:89:39:89:39 | s : | webview.swift:41:5:41:53 | [summary param] 1 in defineProperty(_:descriptor:) : |
| webview.swift:89:39:89:39 | s : | webview.swift:89:5:89:5 | [post] v1 : |
| webview.swift:93:5:93:5 | [post] v2 : | webview.swift:94:10:94:10 | v2 |
| webview.swift:93:17:93:17 | s : | webview.swift:43:5:43:38 | [summary param] 0 in setValue(_:at:) : |
| webview.swift:93:17:93:17 | s : | webview.swift:93:5:93:5 | [post] v2 : |
| webview.swift:97:5:97:5 | [post] v3 : | webview.swift:98:10:98:10 | v3 |
| webview.swift:97:17:97:17 | s : | webview.swift:44:5:44:48 | [summary param] 0 in setValue(_:forProperty:) : |
| webview.swift:97:17:97:17 | s : | webview.swift:97:5:97:5 | [post] v3 : |
nodes
| file://:0:0:0:0 | [summary] to write: argument 1.parameter 0 in dataTask(with:completionHandler:) : | semmle.label | [summary] to write: argument 1.parameter 0 in dataTask(with:completionHandler:) : |
| file://:0:0:0:0 | [summary] to write: argument this in defineProperty(_:descriptor:) : | semmle.label | [summary] to write: argument this in defineProperty(_:descriptor:) : |
| file://:0:0:0:0 | [summary] to write: argument this in setValue(_:at:) : | semmle.label | [summary] to write: argument this in setValue(_:at:) : |
| file://:0:0:0:0 | [summary] to write: argument this in setValue(_:forProperty:) : | semmle.label | [summary] to write: argument this in setValue(_:forProperty:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in atIndex(_:) : | semmle.label | [summary] to write: return (return) in atIndex(_:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in forProperty(_:) : | semmle.label | [summary] to write: return (return) in forProperty(_:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(bool:in:) : | semmle.label | [summary] to write: return (return) in init(bool:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(double:in:) : | semmle.label | [summary] to write: return (return) in init(double:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(int32:in:) : | semmle.label | [summary] to write: return (return) in init(int32:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(object:in:) : | semmle.label | [summary] to write: return (return) in init(object:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(point:in:) : | semmle.label | [summary] to write: return (return) in init(point:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(range:in:) : | semmle.label | [summary] to write: return (return) in init(range:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(rect:in:) : | semmle.label | [summary] to write: return (return) in init(rect:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(size:in:) : | semmle.label | [summary] to write: return (return) in init(size:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | semmle.label | [summary] to write: return (return) in init(string:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | semmle.label | [summary] to write: return (return) in init(string:relativeTo:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | semmle.label | [summary] to write: return (return) in init(string:relativeTo:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in init(uInt32:in:) : | semmle.label | [summary] to write: return (return) in init(uInt32:in:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in toArray() : | semmle.label | [summary] to write: return (return) in toArray() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toBool() : | semmle.label | [summary] to write: return (return) in toBool() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toDate() : | semmle.label | [summary] to write: return (return) in toDate() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toDictionary() : | semmle.label | [summary] to write: return (return) in toDictionary() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toDouble() : | semmle.label | [summary] to write: return (return) in toDouble() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toInt32() : | semmle.label | [summary] to write: return (return) in toInt32() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toNumber() : | semmle.label | [summary] to write: return (return) in toNumber() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toObject() : | semmle.label | [summary] to write: return (return) in toObject() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toObjectOf(_:) : | semmle.label | [summary] to write: return (return) in toObjectOf(_:) : |
| file://:0:0:0:0 | [summary] to write: return (return) in toPoint() : | semmle.label | [summary] to write: return (return) in toPoint() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toRange() : | semmle.label | [summary] to write: return (return) in toRange() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toRect() : | semmle.label | [summary] to write: return (return) in toRect() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toSize() : | semmle.label | [summary] to write: return (return) in toSize() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toString() : | semmle.label | [summary] to write: return (return) in toString() : |
| file://:0:0:0:0 | [summary] to write: return (return) in toUInt32() : | semmle.label | [summary] to write: return (return) in toUInt32() : |
| string.swift:5:11:5:18 | call to source() : | semmle.label | call to source() : |
| string.swift:7:13:7:13 | "..." | semmle.label | "..." |
| string.swift:9:13:9:13 | "..." | semmle.label | "..." |
@@ -231,6 +380,99 @@ nodes
| url.swift:120:46:120:46 | urlTainted : | semmle.label | urlTainted : |
| url.swift:120:61:120:61 | data : | semmle.label | data : |
| url.swift:121:15:121:19 | ...! | semmle.label | ...! |
| webview.swift:16:5:16:39 | [summary param] 0 in init(object:in:) : | semmle.label | [summary param] 0 in init(object:in:) : |
| webview.swift:17:5:17:38 | [summary param] 0 in init(bool:in:) : | semmle.label | [summary param] 0 in init(bool:in:) : |
| webview.swift:18:5:18:42 | [summary param] 0 in init(double:in:) : | semmle.label | [summary param] 0 in init(double:in:) : |
| webview.swift:19:5:19:40 | [summary param] 0 in init(int32:in:) : | semmle.label | [summary param] 0 in init(int32:in:) : |
| webview.swift:20:5:20:42 | [summary param] 0 in init(uInt32:in:) : | semmle.label | [summary param] 0 in init(uInt32:in:) : |
| webview.swift:21:5:21:42 | [summary param] 0 in init(point:in:) : | semmle.label | [summary param] 0 in init(point:in:) : |
| webview.swift:22:5:22:42 | [summary param] 0 in init(range:in:) : | semmle.label | [summary param] 0 in init(range:in:) : |
| webview.swift:23:5:23:40 | [summary param] 0 in init(rect:in:) : | semmle.label | [summary param] 0 in init(rect:in:) : |
| webview.swift:24:5:24:40 | [summary param] 0 in init(size:in:) : | semmle.label | [summary param] 0 in init(size:in:) : |
| webview.swift:25:5:25:41 | [summary param] this in toObject() : | semmle.label | [summary param] this in toObject() : |
| webview.swift:26:5:26:55 | [summary param] this in toObjectOf(_:) : | semmle.label | [summary param] this in toObjectOf(_:) : |
| webview.swift:27:5:27:42 | [summary param] this in toBool() : | semmle.label | [summary param] this in toBool() : |
| webview.swift:28:5:28:44 | [summary param] this in toDouble() : | semmle.label | [summary param] this in toDouble() : |
| webview.swift:29:5:29:40 | [summary param] this in toInt32() : | semmle.label | [summary param] this in toInt32() : |
| webview.swift:30:5:30:42 | [summary param] this in toUInt32() : | semmle.label | [summary param] this in toUInt32() : |
| webview.swift:31:5:31:62 | [summary param] this in toNumber() : | semmle.label | [summary param] this in toNumber() : |
| webview.swift:32:5:32:44 | [summary param] this in toString() : | semmle.label | [summary param] this in toString() : |
| webview.swift:33:5:33:44 | [summary param] this in toDate() : | semmle.label | [summary param] this in toDate() : |
| webview.swift:34:5:34:44 | [summary param] this in toArray() : | semmle.label | [summary param] this in toArray() : |
| webview.swift:35:5:35:65 | [summary param] this in toDictionary() : | semmle.label | [summary param] this in toDictionary() : |
| webview.swift:36:5:36:50 | [summary param] this in toPoint() : | semmle.label | [summary param] this in toPoint() : |
| webview.swift:37:5:37:50 | [summary param] this in toRange() : | semmle.label | [summary param] this in toRange() : |
| webview.swift:38:5:38:47 | [summary param] this in toRect() : | semmle.label | [summary param] this in toRect() : |
| webview.swift:39:5:39:47 | [summary param] this in toSize() : | semmle.label | [summary param] this in toSize() : |
| webview.swift:40:5:40:84 | [summary param] this in atIndex(_:) : | semmle.label | [summary param] this in atIndex(_:) : |
| webview.swift:41:5:41:53 | [summary param] 1 in defineProperty(_:descriptor:) : | semmle.label | [summary param] 1 in defineProperty(_:descriptor:) : |
| webview.swift:42:5:42:89 | [summary param] this in forProperty(_:) : | semmle.label | [summary param] this in forProperty(_:) : |
| webview.swift:43:5:43:38 | [summary param] 0 in setValue(_:at:) : | semmle.label | [summary param] 0 in setValue(_:at:) : |
| webview.swift:44:5:44:48 | [summary param] 0 in setValue(_:forProperty:) : | semmle.label | [summary param] 0 in setValue(_:forProperty:) : |
| webview.swift:52:10:52:41 | .body | semmle.label | .body |
| webview.swift:52:11:52:18 | call to source() : | semmle.label | call to source() : |
| webview.swift:56:13:56:20 | call to source() : | semmle.label | call to source() : |
| webview.swift:59:10:59:10 | source : | semmle.label | source : |
| webview.swift:59:10:59:26 | call to toObject() | semmle.label | call to toObject() |
| webview.swift:60:10:60:10 | source : | semmle.label | source : |
| webview.swift:60:10:60:41 | call to toObjectOf(_:) | semmle.label | call to toObjectOf(_:) |
| webview.swift:61:10:61:10 | source : | semmle.label | source : |
| webview.swift:61:10:61:24 | call to toBool() | semmle.label | call to toBool() |
| webview.swift:62:10:62:10 | source : | semmle.label | source : |
| webview.swift:62:10:62:26 | call to toDouble() | semmle.label | call to toDouble() |
| webview.swift:63:10:63:10 | source : | semmle.label | source : |
| webview.swift:63:10:63:25 | call to toInt32() | semmle.label | call to toInt32() |
| webview.swift:64:10:64:10 | source : | semmle.label | source : |
| webview.swift:64:10:64:26 | call to toUInt32() | semmle.label | call to toUInt32() |
| webview.swift:65:10:65:10 | source : | semmle.label | source : |
| webview.swift:65:10:65:26 | call to toNumber() | semmle.label | call to toNumber() |
| webview.swift:66:10:66:10 | source : | semmle.label | source : |
| webview.swift:66:10:66:26 | call to toString() | semmle.label | call to toString() |
| webview.swift:67:10:67:10 | source : | semmle.label | source : |
| webview.swift:67:10:67:24 | call to toDate() | semmle.label | call to toDate() |
| webview.swift:68:10:68:10 | source : | semmle.label | source : |
| webview.swift:68:10:68:25 | call to toArray() | semmle.label | call to toArray() |
| webview.swift:69:10:69:10 | source : | semmle.label | source : |
| webview.swift:69:10:69:30 | call to toDictionary() | semmle.label | call to toDictionary() |
| webview.swift:70:10:70:10 | source : | semmle.label | source : |
| webview.swift:70:10:70:25 | call to toPoint() | semmle.label | call to toPoint() |
| webview.swift:71:10:71:10 | source : | semmle.label | source : |
| webview.swift:71:10:71:25 | call to toRange() | semmle.label | call to toRange() |
| webview.swift:72:10:72:10 | source : | semmle.label | source : |
| webview.swift:72:10:72:24 | call to toRect() | semmle.label | call to toRect() |
| webview.swift:73:10:73:10 | source : | semmle.label | source : |
| webview.swift:73:10:73:24 | call to toSize() | semmle.label | call to toSize() |
| webview.swift:74:10:74:10 | source : | semmle.label | source : |
| webview.swift:74:10:74:26 | call to atIndex(_:) | semmle.label | call to atIndex(_:) |
| webview.swift:75:10:75:10 | source : | semmle.label | source : |
| webview.swift:75:10:75:31 | call to forProperty(_:) | semmle.label | call to forProperty(_:) |
| webview.swift:78:10:78:47 | call to init(object:in:) | semmle.label | call to init(object:in:) |
| webview.swift:78:26:78:26 | s : | semmle.label | s : |
| webview.swift:79:10:79:47 | call to init(bool:in:) | semmle.label | call to init(bool:in:) |
| webview.swift:79:24:79:24 | s : | semmle.label | s : |
| webview.swift:80:10:80:51 | call to init(double:in:) | semmle.label | call to init(double:in:) |
| webview.swift:80:26:80:26 | s : | semmle.label | s : |
| webview.swift:81:10:81:49 | call to init(int32:in:) | semmle.label | call to init(int32:in:) |
| webview.swift:81:25:81:25 | s : | semmle.label | s : |
| webview.swift:82:10:82:51 | call to init(uInt32:in:) | semmle.label | call to init(uInt32:in:) |
| webview.swift:82:26:82:26 | s : | semmle.label | s : |
| webview.swift:83:10:83:51 | call to init(point:in:) | semmle.label | call to init(point:in:) |
| webview.swift:83:25:83:25 | s : | semmle.label | s : |
| webview.swift:84:10:84:51 | call to init(range:in:) | semmle.label | call to init(range:in:) |
| webview.swift:84:25:84:25 | s : | semmle.label | s : |
| webview.swift:85:10:85:49 | call to init(rect:in:) | semmle.label | call to init(rect:in:) |
| webview.swift:85:24:85:24 | s : | semmle.label | s : |
| webview.swift:86:10:86:49 | call to init(size:in:) | semmle.label | call to init(size:in:) |
| webview.swift:86:24:86:24 | s : | semmle.label | s : |
| webview.swift:89:5:89:5 | [post] v1 : | semmle.label | [post] v1 : |
| webview.swift:89:39:89:39 | s : | semmle.label | s : |
| webview.swift:90:10:90:10 | v1 | semmle.label | v1 |
| webview.swift:93:5:93:5 | [post] v2 : | semmle.label | [post] v2 : |
| webview.swift:93:17:93:17 | s : | semmle.label | s : |
| webview.swift:94:10:94:10 | v2 | semmle.label | v2 |
| webview.swift:97:5:97:5 | [post] v3 : | semmle.label | [post] v3 : |
| webview.swift:97:17:97:17 | s : | semmle.label | s : |
| webview.swift:98:10:98:10 | v3 | semmle.label | v3 |
subpaths
| url.swift:59:31:59:31 | tainted : | url.swift:8:2:8:25 | [summary param] 0 in init(string:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | url.swift:59:19:59:38 | call to init(string:) : |
| url.swift:83:24:83:24 | tainted : | url.swift:9:2:9:43 | [summary param] 0 in init(string:relativeTo:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | url.swift:83:12:83:48 | call to init(string:relativeTo:) : |
@@ -252,6 +494,35 @@ subpaths
| url.swift:101:46:101:46 | urlTainted : | url.swift:9:2:9:43 | [summary param] 1 in init(string:relativeTo:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | url.swift:101:15:101:56 | call to init(string:relativeTo:) : |
| url.swift:102:46:102:46 | urlTainted : | url.swift:9:2:9:43 | [summary param] 1 in init(string:relativeTo:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:relativeTo:) : | url.swift:102:15:102:56 | call to init(string:relativeTo:) : |
| url.swift:117:28:117:28 | tainted : | url.swift:8:2:8:25 | [summary param] 0 in init(string:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(string:) : | url.swift:117:16:117:35 | call to init(string:) : |
| webview.swift:59:10:59:10 | source : | webview.swift:25:5:25:41 | [summary param] this in toObject() : | file://:0:0:0:0 | [summary] to write: return (return) in toObject() : | webview.swift:59:10:59:26 | call to toObject() |
| webview.swift:60:10:60:10 | source : | webview.swift:26:5:26:55 | [summary param] this in toObjectOf(_:) : | file://:0:0:0:0 | [summary] to write: return (return) in toObjectOf(_:) : | webview.swift:60:10:60:41 | call to toObjectOf(_:) |
| webview.swift:61:10:61:10 | source : | webview.swift:27:5:27:42 | [summary param] this in toBool() : | file://:0:0:0:0 | [summary] to write: return (return) in toBool() : | webview.swift:61:10:61:24 | call to toBool() |
| webview.swift:62:10:62:10 | source : | webview.swift:28:5:28:44 | [summary param] this in toDouble() : | file://:0:0:0:0 | [summary] to write: return (return) in toDouble() : | webview.swift:62:10:62:26 | call to toDouble() |
| webview.swift:63:10:63:10 | source : | webview.swift:29:5:29:40 | [summary param] this in toInt32() : | file://:0:0:0:0 | [summary] to write: return (return) in toInt32() : | webview.swift:63:10:63:25 | call to toInt32() |
| webview.swift:64:10:64:10 | source : | webview.swift:30:5:30:42 | [summary param] this in toUInt32() : | file://:0:0:0:0 | [summary] to write: return (return) in toUInt32() : | webview.swift:64:10:64:26 | call to toUInt32() |
| webview.swift:65:10:65:10 | source : | webview.swift:31:5:31:62 | [summary param] this in toNumber() : | file://:0:0:0:0 | [summary] to write: return (return) in toNumber() : | webview.swift:65:10:65:26 | call to toNumber() |
| webview.swift:66:10:66:10 | source : | webview.swift:32:5:32:44 | [summary param] this in toString() : | file://:0:0:0:0 | [summary] to write: return (return) in toString() : | webview.swift:66:10:66:26 | call to toString() |
| webview.swift:67:10:67:10 | source : | webview.swift:33:5:33:44 | [summary param] this in toDate() : | file://:0:0:0:0 | [summary] to write: return (return) in toDate() : | webview.swift:67:10:67:24 | call to toDate() |
| webview.swift:68:10:68:10 | source : | webview.swift:34:5:34:44 | [summary param] this in toArray() : | file://:0:0:0:0 | [summary] to write: return (return) in toArray() : | webview.swift:68:10:68:25 | call to toArray() |
| webview.swift:69:10:69:10 | source : | webview.swift:35:5:35:65 | [summary param] this in toDictionary() : | file://:0:0:0:0 | [summary] to write: return (return) in toDictionary() : | webview.swift:69:10:69:30 | call to toDictionary() |
| webview.swift:70:10:70:10 | source : | webview.swift:36:5:36:50 | [summary param] this in toPoint() : | file://:0:0:0:0 | [summary] to write: return (return) in toPoint() : | webview.swift:70:10:70:25 | call to toPoint() |
| webview.swift:71:10:71:10 | source : | webview.swift:37:5:37:50 | [summary param] this in toRange() : | file://:0:0:0:0 | [summary] to write: return (return) in toRange() : | webview.swift:71:10:71:25 | call to toRange() |
| webview.swift:72:10:72:10 | source : | webview.swift:38:5:38:47 | [summary param] this in toRect() : | file://:0:0:0:0 | [summary] to write: return (return) in toRect() : | webview.swift:72:10:72:24 | call to toRect() |
| webview.swift:73:10:73:10 | source : | webview.swift:39:5:39:47 | [summary param] this in toSize() : | file://:0:0:0:0 | [summary] to write: return (return) in toSize() : | webview.swift:73:10:73:24 | call to toSize() |
| webview.swift:74:10:74:10 | source : | webview.swift:40:5:40:84 | [summary param] this in atIndex(_:) : | file://:0:0:0:0 | [summary] to write: return (return) in atIndex(_:) : | webview.swift:74:10:74:26 | call to atIndex(_:) |
| webview.swift:75:10:75:10 | source : | webview.swift:42:5:42:89 | [summary param] this in forProperty(_:) : | file://:0:0:0:0 | [summary] to write: return (return) in forProperty(_:) : | webview.swift:75:10:75:31 | call to forProperty(_:) |
| webview.swift:78:26:78:26 | s : | webview.swift:16:5:16:39 | [summary param] 0 in init(object:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(object:in:) : | webview.swift:78:10:78:47 | call to init(object:in:) |
| webview.swift:79:24:79:24 | s : | webview.swift:17:5:17:38 | [summary param] 0 in init(bool:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(bool:in:) : | webview.swift:79:10:79:47 | call to init(bool:in:) |
| webview.swift:80:26:80:26 | s : | webview.swift:18:5:18:42 | [summary param] 0 in init(double:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(double:in:) : | webview.swift:80:10:80:51 | call to init(double:in:) |
| webview.swift:81:25:81:25 | s : | webview.swift:19:5:19:40 | [summary param] 0 in init(int32:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(int32:in:) : | webview.swift:81:10:81:49 | call to init(int32:in:) |
| webview.swift:82:26:82:26 | s : | webview.swift:20:5:20:42 | [summary param] 0 in init(uInt32:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(uInt32:in:) : | webview.swift:82:10:82:51 | call to init(uInt32:in:) |
| webview.swift:83:25:83:25 | s : | webview.swift:21:5:21:42 | [summary param] 0 in init(point:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(point:in:) : | webview.swift:83:10:83:51 | call to init(point:in:) |
| webview.swift:84:25:84:25 | s : | webview.swift:22:5:22:42 | [summary param] 0 in init(range:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(range:in:) : | webview.swift:84:10:84:51 | call to init(range:in:) |
| webview.swift:85:24:85:24 | s : | webview.swift:23:5:23:40 | [summary param] 0 in init(rect:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(rect:in:) : | webview.swift:85:10:85:49 | call to init(rect:in:) |
| webview.swift:86:24:86:24 | s : | webview.swift:24:5:24:40 | [summary param] 0 in init(size:in:) : | file://:0:0:0:0 | [summary] to write: return (return) in init(size:in:) : | webview.swift:86:10:86:49 | call to init(size:in:) |
| webview.swift:89:39:89:39 | s : | webview.swift:41:5:41:53 | [summary param] 1 in defineProperty(_:descriptor:) : | file://:0:0:0:0 | [summary] to write: argument this in defineProperty(_:descriptor:) : | webview.swift:89:5:89:5 | [post] v1 : |
| webview.swift:93:17:93:17 | s : | webview.swift:43:5:43:38 | [summary param] 0 in setValue(_:at:) : | file://:0:0:0:0 | [summary] to write: argument this in setValue(_:at:) : | webview.swift:93:5:93:5 | [post] v2 : |
| webview.swift:97:17:97:17 | s : | webview.swift:44:5:44:48 | [summary param] 0 in setValue(_:forProperty:) : | file://:0:0:0:0 | [summary] to write: argument this in setValue(_:forProperty:) : | webview.swift:97:5:97:5 | [post] v3 : |
#select
| string.swift:7:13:7:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:7:13:7:13 | "..." | result |
| string.swift:9:13:9:13 | "..." | string.swift:5:11:5:18 | call to source() : | string.swift:9:13:9:13 | "..." | result |
@@ -306,3 +577,33 @@ subpaths
| url.swift:102:15:102:67 | ...! | url.swift:57:16:57:23 | call to source() : | url.swift:102:15:102:67 | ...! | result |
| url.swift:118:12:118:12 | ...! | url.swift:57:16:57:23 | call to source() : | url.swift:118:12:118:12 | ...! | result |
| url.swift:121:15:121:19 | ...! | url.swift:57:16:57:23 | call to source() : | url.swift:121:15:121:19 | ...! | result |
| webview.swift:52:10:52:41 | .body | webview.swift:52:11:52:18 | call to source() : | webview.swift:52:10:52:41 | .body | result |
| webview.swift:59:10:59:26 | call to toObject() | webview.swift:56:13:56:20 | call to source() : | webview.swift:59:10:59:26 | call to toObject() | result |
| webview.swift:60:10:60:41 | call to toObjectOf(_:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:60:10:60:41 | call to toObjectOf(_:) | result |
| webview.swift:61:10:61:24 | call to toBool() | webview.swift:56:13:56:20 | call to source() : | webview.swift:61:10:61:24 | call to toBool() | result |
| webview.swift:62:10:62:26 | call to toDouble() | webview.swift:56:13:56:20 | call to source() : | webview.swift:62:10:62:26 | call to toDouble() | result |
| webview.swift:63:10:63:25 | call to toInt32() | webview.swift:56:13:56:20 | call to source() : | webview.swift:63:10:63:25 | call to toInt32() | result |
| webview.swift:64:10:64:26 | call to toUInt32() | webview.swift:56:13:56:20 | call to source() : | webview.swift:64:10:64:26 | call to toUInt32() | result |
| webview.swift:65:10:65:26 | call to toNumber() | webview.swift:56:13:56:20 | call to source() : | webview.swift:65:10:65:26 | call to toNumber() | result |
| webview.swift:66:10:66:26 | call to toString() | webview.swift:56:13:56:20 | call to source() : | webview.swift:66:10:66:26 | call to toString() | result |
| webview.swift:67:10:67:24 | call to toDate() | webview.swift:56:13:56:20 | call to source() : | webview.swift:67:10:67:24 | call to toDate() | result |
| webview.swift:68:10:68:25 | call to toArray() | webview.swift:56:13:56:20 | call to source() : | webview.swift:68:10:68:25 | call to toArray() | result |
| webview.swift:69:10:69:30 | call to toDictionary() | webview.swift:56:13:56:20 | call to source() : | webview.swift:69:10:69:30 | call to toDictionary() | result |
| webview.swift:70:10:70:25 | call to toPoint() | webview.swift:56:13:56:20 | call to source() : | webview.swift:70:10:70:25 | call to toPoint() | result |
| webview.swift:71:10:71:25 | call to toRange() | webview.swift:56:13:56:20 | call to source() : | webview.swift:71:10:71:25 | call to toRange() | result |
| webview.swift:72:10:72:24 | call to toRect() | webview.swift:56:13:56:20 | call to source() : | webview.swift:72:10:72:24 | call to toRect() | result |
| webview.swift:73:10:73:24 | call to toSize() | webview.swift:56:13:56:20 | call to source() : | webview.swift:73:10:73:24 | call to toSize() | result |
| webview.swift:74:10:74:26 | call to atIndex(_:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:74:10:74:26 | call to atIndex(_:) | result |
| webview.swift:75:10:75:31 | call to forProperty(_:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:75:10:75:31 | call to forProperty(_:) | result |
| webview.swift:78:10:78:47 | call to init(object:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:78:10:78:47 | call to init(object:in:) | result |
| webview.swift:79:10:79:47 | call to init(bool:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:79:10:79:47 | call to init(bool:in:) | result |
| webview.swift:80:10:80:51 | call to init(double:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:80:10:80:51 | call to init(double:in:) | result |
| webview.swift:81:10:81:49 | call to init(int32:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:81:10:81:49 | call to init(int32:in:) | result |
| webview.swift:82:10:82:51 | call to init(uInt32:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:82:10:82:51 | call to init(uInt32:in:) | result |
| webview.swift:83:10:83:51 | call to init(point:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:83:10:83:51 | call to init(point:in:) | result |
| webview.swift:84:10:84:51 | call to init(range:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:84:10:84:51 | call to init(range:in:) | result |
| webview.swift:85:10:85:49 | call to init(rect:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:85:10:85:49 | call to init(rect:in:) | result |
| webview.swift:86:10:86:49 | call to init(size:in:) | webview.swift:56:13:56:20 | call to source() : | webview.swift:86:10:86:49 | call to init(size:in:) | result |
| webview.swift:90:10:90:10 | v1 | webview.swift:56:13:56:20 | call to source() : | webview.swift:90:10:90:10 | v1 | result |
| webview.swift:94:10:94:10 | v2 | webview.swift:56:13:56:20 | call to source() : | webview.swift:94:10:94:10 | v2 | result |
| webview.swift:98:10:98:10 | v3 | webview.swift:56:13:56:20 | call to source() : | webview.swift:98:10:98:10 | v3 | result |

View File

@@ -0,0 +1,99 @@
// --- stubs ---
class WKScriptMessage {
open var body: Any { get { return "" } }
}
class NSNumber {
init(value: Int) {}
}
class Date {}
class CGPoint {}
class NSRange {}
class CGRect {}
class CGSize{}
class JSContext {}
class JSValue {
init(object: Any, in: JSContext) {}
init(bool: Bool, in: JSContext) {}
init(double: Double, in: JSContext) {}
init(int32: Int32, in: JSContext) {}
init(uInt32: UInt32, in: JSContext) {}
init(point: CGPoint, in: JSContext) {}
init(range: NSRange, in: JSContext) {}
init(rect: CGRect, in: JSContext) {}
init(size: CGSize, in: JSContext) {}
func toObject() -> Any! { return "" }
func toObjectOf(_: AnyClass!) -> Any! { return "" }
func toBool() -> Bool { return false }
func toDouble() -> Double { return 0.0 }
func toInt32() -> Int32 { return 0 }
func toUInt32() -> UInt32 { return 0 }
func toNumber() -> NSNumber! { return NSNumber(value: 0) }
func toString() -> String! { return "" }
func toDate() -> Date! { return Date() }
func toArray() -> [Any]! { return [""] }
func toDictionary() -> [AnyHashable: Any]! { return ["": ""]}
func toPoint() -> CGPoint { return CGPoint() }
func toRange() -> NSRange { return NSRange() }
func toRect() -> CGRect { return CGRect() }
func toSize() -> CGSize { return CGSize() }
func atIndex(_: Int) -> JSValue! { return JSValue(object: "", in: JSContext()) }
func defineProperty(_: Any!, descriptor: Any!) {}
func forProperty(_: Any!) -> JSValue! { return JSValue(object: "", in: JSContext()) }
func setValue(_: Any!, at: Int) {}
func setValue(_: Any!, forProperty: Any!) {}
}
// --- tests ---
func source() -> Any { return "" }
func sink(_: Any) {}
func testInheritBodyTaint() {
sink((source() as! WKScriptMessage).body) // $ tainted=52
}
func testJsValue() {
let s = source()
let source = s as! JSValue
sink(source.toObject() as Any) // $ tainted=56
sink(source.toObjectOf(NSNumber.self) as Any) // $ tainted=56
sink(source.toBool()) // $ tainted=56
sink(source.toDouble()) // $ tainted=56
sink(source.toInt32()) // $ tainted=56
sink(source.toUInt32()) // $ tainted=56
sink(source.toNumber() as Any) // $ tainted=56
sink(source.toString() as Any) // $ tainted=56
sink(source.toDate() as Any) // $ tainted=56
sink(source.toArray() as Any) // $ tainted=56
sink(source.toDictionary() as Any) // $ tainted=56
sink(source.toPoint()) // $ tainted=56
sink(source.toRange()) // $ tainted=56
sink(source.toRect()) // $ tainted=56
sink(source.toSize()) // $ tainted=56
sink(source.atIndex(0) as Any) // $ tainted=56
sink(source.forProperty("") as Any) // $ tainted=56
let context = JSContext()
sink(JSValue(object: s as Any, in: context)) // $ tainted=56
sink(JSValue(bool: s as! Bool, in: context)) // $ tainted=56
sink(JSValue(double: s as! Double, in: context)) // $ tainted=56
sink(JSValue(int32: s as! Int32, in: context)) // $ tainted=56
sink(JSValue(uInt32: s as! UInt32, in: context)) // $ tainted=56
sink(JSValue(point: s as! CGPoint, in: context)) // $ tainted=56
sink(JSValue(range: s as! NSRange, in: context)) // $ tainted=56
sink(JSValue(rect: s as! CGRect, in: context)) // $ tainted=56
sink(JSValue(size: s as! CGSize, in: context)) // $ tainted=56
let v1 = JSValue(object: "", in: context)
v1.defineProperty("", descriptor: s as Any)
sink(v1) // $ tainted=56
let v2 = JSValue(object: "", in: context)
v2.setValue(s as Any, at: 0)
sink(v2) // $ tainted=56
let v3 = JSValue(object: "", in: context)
v3.setValue(s as Any, forProperty: "")
sink(v3) // $ tainted=56
}

View File

@@ -0,0 +1 @@
queries/Security/CWE-327/ECBEncryption.ql

View File

@@ -1 +0,0 @@
queries/Security/ECB-Encryption/ECBEncryption.ql