From e37d89b849c78ba1a1a52632eb4c806d3f09acf1 Mon Sep 17 00:00:00 2001 From: Anders Fugmann Date: Sat, 11 Jul 2026 01:46:59 +0200 Subject: [PATCH] Kotlin: converge default property-accessor locations onto the K2-native spans Synthesised and bare `get`/`set` accessors were extracted with different source locations depending on the frontend: val typedProp: Int = 3 // getTypedProp K1: 5:5:5:17 (val..name) K2: 5:5:5:22 (val..type) val defaultGetter = 7 get // getDefaultGetter K1: 19:5:19:21 (property head) K2: 20:13:20:15 (`get` keyword) Under K2 the extractor has no PSI back-mapping for these accessors (`getKtFile` returns null), so it cannot reproduce K1's property-name-end span; K2 instead falls back to the raw IR offsets. Rather than converge on a value K2 cannot produce, K1 is made to match the K2-native spans via the PSI: * a bare `get`/`set` keyword now points at the keyword token; and * a fully synthesised accessor now spans the property signature (`val`/`var` .. type annotation, or .. name when untyped), excluding the initialiser. Explicit-body accessors (`get() = 5`) are unaffected: they are located at their body and never take this override. Only K1 output changes; the test-kotlin2 (K2) expected files are unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../src/main/kotlin/KotlinFileExtractor.kt | 43 ++++++++++++++++--- .../annotation_classes/classes.expected | 4 +- .../annotations/jvmName/test.expected | 4 +- .../library-tests/comments/comments.expected | 2 +- .../library-tests/exprs/exprs.expected | 24 +++++------ .../library-tests/exprs/funcExprs.expected | 2 +- .../test.expected | 40 ++++++++--------- .../jvmstatic-annotation/test.expected | 4 +- .../library-tests/lateinit/test.expected | 6 +-- .../library-tests/methods/exprs.expected | 6 +-- .../library-tests/methods/methods.expected | 4 +- .../library-tests/methods/parameters.expected | 2 +- .../modifiers/modifiers.expected | 12 +++--- .../private-anonymous-types/test.expected | 6 +-- .../properties/properties.expected | 20 ++++----- .../reflection/reflection.expected | 18 ++++---- 16 files changed, 115 insertions(+), 82 deletions(-) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index d40a002d03b..c73b1749a27 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -54,6 +54,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.util.OperatorNameConventions import org.jetbrains.kotlin.psi.KtProperty +import org.jetbrains.kotlin.psi.KtPropertyAccessor import org.jetbrains.kotlin.psi.KtVariableDeclaration import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffset @@ -2697,11 +2698,13 @@ open class KotlinFileExtractor( val getter = p.getter val setter = p.setter - // Synthesised (DEFAULT_PROPERTY_ACCESSOR) getter and setter should point - // at the property head, not the initialiser or custom accessor body. + // Synthesised (DEFAULT_PROPERTY_ACCESSOR) getters and setters should + // match the span the K2 frontend emits natively (see + // getPsiBasedAccessorLocation): the keyword token for a bare `get`/`set`, + // or the property signature for a fully synthesised accessor. fun accessorOverride(f: IrFunction) = if (f.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR) - getPsiBasedAccessorLocation(p)?.let { OverriddenFunctionAttributes(sourceLoc = it) } + getPsiBasedAccessorLocation(p, f)?.let { OverriddenFunctionAttributes(sourceLoc = it) } else null if (getter == null) { @@ -2993,15 +2996,45 @@ open class KotlinFileExtractor( return tw.getLocation(declStart, declEnd) } - private fun getPsiBasedAccessorLocation(p: IrProperty): Label? { + /** + * Returns the PSI-based location for a synthesised (`DEFAULT_PROPERTY_ACCESSOR`) + * getter or setter, matching the span the K2 frontend emits natively. + * + * Under K2 the extractor has no PSI back-mapping for these accessors + * ([getKtFile] returns null), so it falls back to the raw IR offsets, which are: + * - for a *bare* accessor (an explicit `get`/`set` keyword with no body): the + * keyword token itself; and + * - for a fully *synthesised* accessor (no accessor written in source): the + * property signature from the `val`/`var` keyword through the type annotation + * (or the name identifier when there is no explicit type), excluding the + * initialiser. + * + * K2 cannot recover the property-name-end PSI location, so rather than converge + * on a value K2 cannot produce we converge K1 onto these K2-native spans. This + * helper returns null under K2 (where the raw offsets already produce them) and + * reproduces them from the PSI under K1. + */ + private fun getPsiBasedAccessorLocation(p: IrProperty, accessor: IrFunction): Label? { if (p.startOffset < 0 || p.endOffset < 0) return null val file = currentIrFile ?: return null val ktFile = getPsi2Ir()?.getKtFile(file) ?: return null val ktProperty = ktFile.findElementAt(p.startOffset) ?.let { leaf -> generateSequence(leaf) { it.parent }.filterIsInstance().firstOrNull() } ?: return null + val isGetter = p.getter?.symbol == accessor.symbol + val ktAccessor: KtPropertyAccessor? = if (isGetter) ktProperty.getter else ktProperty.setter + if (ktAccessor != null) { + // An explicit accessor with a body is located at its body elsewhere; only + // bare `get`/`set` keywords are handled here, pointing at the keyword token. + if (ktAccessor.hasBody()) return null + val keyword = ktAccessor.namePlaceholder + return tw.getLocation(keyword.startOffset, keyword.endOffset) + } + // Fully synthesised accessor: span the property signature, excluding the initialiser. val declStart = ktProperty.valOrVarKeyword.startOffset - val declEnd = ktProperty.nameIdentifier?.endOffset ?: ktProperty.valOrVarKeyword.endOffset + val declEnd = ktProperty.typeReference?.endOffset + ?: ktProperty.nameIdentifier?.endOffset + ?: ktProperty.valOrVarKeyword.endOffset return tw.getLocation(declStart, declEnd) } diff --git a/java/ql/test-kotlin1/library-tests/annotation_classes/classes.expected b/java/ql/test-kotlin1/library-tests/annotation_classes/classes.expected index a2aa8803618..e25403d894c 100644 --- a/java/ql/test-kotlin1/library-tests/annotation_classes/classes.expected +++ b/java/ql/test-kotlin1/library-tests/annotation_classes/classes.expected @@ -32,8 +32,8 @@ annotations | def.kt:41:5:41:12 | Annot0k | def.kt:42:5:42:19 | Z | def.kt:5:1:21:60 | Annot0k | | def.kt:45:1:45:8 | Annot0k | def.kt:46:1:51:1 | fn | def.kt:5:1:21:60 | Annot0k | | def.kt:46:21:46:28 | Annot0k | def.kt:46:21:46:39 | a | def.kt:5:1:21:60 | Annot0k | -| def.kt:54:1:54:12 | Annot0k | def.kt:57:1:57:5 | getP | def.kt:5:1:21:60 | Annot0k | -| def.kt:55:1:55:12 | Annot0k | def.kt:57:1:57:5 | setP | def.kt:5:1:21:60 | Annot0k | +| def.kt:54:1:54:12 | Annot0k | def.kt:57:1:57:19 | getP | def.kt:5:1:21:60 | Annot0k | +| def.kt:55:1:55:12 | Annot0k | def.kt:57:1:57:19 | setP | def.kt:5:1:21:60 | Annot0k | | def.kt:56:1:56:14 | Annot0k | def.kt:57:1:57:23 | p | def.kt:5:1:21:60 | Annot0k | | def.kt:59:5:59:21 | Annot0k | def.kt:59:5:59:28 | | def.kt:5:1:21:60 | Annot0k | | use.java:10:5:10:21 | Annot0j | use.java:14:18:14:18 | Z | Annot0j.java:1:19:1:25 | Annot0j | diff --git a/java/ql/test-kotlin1/library-tests/annotations/jvmName/test.expected b/java/ql/test-kotlin1/library-tests/annotations/jvmName/test.expected index f416038e335..b26dff9d334 100644 --- a/java/ql/test-kotlin1/library-tests/annotations/jvmName/test.expected +++ b/java/ql/test-kotlin1/library-tests/annotations/jvmName/test.expected @@ -1,8 +1,8 @@ | Test.java:2:17:2:17 | m | m | m | | test.kt:4:9:4:18 | getX_prop | getX_prop | getX | | test.kt:6:5:6:19 | getX | getX | getX | -| test.kt:10:5:10:9 | changeY | changeY | setY | -| test.kt:10:5:10:9 | y | y | getY | +| test.kt:10:5:10:14 | changeY | changeY | setY | +| test.kt:10:5:10:14 | y | y | getY | | test.kt:13:5:13:15 | method | method | fn | | test.kt:17:5:17:14 | p | p | p | | test.kt:18:23:18:32 | w | w | q | diff --git a/java/ql/test-kotlin1/library-tests/comments/comments.expected b/java/ql/test-kotlin1/library-tests/comments/comments.expected index 4fc28b2e267..955400b7c19 100644 --- a/java/ql/test-kotlin1/library-tests/comments/comments.expected +++ b/java/ql/test-kotlin1/library-tests/comments/comments.expected @@ -28,7 +28,7 @@ commentOwners | comments.kt:54:5:56:7 | /**\n * An init block comment\n */ | comments.kt:53:1:58:1 | InitBlock | | comments.kt:61:5:63:7 | /**\n * A prop comment\n */ | comments.kt:64:5:68:17 | prop | | comments.kt:65:9:67:11 | /**\n * An accessor comment\n */ | comments.kt:68:9:68:17 | getProp | -| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:70:9 | getL | +| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:70:20 | getL | | comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:76:10 | l | | comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:76:10 | l | | comments.kt:79:9:81:11 | /**\n * A local function comment\n */ | comments.kt:82:9:82:24 | localFn | diff --git a/java/ql/test-kotlin1/library-tests/exprs/exprs.expected b/java/ql/test-kotlin1/library-tests/exprs/exprs.expected index 30538c37c04..86be385e40b 100644 --- a/java/ql/test-kotlin1/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin1/library-tests/exprs/exprs.expected @@ -297,18 +297,18 @@ | delegatedProperties.kt:54:51:54:68 | KProperty | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:56:16:56:33 | ResourceDelegate | delegatedProperties.kt:54:14:57:5 | provideDelegate | TypeAccess | | delegatedProperties.kt:56:16:56:33 | new ResourceDelegate(...) | delegatedProperties.kt:54:14:57:5 | provideDelegate | ClassInstanceExpr | -| delegatedProperties.kt:60:1:60:15 | Unit | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:15 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:15 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:0:0:0:0 | | KtInitializerAssignExpr | -| delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:60:1:60:15 | setTopLevelInt | AssignExpr | -| delegatedProperties.kt:60:1:60:24 | | delegatedProperties.kt:60:1:60:15 | setTopLevelInt | VarAccess | +| delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | AssignExpr | +| delegatedProperties.kt:60:1:60:24 | | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | VarAccess | | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:15 | getTopLevelInt | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:15 | setTopLevelInt | TypeAccess | +| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:20 | getTopLevelInt | TypeAccess | +| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | TypeAccess | | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:0:0:0:0 | | VarAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:15 | getTopLevelInt | VarAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:15 | setTopLevelInt | VarAccess | +| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:20 | getTopLevelInt | VarAccess | +| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | VarAccess | | delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:24:60:24 | 0 | delegatedProperties.kt:0:0:0:0 | | IntegerLiteral | | delegatedProperties.kt:62:25:62:48 | ...=... | delegatedProperties.kt:62:24:62:49 | ClassWithDelegate | KtInitializerAssignExpr | @@ -1557,12 +1557,12 @@ | exprs.kt:195:16:197:9 | | exprs.kt:193:13:198:5 | getObject | StmtExpr | | exprs.kt:195:16:197:9 | Interface1 | exprs.kt:193:13:198:5 | getObject | TypeAccess | | exprs.kt:195:16:197:9 | new (...) | exprs.kt:193:13:198:5 | getObject | ClassInstanceExpr | -| exprs.kt:196:13:196:18 | String | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:196:13:196:26 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:196:13:196:49 | ...=... | exprs.kt:195:16:197:9 | | KtInitializerAssignExpr | | exprs.kt:196:13:196:49 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:196:13:196:49 | a3 | exprs.kt:195:16:197:9 | | VarAccess | -| exprs.kt:196:13:196:49 | this | exprs.kt:196:13:196:18 | getA3 | ThisAccess | -| exprs.kt:196:13:196:49 | this.a3 | exprs.kt:196:13:196:18 | getA3 | VarAccess | +| exprs.kt:196:13:196:49 | this | exprs.kt:196:13:196:26 | getA3 | ThisAccess | +| exprs.kt:196:13:196:49 | this.a3 | exprs.kt:196:13:196:26 | getA3 | VarAccess | | exprs.kt:196:31:196:32 | getA1(...) | exprs.kt:195:16:197:9 | | MethodCall | | exprs.kt:196:31:196:32 | this | exprs.kt:195:16:197:9 | | ThisAccess | | exprs.kt:196:31:196:37 | ... + ... | exprs.kt:195:16:197:9 | | AddExpr | diff --git a/java/ql/test-kotlin1/library-tests/exprs/funcExprs.expected b/java/ql/test-kotlin1/library-tests/exprs/funcExprs.expected index 4de14de09b6..420d281e746 100644 --- a/java/ql/test-kotlin1/library-tests/exprs/funcExprs.expected +++ b/java/ql/test-kotlin1/library-tests/exprs/funcExprs.expected @@ -187,7 +187,7 @@ anon_class_member_modifiers | delegatedProperties.kt:87:34:87:46 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:87:34:87:46 | get | override, public | | delegatedProperties.kt:87:34:87:46 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:87:34:87:46 | invoke | override, public | | delegatedProperties.kt:87:34:87:46 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:87:34:87:46 | set | override, public | -| exprs.kt:195:16:197:9 | new Interface1(...) { ... } | exprs.kt:196:13:196:18 | getA3 | final, public | +| exprs.kt:195:16:197:9 | new Interface1(...) { ... } | exprs.kt:196:13:196:26 | getA3 | final, public | | funcExprs.kt:22:26:22:33 | new Function0(...) { ... } | funcExprs.kt:22:26:22:33 | invoke | final, override, public | | funcExprs.kt:23:26:23:33 | new Function0(...) { ... } | funcExprs.kt:23:26:23:33 | invoke | final, override, public | | funcExprs.kt:24:26:24:33 | new Function0(...) { ... } | funcExprs.kt:24:26:24:33 | invoke | final, override, public | diff --git a/java/ql/test-kotlin1/library-tests/generic-selective-extraction/test.expected b/java/ql/test-kotlin1/library-tests/generic-selective-extraction/test.expected index c3e3708c377..05c17cb5811 100644 --- a/java/ql/test-kotlin1/library-tests/generic-selective-extraction/test.expected +++ b/java/ql/test-kotlin1/library-tests/generic-selective-extraction/test.expected @@ -12,11 +12,11 @@ | Test.java:13:7:13:10 | User | Test.java:13:7:13:10 | User | | Test.java:13:7:13:10 | User | Test.java:15:22:15:25 | test | | Test.kt:1:1:8:1 | TestKt | Test.kt:1:1:8:1 | TestKt | -| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:11 | getField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:11 | setField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:15 | getField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:15 | setField | | Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | field | -| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:14 | getRawField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:14 | setRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:18 | getRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:18 | setRawField | | Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:25 | rawField | | Test.kt:1:1:8:1 | TestKt | Test.kt:6:3:6:22 | method | | Test.kt:10:1:10:20 | FieldUsedKt | Test.kt:10:1:10:20 | FieldUsedKt | @@ -26,27 +26,27 @@ | Test.kt:14:1:14:22 | NeitherUsedKt | Test.kt:14:1:14:22 | NeitherUsedKt | | Test.kt:16:1:27:1 | UserKt | Test.kt:16:1:27:1 | UserKt | | Test.kt:16:1:27:1 | UserKt | Test.kt:18:3:25:3 | test | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | getField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | setField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | getRawField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | setRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:15 | getField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:15 | setField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:18 | getRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:18 | setRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | method | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | getField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | setField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | getRawField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | setRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:15 | getField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:15 | setField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:18 | getRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:18 | setRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | method | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | getField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | setField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | getRawField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | setRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:15 | getField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:15 | setField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:18 | getRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:18 | setRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | method | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | getField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | setField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | getRawField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | setRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:15 | getField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:15 | setField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:18 | getRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:18 | setRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | method | diff --git a/java/ql/test-kotlin1/library-tests/jvmstatic-annotation/test.expected b/java/ql/test-kotlin1/library-tests/jvmstatic-annotation/test.expected index 59eed7c37f3..b286f4766bd 100644 --- a/java/ql/test-kotlin1/library-tests/jvmstatic-annotation/test.expected +++ b/java/ql/test-kotlin1/library-tests/jvmstatic-annotation/test.expected @@ -10,8 +10,8 @@ staticMembers | test.kt:9:1:29:1 | HasCompanion | test.kt:25:18:25:60 | setPropWithStaticSetter | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:31:1:47:1 | INSTANCE | Field | | test.kt:31:1:47:1 | NonCompanion | test.kt:33:14:33:69 | staticMethod | Method | -| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:27 | getStaticProp | Method | -| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:27 | setStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:35 | getStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:35 | setStaticProp | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:40:16:40:43 | getPropWithStaticGetter | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:45:16:45:58 | setPropWithStaticSetter | Method | #select diff --git a/java/ql/test-kotlin1/library-tests/lateinit/test.expected b/java/ql/test-kotlin1/library-tests/lateinit/test.expected index 7e8f9740458..4a54d9d2858 100644 --- a/java/ql/test-kotlin1/library-tests/lateinit/test.expected +++ b/java/ql/test-kotlin1/library-tests/lateinit/test.expected @@ -1,8 +1,8 @@ | test.kt:4:15:4:26 | println(...) | file:///ConsoleKt.class:0:0:0:0 | println | -| test.kt:9:9:9:13 | getTest0$private(...) | test.kt:2:22:2:30 | getTest0$private | +| test.kt:9:9:9:13 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private | | 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:30 | getTest0$private | -| test.kt:10:13:10:23 | setTest0$private(...) | test.kt:2:22:2:30 | setTest0$private | +| 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:13:10:37 | isInitialized(...) | file:///LateinitKt.class:0:0:0:0 | isInitialized | | test.kt:14:9:14:17 | f(...) | test.kt:4:5:4:26 | f | diff --git a/java/ql/test-kotlin1/library-tests/methods/exprs.expected b/java/ql/test-kotlin1/library-tests/methods/exprs.expected index c75e43ad3e6..21774d6e4f5 100644 --- a/java/ql/test-kotlin1/library-tests/methods/exprs.expected +++ b/java/ql/test-kotlin1/library-tests/methods/exprs.expected @@ -1,6 +1,6 @@ -| clinit.kt:3:1:3:15 | Unit | TypeAccess | -| clinit.kt:3:1:3:15 | int | TypeAccess | -| clinit.kt:3:1:3:15 | int | TypeAccess | +| clinit.kt:3:1:3:20 | Unit | TypeAccess | +| clinit.kt:3:1:3:20 | int | TypeAccess | +| clinit.kt:3:1:3:20 | int | TypeAccess | | clinit.kt:3:1:3:24 | ...=... | AssignExpr | | clinit.kt:3:1:3:24 | ...=... | KtInitializerAssignExpr | | clinit.kt:3:1:3:24 | | VarAccess | diff --git a/java/ql/test-kotlin1/library-tests/methods/methods.expected b/java/ql/test-kotlin1/library-tests/methods/methods.expected index 3412de8cdfb..971bb627436 100644 --- a/java/ql/test-kotlin1/library-tests/methods/methods.expected +++ b/java/ql/test-kotlin1/library-tests/methods/methods.expected @@ -1,7 +1,7 @@ methods | clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:0:0:0:0 | | () | static | Compiler generated | -| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:15 | getTopLevelInt | getTopLevelInt() | final, public, static | Compiler generated | -| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:15 | setTopLevelInt | setTopLevelInt(int) | final, public, static | Compiler generated | +| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:20 | getTopLevelInt | getTopLevelInt() | final, public, static | Compiler generated | +| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:20 | setTopLevelInt | setTopLevelInt(int) | final, public, static | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | component1 | component1() | final, public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | component2 | component2() | final, public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | copy | copy(int,java.lang.String) | final, public | Compiler generated | diff --git a/java/ql/test-kotlin1/library-tests/methods/parameters.expected b/java/ql/test-kotlin1/library-tests/methods/parameters.expected index 7e97ec1f362..0bf3cbad19f 100644 --- a/java/ql/test-kotlin1/library-tests/methods/parameters.expected +++ b/java/ql/test-kotlin1/library-tests/methods/parameters.expected @@ -1,4 +1,4 @@ -| clinit.kt:3:1:3:15 | setTopLevelInt | clinit.kt:3:1:3:15 | | 0 | +| clinit.kt:3:1:3:20 | setTopLevelInt | clinit.kt:3:1:3:20 | | 0 | | dataClass.kt:0:0:0:0 | copy | dataClass.kt:1:22:1:31 | x | 0 | | dataClass.kt:0:0:0:0 | copy | dataClass.kt:1:34:1:46 | y | 1 | | dataClass.kt:0:0:0:0 | copy$default | dataClass.kt:0:0:0:0 | p0 | 0 | diff --git a/java/ql/test-kotlin1/library-tests/modifiers/modifiers.expected b/java/ql/test-kotlin1/library-tests/modifiers/modifiers.expected index 1b06e7aacfa..37d6d8a7bf0 100644 --- a/java/ql/test-kotlin1/library-tests/modifiers/modifiers.expected +++ b/java/ql/test-kotlin1/library-tests/modifiers/modifiers.expected @@ -23,8 +23,8 @@ | modifiers.kt:7:5:9:5 | Nested | Class | final | | modifiers.kt:7:5:9:5 | Nested | Class | protected | | modifiers.kt:7:15:9:5 | Nested | Constructor | public | -| modifiers.kt:8:16:8:20 | getE | Method | final | -| modifiers.kt:8:16:8:20 | getE | Method | public | +| modifiers.kt:8:16:8:25 | getE | Method | final | +| modifiers.kt:8:16:8:25 | getE | Method | public | | modifiers.kt:8:16:8:29 | e | Field | final | | modifiers.kt:8:16:8:29 | e | Field | private | | modifiers.kt:8:16:8:29 | e | Property | public | @@ -75,10 +75,10 @@ | modifiers.kt:35:1:41:1 | LateInit | Class | final | | modifiers.kt:35:1:41:1 | LateInit | Class | public | | modifiers.kt:35:8:41:1 | LateInit | Constructor | public | -| modifiers.kt:36:22:36:30 | getTest0$private | Method | final | -| modifiers.kt:36:22:36:30 | getTest0$private | Method | private | -| modifiers.kt:36:22:36:30 | setTest0$private | Method | final | -| modifiers.kt:36:22:36:30 | setTest0$private | Method | private | +| modifiers.kt:36:22:36:40 | getTest0$private | Method | final | +| modifiers.kt:36:22:36:40 | getTest0$private | Method | private | +| modifiers.kt:36:22:36:40 | setTest0$private | Method | final | +| modifiers.kt:36:22:36:40 | setTest0$private | Method | private | | modifiers.kt:36:22:36:40 | test0 | Field | private | | modifiers.kt:36:22:36:40 | test0 | Property | lateinit | | modifiers.kt:36:22:36:40 | test0 | Property | private | diff --git a/java/ql/test-kotlin1/library-tests/private-anonymous-types/test.expected b/java/ql/test-kotlin1/library-tests/private-anonymous-types/test.expected index a9ccfc991fd..83012239c7c 100644 --- a/java/ql/test-kotlin1/library-tests/private-anonymous-types/test.expected +++ b/java/ql/test-kotlin1/library-tests/private-anonymous-types/test.expected @@ -11,11 +11,11 @@ | file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | getPrivateAnonType$private | | file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | privateUser | | file:///!unknown-binary-location/A.class:0:0:0:0 | A | test.kt:9:3:9:14 | getAnonType | -| file:///!unknown-binary-location/If.class:0:0:0:0 | If | test.kt:3:3:3:7 | getX | -| file:///!unknown-binary-location/If.class:0:0:0:0 | If | test.kt:3:3:3:7 | getX | +| file:///!unknown-binary-location/If.class:0:0:0:0 | If | test.kt:3:3:3:11 | getX | +| file:///!unknown-binary-location/If.class:0:0:0:0 | If | test.kt:3:3:3:11 | getX | | other.kt:1:1:1:34 | Ext | other.kt:1:1:1:34 | Ext | | test.kt:0:0:0:0 | TestKt | test.kt:24:1:24:38 | user | -| test.kt:1:1:5:1 | If | test.kt:3:3:3:7 | getX | +| test.kt:1:1:5:1 | If | test.kt:3:3:3:11 | getX | | test.kt:7:1:22:1 | A | test.kt:7:16:7:21 | A | | test.kt:7:1:22:1 | A | test.kt:9:3:9:14 | getAnonType | | test.kt:7:1:22:1 | A | test.kt:9:3:11:3 | anonType | diff --git a/java/ql/test-kotlin1/library-tests/properties/properties.expected b/java/ql/test-kotlin1/library-tests/properties/properties.expected index 7b650d982b1..705427f13a8 100644 --- a/java/ql/test-kotlin1/library-tests/properties/properties.expected +++ b/java/ql/test-kotlin1/library-tests/properties/properties.expected @@ -3,21 +3,21 @@ | properties.kt:2:53:2:83 | mutableConstructorProp | properties.kt:2:53:2:83 | getMutableConstructorProp | properties.kt:2:53:2:83 | setMutableConstructorProp | properties.kt:2:53:2:83 | mutableConstructorProp | public | | properties.kt:3:5:3:25 | modifiableInt | properties.kt:3:5:3:21 | getModifiableInt | properties.kt:3:5:3:21 | setModifiableInt | properties.kt:3:5:3:25 | modifiableInt | public | | properties.kt:4:5:4:24 | immutableInt | properties.kt:4:5:4:20 | getImmutableInt | file://:0:0:0:0 | | properties.kt:4:5:4:24 | immutableInt | public | -| properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:17 | getTypedProp | file://:0:0:0:0 | | properties.kt:5:5:5:26 | typedProp | public | -| properties.kt:6:14:6:38 | abstractTypeProp | properties.kt:6:14:6:33 | getAbstractTypeProp | file://:0:0:0:0 | | file://:0:0:0:0 | | public | -| properties.kt:7:5:7:30 | initialisedInInit | properties.kt:7:5:7:25 | getInitialisedInInit | file://:0:0:0:0 | | properties.kt:7:5:7:30 | initialisedInInit | public | +| properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:22 | getTypedProp | file://:0:0:0:0 | | properties.kt:5:5:5:26 | typedProp | public | +| properties.kt:6:14:6:38 | abstractTypeProp | properties.kt:6:14:6:38 | getAbstractTypeProp | file://:0:0:0:0 | | file://:0:0:0:0 | | public | +| properties.kt:7:5:7:30 | initialisedInInit | properties.kt:7:5:7:30 | getInitialisedInInit | file://:0:0:0:0 | | properties.kt:7:5:7:30 | initialisedInInit | public | | properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:25 | getUseConstructorArg | file://:0:0:0:0 | | properties.kt:11:5:11:40 | useConstructorArg | public | | properties.kt:12:5:13:21 | five | properties.kt:13:13:13:21 | getFive | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:14:5:15:21 | six | properties.kt:15:13:15:21 | getSix | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:16:5:18:40 | getSet | properties.kt:17:13:17:33 | getGetSet | properties.kt:18:13:18:40 | setGetSet | file://:0:0:0:0 | | public | -| properties.kt:19:5:20:15 | defaultGetter | properties.kt:19:5:19:21 | getDefaultGetter | file://:0:0:0:0 | | properties.kt:19:5:20:15 | defaultGetter | public | -| properties.kt:21:5:22:15 | varDefaultGetter | properties.kt:21:5:21:24 | getVarDefaultGetter | properties.kt:21:5:21:24 | setVarDefaultGetter | properties.kt:21:5:22:15 | varDefaultGetter | public | -| properties.kt:23:5:24:15 | varDefaultSetter | properties.kt:23:5:23:24 | getVarDefaultSetter | properties.kt:23:5:23:24 | setVarDefaultSetter | properties.kt:23:5:24:15 | varDefaultSetter | public | -| properties.kt:25:5:27:15 | varDefaultGetterSetter | properties.kt:25:5:25:30 | getVarDefaultGetterSetter | properties.kt:25:5:25:30 | setVarDefaultGetterSetter | properties.kt:25:5:27:15 | varDefaultGetterSetter | public | +| properties.kt:19:5:20:15 | defaultGetter | properties.kt:20:13:20:15 | getDefaultGetter | file://:0:0:0:0 | | properties.kt:19:5:20:15 | defaultGetter | public | +| properties.kt:21:5:22:15 | varDefaultGetter | properties.kt:22:13:22:15 | getVarDefaultGetter | properties.kt:21:5:21:24 | setVarDefaultGetter | properties.kt:21:5:22:15 | varDefaultGetter | public | +| properties.kt:23:5:24:15 | varDefaultSetter | properties.kt:23:5:23:24 | getVarDefaultSetter | properties.kt:24:13:24:15 | setVarDefaultSetter | properties.kt:23:5:24:15 | varDefaultSetter | public | +| properties.kt:25:5:27:15 | varDefaultGetterSetter | properties.kt:26:13:26:15 | getVarDefaultGetterSetter | properties.kt:27:13:27:15 | setVarDefaultGetterSetter | properties.kt:25:5:27:15 | varDefaultGetterSetter | public | | properties.kt:28:5:29:22 | overrideGetter | properties.kt:29:13:29:22 | getOverrideGetter | properties.kt:28:5:28:22 | setOverrideGetter | properties.kt:28:5:29:22 | overrideGetter | public | | properties.kt:30:5:31:29 | overrideGetterUseField | properties.kt:31:13:31:29 | getOverrideGetterUseField | properties.kt:30:5:30:30 | setOverrideGetterUseField | properties.kt:30:5:31:29 | overrideGetterUseField | public | | properties.kt:32:5:33:29 | useField | properties.kt:33:13:33:29 | getUseField | file://:0:0:0:0 | | properties.kt:32:5:33:29 | useField | public | -| properties.kt:34:14:34:36 | lateInitVar | properties.kt:34:14:34:28 | getLateInitVar | properties.kt:34:14:34:28 | setLateInitVar | properties.kt:34:14:34:36 | lateInitVar | lateinit, public | +| properties.kt:34:14:34:36 | lateInitVar | properties.kt:34:14:34:36 | getLateInitVar | properties.kt:34:14:34:36 | setLateInitVar | properties.kt:34:14:34:36 | lateInitVar | lateinit, public | | properties.kt:35:13:35:32 | privateProp | properties.kt:35:13:35:27 | getPrivateProp$private | file://:0:0:0:0 | | properties.kt:35:13:35:32 | privateProp | private | | properties.kt:36:15:36:36 | protectedProp | properties.kt:36:15:36:31 | getProtectedProp | file://:0:0:0:0 | | properties.kt:36:15:36:36 | protectedProp | protected | | properties.kt:37:12:37:30 | publicProp | properties.kt:37:12:37:25 | getPublicProp | file://:0:0:0:0 | | properties.kt:37:12:37:30 | publicProp | public | @@ -26,8 +26,8 @@ | properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:12 | getProp | file://:0:0:0:0 | | properties.kt:70:5:70:16 | prop | public | | properties.kt:78:1:79:13 | x | properties.kt:79:5:79:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:80:1:81:13 | x | properties.kt:81:5:81:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | -| properties.kt:84:13:84:29 | data | properties.kt:84:13:84:20 | getData$private | properties.kt:84:13:84:20 | setData$private | properties.kt:84:13:84:29 | data | private | -| properties.kt:92:13:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:13:92:20 | setData$private | properties.kt:92:13:93:18 | data | private | +| properties.kt:84:13:84:29 | data | properties.kt:84:13:84:25 | getData$private | properties.kt:84:13:84:25 | setData$private | properties.kt:84:13:84:29 | data | private | +| properties.kt:92:13:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:13:92:25 | setData$private | properties.kt:92:13:93:18 | data | private | fieldDeclarations | properties.kt:2:27:2:50 | int constructorProp; | properties.kt:2:27:2:50 | constructorProp | 0 | | properties.kt:2:53:2:83 | int mutableConstructorProp; | properties.kt:2:53:2:83 | mutableConstructorProp | 0 | diff --git a/java/ql/test-kotlin1/library-tests/reflection/reflection.expected b/java/ql/test-kotlin1/library-tests/reflection/reflection.expected index 20a9e6fc7a1..57372d05d5e 100644 --- a/java/ql/test-kotlin1/library-tests/reflection/reflection.expected +++ b/java/ql/test-kotlin1/library-tests/reflection/reflection.expected @@ -59,10 +59,10 @@ functionReferences | reflection.kt:154:33:154:61 | ...::... | reflection.kt:154:33:154:61 | invoke | reflection.kt:154:33:154:61 | extTakesOptionalParam | | reflection.kt:162:25:162:45 | ...::... | reflection.kt:162:25:162:45 | invoke | reflection.kt:162:25:162:45 | | propertyGetReferences -| reflection.kt:10:38:10:42 | ...::... | reflection.kt:10:38:10:42 | get | reflection.kt:33:9:33:14 | getP0 | -| reflection.kt:15:35:15:41 | ...::... | reflection.kt:15:35:15:41 | get | reflection.kt:33:9:33:14 | getP0 | -| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | get | reflection.kt:34:9:34:14 | getP1 | -| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | get | reflection.kt:34:9:34:14 | getP1 | +| reflection.kt:10:38:10:42 | ...::... | reflection.kt:10:38:10:42 | get | reflection.kt:33:9:33:19 | getP0 | +| reflection.kt:15:35:15:41 | ...::... | reflection.kt:15:35:15:41 | get | reflection.kt:33:9:33:19 | getP0 | +| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | get | reflection.kt:34:9:34:19 | getP1 | +| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | get | reflection.kt:34:9:34:19 | getP1 | | reflection.kt:50:13:50:28 | ...::... | reflection.kt:50:13:50:28 | get | reflection.kt:47:5:47:28 | getLastChar | | reflection.kt:51:13:51:28 | ...::... | reflection.kt:51:13:51:28 | get | reflection.kt:47:5:47:28 | getLastChar | | reflection.kt:67:17:67:32 | ...::... | reflection.kt:67:17:67:32 | get | file:///Class1$Generic.class:0:0:0:0 | getP2 | @@ -73,8 +73,8 @@ propertyFieldReferences | reflection.kt:71:17:71:34 | ...::... | reflection.kt:71:17:71:34 | get | file:///modules/java.base/java/lang/Integer.class:0:0:0:0 | MAX_VALUE | | reflection.kt:72:17:72:35 | ...::... | reflection.kt:72:17:72:35 | get | file:///modules/java.desktop/java/awt/Rectangle.class:0:0:0:0 | height | propertySetReferences -| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | set | reflection.kt:34:9:34:14 | setP1 | -| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | set | reflection.kt:34:9:34:14 | setP1 | +| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | set | reflection.kt:34:9:34:19 | setP1 | +| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | set | reflection.kt:34:9:34:19 | setP1 | | reflection.kt:67:17:67:32 | ...::... | reflection.kt:67:17:67:32 | set | file:///Class1$Generic.class:0:0:0:0 | setP2 | | reflection.kt:68:17:68:34 | ...::... | reflection.kt:68:17:68:34 | set | file:///Class1$Generic.class:0:0:0:0 | setP2 | | reflection.kt:109:17:109:27 | ...::... | reflection.kt:109:17:109:27 | set | reflection.kt:105:18:105:31 | setProp1 | @@ -299,9 +299,9 @@ compGenerated | reflection.kt:21:44:21:50 | new Function2(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:22:42:22:48 | new KMutableProperty0(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:24:46:24:64 | new Function1,Boolean>(...) { ... } | The class around a local function, a lambda, or a function reference | -| reflection.kt:33:9:33:14 | getP0 | Default property accessor | -| reflection.kt:34:9:34:14 | getP1 | Default property accessor | -| reflection.kt:34:9:34:14 | setP1 | Default property accessor | +| reflection.kt:33:9:33:19 | getP0 | Default property accessor | +| reflection.kt:34:9:34:19 | getP1 | Default property accessor | +| reflection.kt:34:9:34:19 | setP1 | Default property accessor | | reflection.kt:50:13:50:28 | new KProperty1(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:51:13:51:28 | new KProperty0(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:60:17:60:32 | new Function2,Integer,String>(...) { ... } | The class around a local function, a lambda, or a function reference |