mirror of
https://github.com/github/codeql.git
synced 2026-04-29 02:35:15 +02:00
Merge branch 'main' into jhelie/add-atm-model-integration-tests-hello-world
This commit is contained in:
4
.github/workflows/ruby-build.yml
vendored
4
.github/workflows/ruby-build.yml
vendored
@@ -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
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
dependencies:
|
||||
codeql/suite-helpers:
|
||||
version: 0.0.2
|
||||
dependencies: {}
|
||||
compiled: false
|
||||
lockVersion: 1.0.0
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
dependencies:
|
||||
codeql/suite-helpers:
|
||||
version: 0.0.2
|
||||
dependencies: {}
|
||||
compiled: false
|
||||
lockVersion: 1.0.0
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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> |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -1 +1 @@
|
||||
| test.kt:1:19:1:26 | toChar(...) |
|
||||
| test.kt:1:17:1:26 | toChar(...) |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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(...) |
|
||||
|
||||
@@ -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(...) |
|
||||
|
||||
@@ -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(...) |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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> |
|
||||
|
||||
@@ -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> |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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(...) |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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(...) |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql
|
||||
@@ -0,0 +1,5 @@
|
||||
data class X(val prop: Int)
|
||||
|
||||
fun fn(x: X) {
|
||||
1 - x.prop + 2
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
dependencies:
|
||||
codeql/suite-helpers:
|
||||
version: 0.0.2
|
||||
dependencies: {}
|
||||
compiled: false
|
||||
lockVersion: 1.0.0
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
dependencies:
|
||||
codeql/suite-helpers:
|
||||
version: 0.0.2
|
||||
dependencies: {}
|
||||
compiled: false
|
||||
lockVersion: 1.0.0
|
||||
|
||||
4
shared/ssa/codeql-pack.lock.yml
Normal file
4
shared/ssa/codeql-pack.lock.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
dependencies: {}
|
||||
compiled: false
|
||||
lockVersion: 1.0.0
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
133
swift/ql/lib/codeql/swift/frameworks/StandardLibrary/WebView.qll
Normal file
133
swift/ql/lib/codeql/swift/frameworks/StandardLibrary/WebView.qll
Normal 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" }
|
||||
}
|
||||
@@ -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 |
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 |
|
||||
|
||||
99
swift/ql/test/library-tests/dataflow/taint/webview.swift
Normal file
99
swift/ql/test/library-tests/dataflow/taint/webview.swift
Normal 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
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
queries/Security/CWE-327/ECBEncryption.ql
|
||||
@@ -1 +0,0 @@
|
||||
queries/Security/ECB-Encryption/ECBEncryption.ql
|
||||
Reference in New Issue
Block a user