Skip to content

Commit c4b7500

Browse files
authored
Merge branch 'main' into jhelie/add-atm-model-integration-tests-hello-world
2 parents e8549a4 + 759ffc4 commit c4b7500

File tree

66 files changed

+1381
-417
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+1381
-417
lines changed

.github/workflows/ruby-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ jobs:
9696
- name: Build Query Pack
9797
run: |
9898
codeql pack create ../shared/ssa --output target/packs
99+
codeql pack create ../misc/suite-helpers --output target/packs
99100
codeql pack create ql/lib --output target/packs
100-
codeql pack install ql/src
101101
codeql pack create ql/src --output target/packs
102102
PACK_FOLDER=$(readlink -f target/packs/codeql/ruby-queries/*)
103103
codeql generate query-help --format=sarifv2.1.0 --output="${PACK_FOLDER}/rules.sarif" ql/src
@@ -202,7 +202,7 @@ jobs:
202202
echo 'name: sample-tests
203203
version: 0.0.0
204204
dependencies:
205-
codeql/ruby-all: 0.0.1
205+
codeql/ruby-all: "*"
206206
extractor: ruby
207207
tests: .
208208
' > qlpack.yml

csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1067,6 +1067,59 @@ private predicate variableReadPseudo(ControlFlow::BasicBlock bb, int i, Ssa::Sou
10671067
capturedReadIn(bb, i, v, _, _, _)
10681068
}
10691069

1070+
pragma[noinline]
1071+
private predicate adjacentDefRead(
1072+
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2,
1073+
SsaInput::SourceVariable v
1074+
) {
1075+
adjacentDefRead(def, bb1, i1, bb2, i2) and
1076+
v = def.getSourceVariable()
1077+
}
1078+
1079+
private predicate adjacentDefReachesRead(
1080+
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
1081+
) {
1082+
exists(SsaInput::SourceVariable v | adjacentDefRead(def, bb1, i1, bb2, i2, v) |
1083+
def.definesAt(v, bb1, i1)
1084+
or
1085+
SsaInput::variableRead(bb1, i1, v, true)
1086+
)
1087+
or
1088+
exists(SsaInput::BasicBlock bb3, int i3 |
1089+
adjacentDefReachesRead(def, bb1, i1, bb3, i3) and
1090+
SsaInput::variableRead(bb3, i3, _, false) and
1091+
adjacentDefRead(def, bb3, i3, bb2, i2)
1092+
)
1093+
}
1094+
1095+
/** Same as `adjacentDefRead`, but skips uncertain reads. */
1096+
pragma[nomagic]
1097+
private predicate adjacentDefSkipUncertainReads(
1098+
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
1099+
) {
1100+
adjacentDefReachesRead(def, bb1, i1, bb2, i2) and
1101+
SsaInput::variableRead(bb2, i2, _, true)
1102+
}
1103+
1104+
private predicate adjacentDefReachesUncertainRead(
1105+
Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
1106+
) {
1107+
adjacentDefReachesRead(def, bb1, i1, bb2, i2) and
1108+
SsaInput::variableRead(bb2, i2, _, false)
1109+
}
1110+
1111+
/** Same as `lastRefRedef`, but skips uncertain reads. */
1112+
pragma[nomagic]
1113+
private predicate lastRefSkipUncertainReads(Definition def, SsaInput::BasicBlock bb, int i) {
1114+
lastRef(def, bb, i) and
1115+
not SsaInput::variableRead(bb, i, def.getSourceVariable(), false)
1116+
or
1117+
exists(SsaInput::BasicBlock bb0, int i0 |
1118+
lastRef(def, bb0, i0) and
1119+
adjacentDefReachesUncertainRead(def, bb, i, bb0, i0)
1120+
)
1121+
}
1122+
10701123
cached
10711124
private module Cached {
10721125
cached
@@ -1237,7 +1290,7 @@ private module Cached {
12371290
predicate firstReadSameVar(Definition def, ControlFlow::Node cfn) {
12381291
exists(ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2 |
12391292
def.definesAt(_, bb1, i1) and
1240-
adjacentDefNoUncertainReads(def, bb1, i1, bb2, i2) and
1293+
adjacentDefSkipUncertainReads(def, bb1, i1, bb2, i2) and
12411294
cfn = bb2.getNode(i2)
12421295
)
12431296
}
@@ -1252,20 +1305,27 @@ private module Cached {
12521305
exists(ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2 |
12531306
cfn1 = bb1.getNode(i1) and
12541307
variableReadActual(bb1, i1, _) and
1255-
adjacentDefNoUncertainReads(def, bb1, i1, bb2, i2) and
1308+
adjacentDefSkipUncertainReads(def, bb1, i1, bb2, i2) and
12561309
cfn2 = bb2.getNode(i2)
12571310
)
12581311
}
12591312

1313+
/** Same as `lastRefRedef`, but skips uncertain reads. */
12601314
cached
12611315
predicate lastRefBeforeRedef(Definition def, ControlFlow::BasicBlock bb, int i, Definition next) {
1262-
lastRefRedefNoUncertainReads(def, bb, i, next)
1316+
lastRefRedef(def, bb, i, next) and
1317+
not SsaInput::variableRead(bb, i, def.getSourceVariable(), false)
1318+
or
1319+
exists(SsaInput::BasicBlock bb0, int i0 |
1320+
lastRefRedef(def, bb0, i0, next) and
1321+
adjacentDefReachesUncertainRead(def, bb, i, bb0, i0)
1322+
)
12631323
}
12641324

12651325
cached
12661326
predicate lastReadSameVar(Definition def, ControlFlow::Node cfn) {
12671327
exists(ControlFlow::BasicBlock bb, int i |
1268-
lastRefNoUncertainReads(def, bb, i) and
1328+
lastRefSkipUncertainReads(def, bb, i) and
12691329
variableReadActual(bb, i, _) and
12701330
cfn = bb.getNode(i)
12711331
)

go/ql/src/qlpack.lock.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
---
2-
dependencies:
3-
codeql/suite-helpers:
4-
version: 0.0.2
2+
dependencies: {}
53
compiled: false
64
lockVersion: 1.0.0

go/ql/test/qlpack.lock.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
---
2-
dependencies:
3-
codeql/suite-helpers:
4-
version: 0.0.2
2+
dependencies: {}
53
compiled: false
64
lockVersion: 1.0.0

java/kotlin-extractor/src/main/kotlin/TrapWriter.kt

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.github.codeql
22

33
import com.github.codeql.KotlinUsesExtractor.LocallyVisibleFunctionLabels
4-
import com.github.codeql.utils.versions.FileEntry
54
import java.io.BufferedWriter
65
import java.io.File
76
import org.jetbrains.kotlin.ir.IrElement
@@ -15,6 +14,7 @@ import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET
1514

1615
import com.semmle.extractor.java.PopulateFile
1716
import com.semmle.util.unicode.UTF8Util
17+
import org.jetbrains.kotlin.ir.expressions.IrCall
1818

1919
/**
2020
* Each `.trap` file has a `TrapLabelManager` while we are writing it.
@@ -269,11 +269,42 @@ open class FileTrapWriter (
269269
*/
270270
val fileId = mkFileId(filePath, populateFileTables)
271271

272+
private fun offsetMinOf(default: Int, vararg options: Int?): Int {
273+
if (default == UNDEFINED_OFFSET || default == SYNTHETIC_OFFSET) {
274+
return default
275+
}
276+
277+
var currentMin = default
278+
for (option in options) {
279+
if (option != null && option != UNDEFINED_OFFSET && option != SYNTHETIC_OFFSET && option < currentMin) {
280+
currentMin = option
281+
}
282+
}
283+
284+
return currentMin
285+
}
286+
287+
private fun getStartOffset(e: IrElement): Int {
288+
return when (e) {
289+
is IrCall -> {
290+
// Calls have incorrect startOffset, so we adjust them:
291+
val dr = e.dispatchReceiver?.let { getStartOffset(it) }
292+
val er = e.extensionReceiver?.let { getStartOffset(it) }
293+
offsetMinOf(e.startOffset, dr, er)
294+
}
295+
else -> e.startOffset
296+
}
297+
}
298+
299+
private fun getEndOffset(e: IrElement): Int {
300+
return e.endOffset
301+
}
302+
272303
/**
273304
* Gets a label for the location of `e`.
274305
*/
275306
fun getLocation(e: IrElement): Label<DbLocation> {
276-
return getLocation(e.startOffset, e.endOffset)
307+
return getLocation(getStartOffset(e), getEndOffset(e))
277308
}
278309
/**
279310
* Gets a label for the location corresponding to `startOffset` and

java/ql/integration-tests/all-platforms/kotlin/enhanced-nullability/test.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ exprs
44
| Test.java:5:58:5:58 | p | Integer |
55
| user.kt:2:3:2:16 | x | int |
66
| user.kt:2:11:2:11 | t | Test |
7+
| user.kt:2:11:2:16 | f(...) | Integer |
78
| user.kt:2:13:2:16 | <implicit not null> | int |
8-
| user.kt:2:13:2:16 | f(...) | Integer |
99
| user.kt:2:13:2:16 | int | int |
1010
| user.kt:2:15:2:15 | 5 | int |
1111
| user.kt:3:10:3:10 | x | int |
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
| user.kt:3:22:3:22 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
2-
| user.kt:3:28:3:28 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
1+
| user.kt:3:15:3:22 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |
2+
| user.kt:3:26:3:28 | getF(...) | lib/lib/TestKt.class:0:0:0:0 | getF |

java/ql/integration-tests/all-platforms/kotlin/nested_generic_types/test.expected

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -99,41 +99,41 @@ callArgs
9999
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:41:15:67 | new MiddleManyParams<Float,Double>(...) | -2 |
100100
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:69:15:100 | InnerManyParams<Long,Short> | -3 |
101101
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:85:15:86 | 1 | 0 |
102-
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:91:15:99 | shortValue(...) | 1 |
103-
| KotlinUser.kt:15:91:15:99 | shortValue(...) | KotlinUser.kt:15:89:15:89 | 1 | -1 |
104-
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:19:17:19 | a | -1 |
105-
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:34:17:34 | 0 | 0 |
106-
| KotlinUser.kt:17:21:17:44 | returnsecond(...) | KotlinUser.kt:17:38:17:42 | hello | 1 |
107-
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:20 | a | -1 |
108-
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:22:18:50 | Character | -2 |
109-
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:35:18:35 | 0 | 0 |
110-
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:39:18:43 | hello | 1 |
111-
| KotlinUser.kt:18:22:18:50 | returnsecond(...) | KotlinUser.kt:18:47:18:49 | a | 2 |
112-
| KotlinUser.kt:19:21:19:31 | identity(...) | KotlinUser.kt:19:19:19:19 | b | -1 |
113-
| KotlinUser.kt:19:21:19:31 | identity(...) | KotlinUser.kt:19:30:19:30 | 5 | 0 |
114-
| KotlinUser.kt:20:23:20:39 | identity(...) | KotlinUser.kt:20:20:20:21 | b2 | -1 |
115-
| KotlinUser.kt:20:23:20:39 | identity(...) | KotlinUser.kt:20:33:20:37 | hello | 0 |
116-
| KotlinUser.kt:21:21:21:37 | identity(...) | KotlinUser.kt:21:19:21:19 | c | -1 |
117-
| KotlinUser.kt:21:21:21:37 | identity(...) | KotlinUser.kt:21:31:21:35 | world | 0 |
118-
| KotlinUser.kt:22:21:22:39 | identity(...) | KotlinUser.kt:22:19:22:19 | d | -1 |
119-
| KotlinUser.kt:22:21:22:39 | identity(...) | KotlinUser.kt:22:31:22:37 | goodbye | 0 |
120-
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:19:23:19 | e | -1 |
121-
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:33:23:33 | 1 | 0 |
122-
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:37:23:41 | hello | 1 |
123-
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:45:23:48 | 1.0 | 2 |
124-
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:51:23:53 | 1.0 | 3 |
125-
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:56:23:57 | 1 | 4 |
126-
| KotlinUser.kt:23:21:23:71 | returnSixth(...) | KotlinUser.kt:23:62:23:70 | shortValue(...) | 5 |
127-
| KotlinUser.kt:23:62:23:70 | shortValue(...) | KotlinUser.kt:23:60:23:60 | 1 | -1 |
102+
| KotlinUser.kt:15:69:15:100 | new InnerManyParams<Long,Short>(...) | KotlinUser.kt:15:89:15:99 | shortValue(...) | 1 |
103+
| KotlinUser.kt:15:89:15:99 | shortValue(...) | KotlinUser.kt:15:89:15:89 | 1 | -1 |
104+
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:19:17:19 | a | -1 |
105+
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:34:17:34 | 0 | 0 |
106+
| KotlinUser.kt:17:19:17:44 | returnsecond(...) | KotlinUser.kt:17:38:17:42 | hello | 1 |
107+
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:20 | a | -1 |
108+
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:20:18:50 | Character | -2 |
109+
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:35:18:35 | 0 | 0 |
110+
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:39:18:43 | hello | 1 |
111+
| KotlinUser.kt:18:20:18:50 | returnsecond(...) | KotlinUser.kt:18:47:18:49 | a | 2 |
112+
| KotlinUser.kt:19:19:19:31 | identity(...) | KotlinUser.kt:19:19:19:19 | b | -1 |
113+
| KotlinUser.kt:19:19:19:31 | identity(...) | KotlinUser.kt:19:30:19:30 | 5 | 0 |
114+
| KotlinUser.kt:20:20:20:39 | identity(...) | KotlinUser.kt:20:20:20:21 | b2 | -1 |
115+
| KotlinUser.kt:20:20:20:39 | identity(...) | KotlinUser.kt:20:33:20:37 | hello | 0 |
116+
| KotlinUser.kt:21:19:21:37 | identity(...) | KotlinUser.kt:21:19:21:19 | c | -1 |
117+
| KotlinUser.kt:21:19:21:37 | identity(...) | KotlinUser.kt:21:31:21:35 | world | 0 |
118+
| KotlinUser.kt:22:19:22:39 | identity(...) | KotlinUser.kt:22:19:22:19 | d | -1 |
119+
| KotlinUser.kt:22:19:22:39 | identity(...) | KotlinUser.kt:22:31:22:37 | goodbye | 0 |
120+
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:19:23:19 | e | -1 |
121+
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:33:23:33 | 1 | 0 |
122+
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:37:23:41 | hello | 1 |
123+
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:45:23:48 | 1.0 | 2 |
124+
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:51:23:53 | 1.0 | 3 |
125+
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:56:23:57 | 1 | 4 |
126+
| KotlinUser.kt:23:19:23:71 | returnSixth(...) | KotlinUser.kt:23:60:23:70 | shortValue(...) | 5 |
127+
| KotlinUser.kt:23:60:23:70 | shortValue(...) | KotlinUser.kt:23:60:23:60 | 1 | -1 |
128128
| KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | KotlinUser.kt:25:27:25:48 | OuterGeneric<String> | -3 |
129-
| KotlinUser.kt:25:50:25:69 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | -1 |
129+
| KotlinUser.kt:25:27:25:69 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:48 | new OuterGeneric<String>(...) | -1 |
130130
| KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | KotlinUser.kt:26:28:26:44 | OuterNotGeneric | -3 |
131-
| KotlinUser.kt:26:46:26:62 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | -1 |
131+
| KotlinUser.kt:26:28:26:62 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:44 | new OuterNotGeneric(...) | -1 |
132132
| KotlinUser.kt:28:15:28:43 | new TypeParamVisibility<String>(...) | KotlinUser.kt:28:15:28:43 | TypeParamVisibility<String> | -3 |
133-
| KotlinUser.kt:29:35:29:58 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:33 | tpv | -1 |
134-
| KotlinUser.kt:30:43:30:74 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:41 | tpv | -1 |
135-
| KotlinUser.kt:31:39:31:66 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:37 | tpv | -1 |
136-
| KotlinUser.kt:32:47:32:82 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:45 | tpv | -1 |
133+
| KotlinUser.kt:29:31:29:58 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:33 | tpv | -1 |
134+
| KotlinUser.kt:30:39:30:74 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:41 | tpv | -1 |
135+
| KotlinUser.kt:31:35:31:66 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:37 | tpv | -1 |
136+
| KotlinUser.kt:32:43:32:82 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:45 | tpv | -1 |
137137
genericTypes
138138
| extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | InnerGeneric | extlib.jar/extlib/OuterGeneric$InnerGeneric.class:0:0:0:0 | S |
139139
| 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
275275
| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility<> |
276276
| extlib.jar/extlib/TypeParamVisibility$VisibleBecauseInnerIndirectContainer.class:0:0:0:0 | VisibleBecauseInnerIndirectContainer<> | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | TypeParamVisibility<String> |
277277
javaKotlinCalleeAgreement
278-
| 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 |
279-
| 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 |
280-
| 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 |
281-
| 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 |
282-
| 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 |
283-
| 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 |
284-
| 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 |
285-
| JavaUser.java:24:60:24:108 | getInnerNotGeneric(...) | KotlinUser.kt:25:50:25:69 | getInnerNotGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric |
286-
| JavaUser.java:25:61:25:101 | getInnerGeneric(...) | KotlinUser.kt:26:46:26:62 | getInnerGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | getInnerGeneric |
287-
| JavaUser.java:28:83:28:110 | getVisibleBecauseInner(...) | KotlinUser.kt:29:35:29:58 | getVisibleBecauseInner(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner |
288-
| JavaUser.java:29:136:29:171 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:43:30:74 | getVisibleBecauseInnerIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect |
289-
| JavaUser.java:30:83:30:114 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:39:31:66 | getNotVisibleBecauseStatic(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic |
290-
| JavaUser.java:31:140:31:179 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:47:32:82 | getNotVisibleBecauseStaticIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect |
278+
| 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 |
279+
| 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 |
280+
| 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 |
281+
| 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 |
282+
| 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 |
283+
| 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 |
284+
| 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 |
285+
| JavaUser.java:24:60:24:108 | getInnerNotGeneric(...) | KotlinUser.kt:25:27:25:69 | getInnerNotGeneric(...) | extlib.jar/extlib/OuterGeneric.class:0:0:0:0 | getInnerNotGeneric |
286+
| JavaUser.java:25:61:25:101 | getInnerGeneric(...) | KotlinUser.kt:26:28:26:62 | getInnerGeneric(...) | extlib.jar/extlib/OuterNotGeneric.class:0:0:0:0 | getInnerGeneric |
287+
| JavaUser.java:28:83:28:110 | getVisibleBecauseInner(...) | KotlinUser.kt:29:31:29:58 | getVisibleBecauseInner(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInner |
288+
| JavaUser.java:29:136:29:171 | getVisibleBecauseInnerIndirect(...) | KotlinUser.kt:30:39:30:74 | getVisibleBecauseInnerIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getVisibleBecauseInnerIndirect |
289+
| JavaUser.java:30:83:30:114 | getNotVisibleBecauseStatic(...) | KotlinUser.kt:31:35:31:66 | getNotVisibleBecauseStatic(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStatic |
290+
| JavaUser.java:31:140:31:179 | getNotVisibleBecauseStaticIndirect(...) | KotlinUser.kt:32:43:32:82 | getNotVisibleBecauseStaticIndirect(...) | extlib.jar/extlib/TypeParamVisibility.class:0:0:0:0 | getNotVisibleBecauseStaticIndirect |
291291
javaKotlinConstructorAgreement
292292
| 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> |
293293
| 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> |
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
| User.java:5:5:5:34 | getKotlinVal(...) | getKotlinVal | String |
22
| test.kt:8:43:8:78 | with(...) | with | Function1<? super T,? extends R> |
33
| test.kt:8:43:8:78 | with(...) | with | T |
4-
| test.kt:8:68:8:76 | getKotlinVal(...) | getKotlinVal | String |
4+
| test.kt:8:55:8:76 | getKotlinVal(...) | getKotlinVal | String |

0 commit comments

Comments
 (0)