From 08aad903462040ae251b715dad6f2c187d9d0c59 Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Fri, 25 Apr 2025 14:55:15 +0100
Subject: [PATCH 01/18] Add 2.2.0-Beta1 deps

---
 java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar     | 3 +++
 .../deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar            | 3 +++
 java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar       | 3 +++
 3 files changed, 9 insertions(+)
 create mode 100644 java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar
 create mode 100644 java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar
 create mode 100644 java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar

diff --git a/java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar b/java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar
new file mode 100644
index 000000000000..616f8fa27016
--- /dev/null
+++ b/java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5cabb8d9f7621865fb0300773bd0cb6dcd91412d0026342c6aacdf23bdb7cf0b
+size 57574890
diff --git a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar
new file mode 100644
index 000000000000..65c3079c09cd
--- /dev/null
+++ b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:046daac99684ac0fbe3f8c9780651192fb23061a27b72f1e948c25d160d7b147
+size 56134176
diff --git a/java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar b/java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar
new file mode 100644
index 000000000000..bd02764d8d83
--- /dev/null
+++ b/java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:51aefa2b8d09b2d32cd65056a0f1485556447c764574115981474fa9716a124a
+size 1730638

From abea647bb1a6b984ef0c586ec26fda92e6b12274 Mon Sep 17 00:00:00 2001
From: Paolo Tranquilli <redsun82@gihub.com>
Date: Fri, 25 Apr 2025 17:18:09 +0200
Subject: [PATCH 02/18] Bazel: update `rules_kotlin` to 2.1.3

---
 MODULE.bazel                                  |  2 +-
 .../rules_kotlin/2.1.3-codeql.1/MODULE.bazel  | 35 +++++++++++++++++++
 .../codeql_add_language_version_option.patch  | 32 +++++++++++++++++
 .../patches/codeql_do_not_emit_jdeps.patch    | 16 +++++++++
 .../rules_kotlin/2.1.3-codeql.1/source.json   |  9 +++++
 .../modules/rules_kotlin/metadata.json        |  1 +
 6 files changed, 94 insertions(+), 1 deletion(-)
 create mode 100644 misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/MODULE.bazel
 create mode 100644 misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_add_language_version_option.patch
 create mode 100644 misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_do_not_emit_jdeps.patch
 create mode 100644 misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json

diff --git a/MODULE.bazel b/MODULE.bazel
index ae00bca4390d..7e8e36b53092 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -24,7 +24,7 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1")
 bazel_dep(name = "abseil-cpp", version = "20240116.1", repo_name = "absl")
 bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json")
 bazel_dep(name = "fmt", version = "10.0.0")
-bazel_dep(name = "rules_kotlin", version = "2.0.0-codeql.1")
+bazel_dep(name = "rules_kotlin", version = "2.1.3-codeql.1")
 bazel_dep(name = "gazelle", version = "0.40.0")
 bazel_dep(name = "rules_dotnet", version = "0.17.4")
 bazel_dep(name = "googletest", version = "1.14.0.bcr.1")
diff --git a/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/MODULE.bazel
new file mode 100644
index 000000000000..41bef52cf9f6
--- /dev/null
+++ b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/MODULE.bazel
@@ -0,0 +1,35 @@
+module(
+    name = "rules_kotlin",
+    version = "2.1.3-codeql.1",
+    compatibility_level = 1,
+    repo_name = "rules_kotlin",
+)
+
+bazel_dep(name = "platforms", version = "0.0.11")
+bazel_dep(name = "bazel_skylib", version = "1.7.1")
+bazel_dep(name = "rules_java", version = "7.2.0")
+bazel_dep(name = "rules_python", version = "0.23.1")
+bazel_dep(name = "rules_cc", version = "0.0.8")
+bazel_dep(name = "rules_android", version = "0.1.1")
+
+rules_kotlin_extensions = use_extension(
+    "//src/main/starlark/core/repositories:bzlmod_setup.bzl",
+    "rules_kotlin_extensions",
+)
+use_repo(
+    rules_kotlin_extensions,
+    "com_github_google_ksp",
+    "com_github_jetbrains_kotlin",
+    "com_github_pinterest_ktlint",
+    "kotlinx_serialization_core_jvm",
+    "kotlinx_serialization_json",
+    "kotlinx_serialization_json_jvm",
+)
+
+register_toolchains("//kotlin/internal:default_toolchain")
+
+# TODO(bencodes) We should be able to remove this once rules_android has rolled out official Bzlmod support
+remote_android_extensions = use_extension("@bazel_tools//tools/android:android_extensions.bzl", "remote_android_tools_extensions")
+use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools")
+
+bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
diff --git a/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_add_language_version_option.patch b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_add_language_version_option.patch
new file mode 100644
index 000000000000..b0bf85d4faef
--- /dev/null
+++ b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_add_language_version_option.patch
@@ -0,0 +1,32 @@
+diff --git a/src/main/starlark/core/options/opts.kotlinc.bzl b/src/main/starlark/core/options/opts.kotlinc.bzl
+index 76df826..ef2d6ca 100644
+--- a/src/main/starlark/core/options/opts.kotlinc.bzl
++++ b/src/main/starlark/core/options/opts.kotlinc.bzl
+@@ -33,6 +33,11 @@ def _map_jdk_release_to_flag(version):
+         return None
+     return ["-Xjdk-release=%s" % version]
+ 
++def _map_language_version_to_flag(version):
++    if not version:
++        return None
++    return ["-language-version=%s" % version, "-api-version=%s" % version]
++
+ _KOPTS_ALL = {
+     "warn": struct(
+         args = dict(
+@@ -429,6 +434,15 @@ _KOPTS_ALL = {
+         value_to_flag = None,
+         map_value_to_flag = _map_jdk_release_to_flag,
+     ),
++    "language_version": struct(
++        args = dict(
++            default = "1.9",
++            doc = "-language-version",
++        ),
++        type = attr.string,
++        value_to_flag = None,
++        map_value_to_flag = _map_language_version_to_flag,
++    ),
+ }
+ 
+ def _merge(key, rule_defined):
diff --git a/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_do_not_emit_jdeps.patch b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_do_not_emit_jdeps.patch
new file mode 100644
index 000000000000..380c837d06a4
--- /dev/null
+++ b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_do_not_emit_jdeps.patch
@@ -0,0 +1,16 @@
+Emitting jdeps is broken for the 2.0.0 kotlin extractor, and we don't need those files.
+Patching it here rather than passing `--@rules_kotlin//kotlin/settings:jvm_emit_jdeps=false`
+allows us to not have to specify that option (and therefore pull in `rules_kotlin`) in `semmle-code`.
+diff --git a/kotlin/settings/BUILD.bazel b/kotlin/settings/BUILD.bazel
+index 2c93c11..f352b80 100644
+--- a/kotlin/settings/BUILD.bazel
++++ b/kotlin/settings/BUILD.bazel
+@@ -25,7 +25,7 @@ release_archive(
+ # Flag that controls the emission of jdeps files during kotlin jvm compilation.
+ bool_flag(
+     name = "jvm_emit_jdeps",
+-    build_setting_default = True,  # Upstream default behavior
++    build_setting_default = False,
+     visibility = ["//visibility:public"],
+ )
+ 
diff --git a/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json
new file mode 100644
index 000000000000..8abac8eb4bd1
--- /dev/null
+++ b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json
@@ -0,0 +1,9 @@
+{
+    "integrity": "sha256-4USKVrJGJAeyaI3qht9cN1s2oJkb1HjC3dlMlxaBJeI=",
+    "url": "https://github.com/bazelbuild/rules_kotlin/releases/download/v2.1.3/rules_kotlin-v2.1.3.tar.gz",
+    "patches": {
+        "codeql_do_not_emit_jdeps.patch": "sha256-1ir4Aio1SICxnj1wafQ0GefT/m7bwn2n+SQwq19V3A8=",
+        "codeql_add_language_version_option.patch": "sha256-F7RthnrO6kJlCNcQ76L1Utqll2OwyeFZ/HmT82NwgB4="
+    },
+    "patch_strip": 1
+}
diff --git a/misc/bazel/registry/modules/rules_kotlin/metadata.json b/misc/bazel/registry/modules/rules_kotlin/metadata.json
index ac259b2e729a..3e11b7df8202 100644
--- a/misc/bazel/registry/modules/rules_kotlin/metadata.json
+++ b/misc/bazel/registry/modules/rules_kotlin/metadata.json
@@ -21,6 +21,7 @@
         "github:bazelbuild/rules_kotlin"
     ],
     "versions": [
+        "2.1.3-codeql.1",
         "2.0.0-codeql.1"
     ],
     "yanked_versions": {}

From 163a403065d31132b7fe5a0b5ad46e75c826b1da Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Fri, 25 Apr 2025 16:35:14 +0100
Subject: [PATCH 03/18] Add Kotlin 2.2.0-Beta1; drop Kotlin 1.5

---
 MODULE.bazel                       | 15 +++------------
 java/kotlin-extractor/versions.bzl |  5 +----
 2 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/MODULE.bazel b/MODULE.bazel
index 7e8e36b53092..49ea49975bb9 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -193,10 +193,6 @@ use_repo(
     kotlin_extractor_deps,
     "codeql_kotlin_defaults",
     "codeql_kotlin_embeddable",
-    "kotlin-compiler-1.5.0",
-    "kotlin-compiler-1.5.10",
-    "kotlin-compiler-1.5.20",
-    "kotlin-compiler-1.5.30",
     "kotlin-compiler-1.6.0",
     "kotlin-compiler-1.6.20",
     "kotlin-compiler-1.7.0",
@@ -208,10 +204,7 @@ use_repo(
     "kotlin-compiler-2.0.20-Beta2",
     "kotlin-compiler-2.1.0-Beta1",
     "kotlin-compiler-2.1.20-Beta1",
-    "kotlin-compiler-embeddable-1.5.0",
-    "kotlin-compiler-embeddable-1.5.10",
-    "kotlin-compiler-embeddable-1.5.20",
-    "kotlin-compiler-embeddable-1.5.30",
+    "kotlin-compiler-2.2.0-Beta1",
     "kotlin-compiler-embeddable-1.6.0",
     "kotlin-compiler-embeddable-1.6.20",
     "kotlin-compiler-embeddable-1.7.0",
@@ -223,10 +216,7 @@ use_repo(
     "kotlin-compiler-embeddable-2.0.20-Beta2",
     "kotlin-compiler-embeddable-2.1.0-Beta1",
     "kotlin-compiler-embeddable-2.1.20-Beta1",
-    "kotlin-stdlib-1.5.0",
-    "kotlin-stdlib-1.5.10",
-    "kotlin-stdlib-1.5.20",
-    "kotlin-stdlib-1.5.30",
+    "kotlin-compiler-embeddable-2.2.0-Beta1",
     "kotlin-stdlib-1.6.0",
     "kotlin-stdlib-1.6.20",
     "kotlin-stdlib-1.7.0",
@@ -238,6 +228,7 @@ use_repo(
     "kotlin-stdlib-2.0.20-Beta2",
     "kotlin-stdlib-2.1.0-Beta1",
     "kotlin-stdlib-2.1.20-Beta1",
+    "kotlin-stdlib-2.2.0-Beta1",
 )
 
 go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
diff --git a/java/kotlin-extractor/versions.bzl b/java/kotlin-extractor/versions.bzl
index c48f98ae363e..e389bfd9514d 100644
--- a/java/kotlin-extractor/versions.bzl
+++ b/java/kotlin-extractor/versions.bzl
@@ -1,9 +1,5 @@
 # when updating this list, `bazel mod tidy` should be run from `codeql` to update `MODULE.bazel`
 VERSIONS = [
-    "1.5.0",
-    "1.5.10",
-    "1.5.20",
-    "1.5.30",
     "1.6.0",
     "1.6.20",
     "1.7.0",
@@ -15,6 +11,7 @@ VERSIONS = [
     "2.0.20-Beta2",
     "2.1.0-Beta1",
     "2.1.20-Beta1",
+    "2.2.0-Beta1",
 ]
 
 def _version_to_tuple(v):

From 24feb5166153a7209d5e0d756c7e1826f27cafe6 Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Mon, 28 Apr 2025 14:21:52 +0100
Subject: [PATCH 04/18] Fix Gradle config

---
 java/kotlin-extractor/build.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java/kotlin-extractor/build.gradle b/java/kotlin-extractor/build.gradle
index 57229642a927..eebdf150eb7a 100644
--- a/java/kotlin-extractor/build.gradle
+++ b/java/kotlin-extractor/build.gradle
@@ -55,7 +55,7 @@ sourceSets {
 }
 
 jar {
-    archiveName = "${OUTPUT_JAR_NAME}"
+    archiveBaseName = "${OUTPUT_JAR_NAME}"
 }
 
 task getHomeDir {

From a36fc30d442195830a3b2da4d4a4ac271dabf32d Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Mon, 28 Apr 2025 14:23:19 +0100
Subject: [PATCH 05/18] Fix build for Kotlin 2.2.0

---
 .../src/main/kotlin/KotlinFileExtractor.kt       | 16 ++--------------
 .../src/main/kotlin/KotlinUsesExtractor.kt       |  2 +-
 .../src/main/kotlin/comments/CommentExtractor.kt |  8 +++++++-
 .../src/main/kotlin/utils/IrVisitorLookup.kt     |  4 ++--
 .../utils/versions/v_1_5_0/IrLazyFunction.kt     |  3 +++
 .../kotlin/utils/versions/v_1_5_0/IrVisitor.kt   |  4 ++++
 .../utils/versions/v_1_5_0/getJvmDefaultMode.kt  |  7 +++++++
 .../utils/versions/v_1_5_0/isDispatchReceiver.kt |  6 ++++++
 .../v_1_5_0/parameterIndexExcludingReceivers.kt  |  5 +++++
 .../v_1_9_0-Beta/CommentExtractorLighterAST.kt   |  3 +--
 .../versions/v_2_2_0-Beta1/IrLazyFunction.kt     |  3 +++
 .../utils/versions/v_2_2_0-Beta1/IrVisitor.kt    |  4 ++++
 ...tParameterDeclarationWithWrappedDescriptor.kt |  7 +++++++
 .../versions/v_2_2_0-Beta1/getJvmDefaultMode.kt  |  7 +++++++
 .../versions/v_2_2_0-Beta1/isDispatchReceiver.kt |  6 ++++++
 .../parameterIndexExcludingReceivers.kt          | 10 ++++++++++
 16 files changed, 75 insertions(+), 20 deletions(-)
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrLazyFunction.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrVisitor.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getJvmDefaultMode.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/isDispatchReceiver.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/parameterIndexExcludingReceivers.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrLazyFunction.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrVisitor.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/createImplicitParameterDeclarationWithWrappedDescriptor.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/getJvmDefaultMode.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/isDispatchReceiver.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/parameterIndexExcludingReceivers.kt

diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt
index f1f4131002b4..ab3d3f69e91c 100644
--- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt
+++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
 import org.jetbrains.kotlin.ir.backend.js.utils.realOverrideTarget
 import org.jetbrains.kotlin.ir.builders.declarations.*
 import org.jetbrains.kotlin.ir.declarations.*
-import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyFunction
 import org.jetbrains.kotlin.ir.expressions.*
 import org.jetbrains.kotlin.ir.expressions.impl.*
 import org.jetbrains.kotlin.ir.symbols.*
@@ -1619,9 +1618,7 @@ open class KotlinFileExtractor(
         // (NB. kotlinc's actual implementation strategy is different -- it makes an inner class
         // called InterfaceWithDefault$DefaultImpls and stores the default methods
         // there to allow default method usage in Java < 8, but this is hopefully niche.
-        !jvmDefaultModeEnabledIsEnabled(
-            pluginContext.languageVersionSettings
-            .getFlag(JvmAnalysisFlags.jvmDefaultMode)) &&
+        !jvmDefaultModeEnabledIsEnabled(getJvmDefaultMode(pluginContext.languageVersionSettings)) &&
             f.parentClassOrNull.let {
                 it != null &&
                     it.origin != IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB &&
@@ -6011,11 +6008,7 @@ open class KotlinFileExtractor(
                 is IrGetValue -> {
                     val exprParent = parent.expr(e, callable)
                     val owner = e.symbol.owner
-                    if (
-                        owner is IrValueParameter &&
-                            owner.index == -1 &&
-                            !owner.isExtensionReceiver()
-                    ) {
+                    if (owner is IrValueParameter && isDispatchReceiver(owner)) {
                         extractThisAccess(e, owner.parent, exprParent, callable)
                     } else {
                         val isAnnotationClassParameter =
@@ -6966,11 +6959,6 @@ open class KotlinFileExtractor(
         }
     }
 
-    private fun IrValueParameter.isExtensionReceiver(): Boolean {
-        val parentFun = parent as? IrFunction ?: return false
-        return parentFun.extensionReceiverParameter == this
-    }
-
     private open inner class GeneratedClassHelper(
         protected val locId: Label<DbLocation>,
         protected val ids: GeneratedClassLabels
diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt
index a401d017a028..56deb81da012 100644
--- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt
+++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt
@@ -2136,7 +2136,7 @@ open class KotlinUsesExtractor(
             }
         val parentId = parent ?: overriddenParentAttributes?.id ?: useDeclarationParentOf(vp, false)
 
-        val idxBase = overriddenParentAttributes?.valueParameters?.indexOf(vp) ?: vp.index
+        val idxBase = overriddenParentAttributes?.valueParameters?.indexOf(vp) ?: parameterIndexExcludingReceivers(vp)
         val idxOffset =
             if (
                 declarationParent is IrFunction &&
diff --git a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt
index 0c6308acd996..322cffc87f32 100644
--- a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt
+++ b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt
@@ -2,12 +2,18 @@ package com.github.codeql.comments
 
 import com.github.codeql.*
 import com.github.codeql.utils.isLocalFunction
+import com.github.codeql.utils.versions.isDispatchReceiver
 import org.jetbrains.kotlin.ir.IrElement
 import org.jetbrains.kotlin.ir.declarations.*
 import org.jetbrains.kotlin.ir.expressions.IrBody
 import org.jetbrains.kotlin.ir.expressions.IrExpression
 import org.jetbrains.kotlin.ir.util.parentClassOrNull
 
+private fun IrValueParameter.isExtensionReceiver(): Boolean {
+    val parentFun = parent as? IrFunction ?: return false
+    return parentFun.extensionReceiverParameter == this
+}
+
 open class CommentExtractor(
     protected val fileExtractor: KotlinFileExtractor,
     protected val file: IrFile,
@@ -19,7 +25,7 @@ open class CommentExtractor(
     protected fun getLabel(element: IrElement): Label<out DbTop>? {
         if (element == file) return fileLabel
 
-        if (element is IrValueParameter && element.index == -1) {
+        if (element is IrValueParameter && (isDispatchReceiver(element) || element.isExtensionReceiver())) {
             // Don't attribute comments to the implicit `this` parameter of a function.
             return null
         }
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt b/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt
index 2ac55ee7edec..fff09c0da28b 100644
--- a/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt
+++ b/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt
@@ -1,17 +1,17 @@
 package com.github.codeql.utils
 
+import com.github.codeql.utils.versions.IrVisitor
 import com.intellij.psi.PsiElement
 import org.jetbrains.kotlin.ir.IrElement
 import org.jetbrains.kotlin.ir.declarations.IrDeclaration
 import org.jetbrains.kotlin.ir.declarations.IrFile
 import org.jetbrains.kotlin.ir.util.isFakeOverride
-import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
 
 class IrVisitorLookup(
     private val psi2Ir: Psi2IrFacade,
     private val psi: PsiElement,
     private val file: IrFile
-) : IrElementVisitor<Unit, MutableCollection<IrElement>> {
+) : IrVisitor<Unit, MutableCollection<IrElement>>() {
     private val location = psi.getLocation()
 
     override fun visitElement(element: IrElement, data: MutableCollection<IrElement>): Unit {
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrLazyFunction.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrLazyFunction.kt
new file mode 100644
index 000000000000..e74d4f0426a2
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrLazyFunction.kt
@@ -0,0 +1,3 @@
+package com.github.codeql.utils.versions
+
+typealias IrLazyFunction = org.jetbrains.kotlin.ir.declarations.lazy.IrLazyFunction
\ No newline at end of file
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrVisitor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrVisitor.kt
new file mode 100644
index 000000000000..4c5b074c4809
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrVisitor.kt
@@ -0,0 +1,4 @@
+package com.github.codeql.utils.versions
+
+abstract class IrVisitor<R, D> : org.jetbrains.kotlin.ir.visitors.IrElementVisitor<R, D>
+abstract class IrVisitorVoid : org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
\ No newline at end of file
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getJvmDefaultMode.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getJvmDefaultMode.kt
new file mode 100644
index 000000000000..e42c7c9c8167
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getJvmDefaultMode.kt
@@ -0,0 +1,7 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.config.JvmAnalysisFlags
+import org.jetbrains.kotlin.config.LanguageVersionSettings
+
+fun getJvmDefaultMode(lvs: LanguageVersionSettings) =
+    lvs.getFlag(JvmAnalysisFlags.jvmDefaultMode)
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/isDispatchReceiver.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/isDispatchReceiver.kt
new file mode 100644
index 000000000000..2aeac8aafe7e
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/isDispatchReceiver.kt
@@ -0,0 +1,6 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.ir.declarations.IrFunction
+import org.jetbrains.kotlin.ir.declarations.IrValueParameter
+
+fun isDispatchReceiver(p: IrValueParameter) = p.index == -1 && p != (p.parent as? IrFunction)?.extensionReceiverParameter
\ No newline at end of file
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/parameterIndexExcludingReceivers.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/parameterIndexExcludingReceivers.kt
new file mode 100644
index 000000000000..cfcad9ec69ac
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/parameterIndexExcludingReceivers.kt
@@ -0,0 +1,5 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.ir.declarations.IrValueParameter
+
+fun parameterIndexExcludingReceivers(vp: IrValueParameter) = vp.index
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt
index ecaa5e232873..af9276d43ca8 100644
--- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.ir.IrElement
 import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
 import org.jetbrains.kotlin.ir.declarations.*
 import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET
-import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
 import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
 import org.jetbrains.kotlin.ir.visitors.acceptVoid
 import org.jetbrains.kotlin.kdoc.lexer.KDocTokens
@@ -43,7 +42,7 @@ class CommentExtractorLighterAST(
 
         val kDocOwners = mutableMapOf<Int, MutableList<IrElement>>()
         val visitor =
-            object : IrElementVisitorVoid {
+            object : IrVisitorVoid() {
                 override fun visitElement(element: IrElement) {
                     val metadata = (element as? IrMetadataSourceOwner)?.metadata
                     val sourceElement = (metadata as? FirMetadataSource)?.fir?.source
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrLazyFunction.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrLazyFunction.kt
new file mode 100644
index 000000000000..6a445959f1ea
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrLazyFunction.kt
@@ -0,0 +1,3 @@
+package com.github.codeql.utils.versions
+
+typealias IrLazyFunction = org.jetbrains.kotlin.psi2ir.lazy.IrLazyFunction
\ No newline at end of file
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrVisitor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrVisitor.kt
new file mode 100644
index 000000000000..45c5948d8fe3
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrVisitor.kt
@@ -0,0 +1,4 @@
+package com.github.codeql.utils.versions
+
+typealias IrVisitor<R, D>  = org.jetbrains.kotlin.ir.visitors.IrVisitor<R, D>
+typealias IrVisitorVoid = org.jetbrains.kotlin.ir.visitors.IrVisitorVoid
\ No newline at end of file
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/createImplicitParameterDeclarationWithWrappedDescriptor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/createImplicitParameterDeclarationWithWrappedDescriptor.kt
new file mode 100644
index 000000000000..d6ebeb42c512
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/createImplicitParameterDeclarationWithWrappedDescriptor.kt
@@ -0,0 +1,7 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.ir.declarations.IrClass
+import org.jetbrains.kotlin.ir.util.createThisReceiverParameter
+
+fun IrClass.createImplicitParameterDeclarationWithWrappedDescriptor() =
+    this.createThisReceiverParameter()
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/getJvmDefaultMode.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/getJvmDefaultMode.kt
new file mode 100644
index 000000000000..06a5de34de24
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/getJvmDefaultMode.kt
@@ -0,0 +1,7 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.config.LanguageVersionSettings
+import org.jetbrains.kotlin.config.jvmDefaultMode
+
+fun getJvmDefaultMode(lvs: LanguageVersionSettings) =
+    lvs.jvmDefaultMode
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/isDispatchReceiver.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/isDispatchReceiver.kt
new file mode 100644
index 000000000000..49323e54d929
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/isDispatchReceiver.kt
@@ -0,0 +1,6 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.ir.declarations.IrValueParameter
+import org.jetbrains.kotlin.ir.declarations.IrParameterKind
+
+fun isDispatchReceiver(p: IrValueParameter) = p.kind == IrParameterKind.DispatchReceiver
\ No newline at end of file
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/parameterIndexExcludingReceivers.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/parameterIndexExcludingReceivers.kt
new file mode 100644
index 000000000000..c50e4dadaf50
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/parameterIndexExcludingReceivers.kt
@@ -0,0 +1,10 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.ir.declarations.IrFunction
+import org.jetbrains.kotlin.ir.declarations.IrValueParameter
+
+fun parameterIndexExcludingReceivers(vp: IrValueParameter): Int {
+    val offset =
+        (vp.parent as? IrFunction)?.let {  (if (it.extensionReceiverParameter != null) 1 else 0) + (if (it.dispatchReceiverParameter != null) 1 else 0) } ?: 0
+    return vp.indexInParameters - offset
+}

From 4cb1e7840f8c48539134a5e6e6ef28098d8cc557 Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Mon, 28 Apr 2025 14:32:05 +0100
Subject: [PATCH 06/18] Update Kotlin doc table

---
 docs/codeql/reusables/supported-versions-compilers.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst
index bb2d4a7416a9..7e17d0cd97f1 100644
--- a/docs/codeql/reusables/supported-versions-compilers.rst
+++ b/docs/codeql/reusables/supported-versions-compilers.rst
@@ -21,7 +21,7 @@
    Java,"Java 7 to 24 [6]_","javac (OpenJDK and Oracle JDK),
 
    Eclipse compiler for Java (ECJ) [7]_",``.java``
-   Kotlin,"Kotlin 1.5.0 to 2.1.2\ *x*","kotlinc",``.kt``
+   Kotlin,"Kotlin 1.6.0 to 2.2.0\ *x*","kotlinc",``.kt``
    JavaScript,ECMAScript 2022 or lower,Not applicable,"``.js``, ``.jsx``, ``.mjs``, ``.es``, ``.es6``, ``.htm``, ``.html``, ``.xhtm``, ``.xhtml``, ``.vue``, ``.hbs``, ``.ejs``, ``.njk``, ``.json``, ``.yaml``, ``.yml``, ``.raml``, ``.xml`` [8]_"
    Python [9]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py``
    Ruby [10]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``"

From 2ad5e20e799b2684bc22ceb00cd818d7f99b487b Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Mon, 28 Apr 2025 14:34:38 +0100
Subject: [PATCH 07/18] Change note

---
 java/ql/lib/change-notes/2025-04-28-kotlin-220.md | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 java/ql/lib/change-notes/2025-04-28-kotlin-220.md

diff --git a/java/ql/lib/change-notes/2025-04-28-kotlin-220.md b/java/ql/lib/change-notes/2025-04-28-kotlin-220.md
new file mode 100644
index 000000000000..c0c257a2f076
--- /dev/null
+++ b/java/ql/lib/change-notes/2025-04-28-kotlin-220.md
@@ -0,0 +1,4 @@
+---
+category: feature
+---
+* Kotlin versions up to 2.2.0\ *x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0).

From 3f23212d4e36989fc1a00c981665e28e7dde2fa1 Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Mon, 28 Apr 2025 14:35:05 +0100
Subject: [PATCH 08/18] Update test expectation

---
 .../diagnostics/kotlin-version-too-new/diagnostics.expected     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected b/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected
index 9a2cbdc1ab08..39e1f6e6b984 100644
--- a/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected
+++ b/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected
@@ -1,5 +1,5 @@
 {
-  "markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.1.30.",
+  "markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.2.10.",
   "severity": "error",
   "source": {
     "extractorName": "java",

From 0d21fa51f28a39a93add5a3e4bed3946f5e13a53 Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Mon, 28 Apr 2025 16:17:07 +0100
Subject: [PATCH 09/18] Change default version

---
 java/kotlin-extractor/dev/wrapper.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java/kotlin-extractor/dev/wrapper.py b/java/kotlin-extractor/dev/wrapper.py
index f51db2892695..f95a89352fc3 100755
--- a/java/kotlin-extractor/dev/wrapper.py
+++ b/java/kotlin-extractor/dev/wrapper.py
@@ -27,7 +27,7 @@
 import io
 import os
 
-DEFAULT_VERSION = "2.0.0"
+DEFAULT_VERSION = "2.2.0-Beta1"
 
 
 def options():

From 29d369f22fcec0e841f3e22c89224ae24473927a Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Tue, 29 Apr 2025 11:22:54 +0100
Subject: [PATCH 10/18] Don't try to decode a class from a .java file

---
 java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt b/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt
index 5a06de67c042..a18dd06247f7 100644
--- a/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt
+++ b/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt
@@ -90,7 +90,11 @@ fun getIrClassVirtualFile(irClass: IrClass): VirtualFile? {
             }
         }
         is VirtualFileBasedSourceElement -> {
-            return cSource.virtualFile
+            if (cSource.virtualFile.name.endsWith(".class")) {
+                // At least lately, despite VirtualFileBasedSourceElement being constructed on a BinaryJavaClass,
+                // this can be a .java source file.
+                return cSource.virtualFile
+            }
         }
         is KotlinJvmBinarySourceElement -> {
             val binaryClass = cSource.binaryClass

From 34e0a7b23a3b20e2f4b89f980ff91475a374e40e Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Tue, 29 Apr 2025 13:51:07 +0100
Subject: [PATCH 11/18] Bump Kotlin version to keep integration test working

---
 .../kotlin/all-platforms/gradle_groovy_app/app/build.gradle     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle b/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle
index 16aad9297b05..8ef1009376c9 100644
--- a/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle
+++ b/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle
@@ -8,7 +8,7 @@
 
 plugins {
     // Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin.
-    id 'org.jetbrains.kotlin.jvm' version '1.5.31'
+    id 'org.jetbrains.kotlin.jvm' version '1.6.0'
 
     // Apply the application plugin to add support for building a CLI application in Java.
     id 'application'

From 1afe67ab136ceb817e531a1e0d82557c53c00b69 Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Tue, 29 Apr 2025 13:51:28 +0100
Subject: [PATCH 12/18] Accept Kotlin 2.1.20 test changes

These are mainly small changes in how source-locations are ascribed to synthetic expressions, plus three real changes:

- The comment extractor is performing better presumably due to improvements in the underlying representation
- *= /= and %= operations are once again extracted correctly; presumably their origin information has been fixed
- Reference to a static final Java field can lead to more constant propagation than before

The last one might be a minor nuisance to someone trying to find references to such a field.
---
 .../annotation_classes/classes.expected       |   4 +-
 .../annotations/jvmName/test.expected         |   4 +-
 .../arrays/arrayAccesses.expected             |  27 +-
 .../library-tests/classes/PrintAst.expected   |  48 +-
 .../classes/genericExprTypes.expected         |  14 +-
 .../library-tests/comments/comments.expected  |   5 +-
 .../library-tests/exprs/PrintAst.expected     | 776 +++++++++---------
 .../library-tests/exprs/binop.expected        |   3 -
 .../exprs/delegatedProperties.expected        |  22 +-
 .../library-tests/exprs/exprs.expected        | 330 ++++----
 .../library-tests/exprs/funcExprs.expected    |   6 +-
 .../exprs_typeaccess/PrintAst.expected        |   3 +-
 .../generic-instance-methods/test.expected    |  20 +-
 .../test.expected                             |   8 +-
 .../internal-public-alias/test.expected       |   6 +-
 .../jvmstatic-annotation/test.expected        |  12 +-
 .../library-tests/methods/exprs.expected      |  24 +-
 .../library-tests/methods/methods.expected    |   8 +-
 .../library-tests/methods/parameters.expected |   4 +-
 .../modifiers/modifiers.expected              |  20 +-
 .../private-anonymous-types/test.expected     |   8 +-
 .../properties/properties.expected            |  32 +-
 .../reflection/reflection.expected            |  18 +-
 .../variables/variableAccesses.expected       |   6 +-
 .../variables/variables.expected              |   4 +-
 25 files changed, 699 insertions(+), 713 deletions(-)

diff --git a/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected b/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected
index cf47ffc15bd2..d42e6cf854c2 100644
--- a/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected
+++ b/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected
@@ -32,8 +32,8 @@ annotations
 | def.kt:41:5:41:12 | Annot0k | def.kt:41:5:42:19 | Z | def.kt:5:1:21:60 | Annot0k |
 | def.kt:45:1:45:8 | Annot0k | def.kt:45: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:53:1:57:23 | getP | def.kt:5:1:21:60 | Annot0k |
-| def.kt:55:1:55:12 | Annot0k | def.kt:53:1:57:23 | setP | def.kt:5:1:21:60 | Annot0k |
+| def.kt:54:1:54:12 | Annot0k | def.kt:53:1:57:19 | getP | def.kt:5:1:21:60 | Annot0k |
+| def.kt:55:1:55:12 | Annot0k | def.kt:53:1:57:19 | setP | def.kt:5:1:21:60 | Annot0k |
 | def.kt:56:1:56:14 | Annot0k | def.kt:53:1:57:23 | p | def.kt:5:1:21:60 | Annot0k |
 | def.kt:59:5:59:21 | Annot0k | def.kt:59:5:59:28 | <this> | 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-kotlin2/library-tests/annotations/jvmName/test.expected b/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected
index a3313a519ca6..c56618efda8b 100644
--- a/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected
+++ b/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected
@@ -1,8 +1,8 @@
 | Test.java:2:17:2:17 | m | m | m |
 | test.kt:3:9:4:18 | getX_prop | getX_prop | getX |
 | test.kt:6:5:6:19 | getX | getX | getX |
-| test.kt:8:5:10:19 | changeY | changeY | setY |
-| test.kt:8:5:10:19 | y | y | getY |
+| test.kt:8:5:10:14 | changeY | changeY | setY |
+| test.kt:8:5:10:14 | y | y | getY |
 | test.kt:12:5:13:15 | method | method | fn |
 | test.kt:17:5:17:14 | p | p | p |
 | test.kt:18:5:18:32 | w | w | q |
diff --git a/java/ql/test-kotlin2/library-tests/arrays/arrayAccesses.expected b/java/ql/test-kotlin2/library-tests/arrays/arrayAccesses.expected
index 2decb2b876b6..6217a2650e20 100644
--- a/java/ql/test-kotlin2/library-tests/arrays/arrayAccesses.expected
+++ b/java/ql/test-kotlin2/library-tests/arrays/arrayAccesses.expected
@@ -1,12 +1,21 @@
-| arrayGetsSets.kt:12:11:12:15 | ...[...] | arrayGetsSets.kt:12:3:12:15 | set(...) | int | arrayGetsSets.kt:12:11:12:12 | a1 | arrayGetsSets.kt:12:14:12:14 | 0 |
-| arrayGetsSets.kt:13:11:13:15 | ...[...] | arrayGetsSets.kt:13:3:13:15 | set(...) | short | arrayGetsSets.kt:13:11:13:12 | a2 | arrayGetsSets.kt:13:14:13:14 | 0 |
-| arrayGetsSets.kt:14:11:14:15 | ...[...] | arrayGetsSets.kt:14:3:14:15 | set(...) | byte | arrayGetsSets.kt:14:11:14:12 | a3 | arrayGetsSets.kt:14:14:14:14 | 0 |
-| arrayGetsSets.kt:15:11:15:15 | ...[...] | arrayGetsSets.kt:15:3:15:15 | set(...) | long | arrayGetsSets.kt:15:11:15:12 | a4 | arrayGetsSets.kt:15:14:15:14 | 0 |
-| arrayGetsSets.kt:16:11:16:15 | ...[...] | arrayGetsSets.kt:16:3:16:15 | set(...) | float | arrayGetsSets.kt:16:11:16:12 | a5 | arrayGetsSets.kt:16:14:16:14 | 0 |
-| arrayGetsSets.kt:17:11:17:15 | ...[...] | arrayGetsSets.kt:17:3:17:15 | set(...) | double | arrayGetsSets.kt:17:11:17:12 | a6 | arrayGetsSets.kt:17:14:17:14 | 0 |
-| arrayGetsSets.kt:18:11:18:15 | ...[...] | arrayGetsSets.kt:18:3:18:15 | set(...) | boolean | arrayGetsSets.kt:18:11:18:12 | a7 | arrayGetsSets.kt:18:14:18:14 | 0 |
-| arrayGetsSets.kt:19:11:19:15 | ...[...] | arrayGetsSets.kt:19:3:19:15 | set(...) | char | arrayGetsSets.kt:19:11:19:12 | a8 | arrayGetsSets.kt:19:14:19:14 | 0 |
-| arrayGetsSets.kt:20:11:20:15 | ...[...] | arrayGetsSets.kt:20:3:20:15 | set(...) | Object | arrayGetsSets.kt:20:11:20:12 | a9 | arrayGetsSets.kt:20:14:20:14 | 0 |
+| arrayGetsSets.kt:12:3:12:15 | ...[...] | arrayGetsSets.kt:12:3:12:15 | ...=... | int[] | arrayGetsSets.kt:12:3:12:4 | a1 | arrayGetsSets.kt:12:6:12:6 | 0 |
+| arrayGetsSets.kt:12:11:12:15 | ...[...] | arrayGetsSets.kt:12:3:12:15 | ...=... | int | arrayGetsSets.kt:12:11:12:12 | a1 | arrayGetsSets.kt:12:14:12:14 | 0 |
+| arrayGetsSets.kt:13:3:13:15 | ...[...] | arrayGetsSets.kt:13:3:13:15 | ...=... | short[] | arrayGetsSets.kt:13:3:13:4 | a2 | arrayGetsSets.kt:13:6:13:6 | 0 |
+| arrayGetsSets.kt:13:11:13:15 | ...[...] | arrayGetsSets.kt:13:3:13:15 | ...=... | short | arrayGetsSets.kt:13:11:13:12 | a2 | arrayGetsSets.kt:13:14:13:14 | 0 |
+| arrayGetsSets.kt:14:3:14:15 | ...[...] | arrayGetsSets.kt:14:3:14:15 | ...=... | byte[] | arrayGetsSets.kt:14:3:14:4 | a3 | arrayGetsSets.kt:14:6:14:6 | 0 |
+| arrayGetsSets.kt:14:11:14:15 | ...[...] | arrayGetsSets.kt:14:3:14:15 | ...=... | byte | arrayGetsSets.kt:14:11:14:12 | a3 | arrayGetsSets.kt:14:14:14:14 | 0 |
+| arrayGetsSets.kt:15:3:15:15 | ...[...] | arrayGetsSets.kt:15:3:15:15 | ...=... | long[] | arrayGetsSets.kt:15:3:15:4 | a4 | arrayGetsSets.kt:15:6:15:6 | 0 |
+| arrayGetsSets.kt:15:11:15:15 | ...[...] | arrayGetsSets.kt:15:3:15:15 | ...=... | long | arrayGetsSets.kt:15:11:15:12 | a4 | arrayGetsSets.kt:15:14:15:14 | 0 |
+| arrayGetsSets.kt:16:3:16:15 | ...[...] | arrayGetsSets.kt:16:3:16:15 | ...=... | float[] | arrayGetsSets.kt:16:3:16:4 | a5 | arrayGetsSets.kt:16:6:16:6 | 0 |
+| arrayGetsSets.kt:16:11:16:15 | ...[...] | arrayGetsSets.kt:16:3:16:15 | ...=... | float | arrayGetsSets.kt:16:11:16:12 | a5 | arrayGetsSets.kt:16:14:16:14 | 0 |
+| arrayGetsSets.kt:17:3:17:15 | ...[...] | arrayGetsSets.kt:17:3:17:15 | ...=... | double[] | arrayGetsSets.kt:17:3:17:4 | a6 | arrayGetsSets.kt:17:6:17:6 | 0 |
+| arrayGetsSets.kt:17:11:17:15 | ...[...] | arrayGetsSets.kt:17:3:17:15 | ...=... | double | arrayGetsSets.kt:17:11:17:12 | a6 | arrayGetsSets.kt:17:14:17:14 | 0 |
+| arrayGetsSets.kt:18:3:18:15 | ...[...] | arrayGetsSets.kt:18:3:18:15 | ...=... | boolean[] | arrayGetsSets.kt:18:3:18:4 | a7 | arrayGetsSets.kt:18:6:18:6 | 0 |
+| arrayGetsSets.kt:18:11:18:15 | ...[...] | arrayGetsSets.kt:18:3:18:15 | ...=... | boolean | arrayGetsSets.kt:18:11:18:12 | a7 | arrayGetsSets.kt:18:14:18:14 | 0 |
+| arrayGetsSets.kt:19:3:19:15 | ...[...] | arrayGetsSets.kt:19:3:19:15 | ...=... | char[] | arrayGetsSets.kt:19:3:19:4 | a8 | arrayGetsSets.kt:19:6:19:6 | 0 |
+| arrayGetsSets.kt:19:11:19:15 | ...[...] | arrayGetsSets.kt:19:3:19:15 | ...=... | char | arrayGetsSets.kt:19:11:19:12 | a8 | arrayGetsSets.kt:19:14:19:14 | 0 |
+| arrayGetsSets.kt:20:3:20:15 | ...[...] | arrayGetsSets.kt:20:3:20:15 | ...=... | Object[] | arrayGetsSets.kt:20:3:20:4 | a9 | arrayGetsSets.kt:20:6:20:6 | 0 |
+| arrayGetsSets.kt:20:11:20:15 | ...[...] | arrayGetsSets.kt:20:3:20:15 | ...=... | Object | arrayGetsSets.kt:20:11:20:12 | a9 | arrayGetsSets.kt:20:14:20:14 | 0 |
 | arrayGetsSets.kt:32:3:32:12 | ...[...] | arrayGetsSets.kt:32:3:32:12 | ...+=... | int | arrayGetsSets.kt:32:3:32:4 | a1 | arrayGetsSets.kt:32:6:32:6 | 0 |
 | arrayGetsSets.kt:38:3:38:13 | ...[...] | arrayGetsSets.kt:38:3:38:13 | .../=... | long | arrayGetsSets.kt:38:3:38:4 | a4 | arrayGetsSets.kt:38:6:38:6 | 0 |
 | arrayGetsSets.kt:39:3:39:13 | ...[...] | arrayGetsSets.kt:39:3:39:13 | ...-=... | float | arrayGetsSets.kt:39:3:39:4 | a5 | arrayGetsSets.kt:39:6:39:6 | 0 |
diff --git a/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected b/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected
index f98dba8f6cb4..4abfda927996 100644
--- a/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected
+++ b/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected
@@ -882,20 +882,16 @@ localClassField.kt:
 #    2|       0: [WhenExpr] when ...
 #    2|         0: [WhenBranch] ... -> ...
 #    2|           0: [BooleanLiteral] true
-#    2|           1: [ExprStmt] <Expr>;
-#    2|             0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
-#    2|               0: [TypeAccess] Unit
-#    2|               1: [StmtExpr] <Stmt>
-#    2|                 0: [BlockStmt] { ... }
-#    3|                   0: [LocalTypeDeclStmt] class ...
-#    3|                     0: [LocalClass] L
-#    3|                       1: [Constructor] L
-#    3|                         5: [BlockStmt] { ... }
-#    3|                           0: [SuperConstructorInvocationStmt] super(...)
-#    3|                           1: [BlockStmt] { ... }
-#    4|                   1: [ExprStmt] <Expr>;
-#    4|                     0: [ClassInstanceExpr] new L(...)
-#    4|                       -3: [TypeAccess] L
+#    2|           1: [BlockStmt] { ... }
+#    3|             0: [LocalTypeDeclStmt] class ...
+#    3|               0: [LocalClass] L
+#    3|                 1: [Constructor] L
+#    3|                   5: [BlockStmt] { ... }
+#    3|                     0: [SuperConstructorInvocationStmt] super(...)
+#    3|                     1: [BlockStmt] { ... }
+#    4|             1: [ExprStmt] <Expr>;
+#    4|               0: [ClassInstanceExpr] new L(...)
+#    4|                 -3: [TypeAccess] L
 #    5|         1: [WhenBranch] ... -> ...
 #    5|           0: [BooleanLiteral] true
 #    5|           1: [BlockStmt] { ... }
@@ -910,20 +906,16 @@ localClassField.kt:
 #    7|       0: [WhenExpr] when ...
 #    7|         0: [WhenBranch] ... -> ...
 #    7|           0: [BooleanLiteral] true
-#    7|           1: [ExprStmt] <Expr>;
-#    7|             0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
-#    7|               0: [TypeAccess] Unit
-#    7|               1: [StmtExpr] <Stmt>
-#    7|                 0: [BlockStmt] { ... }
-#    8|                   0: [LocalTypeDeclStmt] class ...
-#    8|                     0: [LocalClass] L
-#    8|                       1: [Constructor] L
-#    8|                         5: [BlockStmt] { ... }
-#    8|                           0: [SuperConstructorInvocationStmt] super(...)
-#    8|                           1: [BlockStmt] { ... }
-#    9|                   1: [ExprStmt] <Expr>;
-#    9|                     0: [ClassInstanceExpr] new L(...)
-#    9|                       -3: [TypeAccess] L
+#    7|           1: [BlockStmt] { ... }
+#    8|             0: [LocalTypeDeclStmt] class ...
+#    8|               0: [LocalClass] L
+#    8|                 1: [Constructor] L
+#    8|                   5: [BlockStmt] { ... }
+#    8|                     0: [SuperConstructorInvocationStmt] super(...)
+#    8|                     1: [BlockStmt] { ... }
+#    9|             1: [ExprStmt] <Expr>;
+#    9|               0: [ClassInstanceExpr] new L(...)
+#    9|                 -3: [TypeAccess] L
 #   10|         1: [WhenBranch] ... -> ...
 #   10|           0: [BooleanLiteral] true
 #   10|           1: [BlockStmt] { ... }
diff --git a/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected b/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected
index a61d001d270c..2f7075c7e8e1 100644
--- a/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected
+++ b/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected
@@ -6,23 +6,23 @@
 | generic_anonymous.kt:1:26:1:33 | t | T |
 | generic_anonymous.kt:1:26:1:33 | this | Generic |
 | generic_anonymous.kt:1:26:1:33 | this.t | T |
+| generic_anonymous.kt:3:3:3:15 | T | T |
+| generic_anonymous.kt:3:3:3:15 | new Object(...) { ... } | new Object(...) { ... } |
+| generic_anonymous.kt:3:3:3:15 | this | Generic |
+| generic_anonymous.kt:3:3:3:15 | this.x | new Object(...) { ... } |
 | generic_anonymous.kt:3:3:5:3 | ...=... | new Object(...) { ... } |
 | generic_anonymous.kt:3:3:5:3 | T | T |
-| generic_anonymous.kt:3:3:5:3 | T | T |
-| generic_anonymous.kt:3:3:5:3 | new Object(...) { ... } | new Object(...) { ... } |
 | generic_anonymous.kt:3:3:5:3 | new Object(...) { ... } | new Object(...) { ... } |
-| generic_anonymous.kt:3:3:5:3 | this | Generic |
-| generic_anonymous.kt:3:3:5:3 | this.x | new Object(...) { ... } |
 | generic_anonymous.kt:3:3:5:3 | x | new Object(...) { ... } |
 | generic_anonymous.kt:3:19:5:3 | <Stmt> | new Object(...) { ... } |
 | generic_anonymous.kt:3:19:5:3 | Object | Object |
 | generic_anonymous.kt:3:19:5:3 | new (...) | new Object(...) { ... } |
+| generic_anonymous.kt:4:7:4:16 | T | T |
+| generic_anonymous.kt:4:7:4:16 | this | new Object(...) { ... } |
+| generic_anonymous.kt:4:7:4:16 | this.member | T |
 | generic_anonymous.kt:4:7:4:20 | ...=... | T |
 | generic_anonymous.kt:4:7:4:20 | T | T |
-| generic_anonymous.kt:4:7:4:20 | T | T |
 | generic_anonymous.kt:4:7:4:20 | member | T |
-| generic_anonymous.kt:4:7:4:20 | this | new Object(...) { ... } |
-| generic_anonymous.kt:4:7:4:20 | this.member | T |
 | generic_anonymous.kt:4:20:4:20 | Generic | Generic |
 | generic_anonymous.kt:4:20:4:20 | Generic.this | Generic |
 | generic_anonymous.kt:4:20:4:20 | getT(...) | T |
diff --git a/java/ql/test-kotlin2/library-tests/comments/comments.expected b/java/ql/test-kotlin2/library-tests/comments/comments.expected
index 5acdeffb4b3a..77a5ce164707 100644
--- a/java/ql/test-kotlin2/library-tests/comments/comments.expected
+++ b/java/ql/test-kotlin2/library-tests/comments/comments.expected
@@ -18,13 +18,15 @@ comments
 commentOwners
 | comments.kt:1:1:1:36 | /** Kdoc owned by CompilationUnit */ | comments.kt:0:0:0:0 | comments |
 | comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | comments.kt:12:1:31:1 | Group |
-| comments.kt:14:5:16:7 | /**\n     * Members of this group.\n     */ | comments.kt:17:5:17:46 | getMembers$private |
+| comments.kt:14:5:16:7 | /**\n     * Members of this group.\n     */ | comments.kt:17:5:17:23 | getMembers$private |
 | comments.kt:14:5:16:7 | /**\n     * Members of this group.\n     */ | comments.kt:17:5:17:46 | members |
 | comments.kt:14:5:16:7 | /**\n     * Members of this group.\n     */ | comments.kt:17:5:17:46 | members |
 | comments.kt:19:5:22:7 | /**\n     * Adds a [member] to this group.\n     * @return the new size of the group.\n     */ | comments.kt:23:5:26:5 | add |
+| comments.kt:48:1:50:3 | /**\n * A type alias comment\n */ | comments.kt:51:1:51:24 | MyType |
 | 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:79:9:81:11 | /**\n         * A local function comment\n         */ | comments.kt:82:9:82:24 | localFn |
+| comments.kt:88:10:90:11 | /**\n         * An anonymous object comment\n         */ | comments.kt:87:15:92:5 |  |
 | comments.kt:88:10:90:11 | /**\n         * An anonymous object comment\n         */ | comments.kt:87:15:92:5 | new X(...) { ... } |
 commentNoOwners
 | comments.kt:24:9:24:25 | // A line comment |
@@ -32,7 +34,6 @@ commentNoOwners
 | comments.kt:35:5:35:34 | /** Medium is in the middle */ |
 | comments.kt:37:5:37:23 | /** This is high */ |
 | comments.kt:42:5:44:7 | /**\n     * A variable.\n     */ |
-| comments.kt:48:1:50:3 | /**\n * A type alias comment\n */ |
 | comments.kt:54:5:56:7 | /**\n     * An init block comment\n     */ |
 | comments.kt:71:9:73:11 | /**\n         * An anonymous function comment\n         */ |
 commentSections
diff --git a/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected b/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected
index f408cad82881..6a4ac3cab31d 100644
--- a/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected
+++ b/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected
@@ -21,16 +21,14 @@ delegatedProperties.kt:
 #   60|             0: [VarAccess] DelegatedPropertiesKt.topLevelInt
 #   60|               -1: [TypeAccess] DelegatedPropertiesKt
 #   60|             1: [VarAccess] <set-?>
-#   87|     5: [ExtensionMethod] setExtDelegated
-#   87|       3: [TypeAccess] Unit
+#   87|     5: [ExtensionMethod] getExtDelegated
+#   87|       3: [TypeAccess] int
 #-----|       4: (Parameters)
 #   87|         0: [Parameter] <this>
 #   87|           0: [TypeAccess] MyClass
-#   87|         1: [Parameter] <set-?>
-#   87|           0: [TypeAccess] int
 #   87|       5: [BlockStmt] { ... }
 #   87|         0: [ReturnStmt] return ...
-#   87|           0: [MethodCall] setValue(...)
+#   87|           0: [MethodCall] getValue(...)
 #   87|             -2: [TypeAccess] Integer
 #   87|             -1: [TypeAccess] PropertyReferenceDelegatesKt
 #   87|             0: [VarAccess] DelegatedPropertiesKt.extDelegated$delegateMyClass
@@ -70,43 +68,16 @@ delegatedProperties.kt:
 #   87|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
 #   87|                 0: [TypeAccess] MyClass
 #   87|                 1: [TypeAccess] Integer
-#   87|             3: [VarAccess] <set-?>
-#   87|     6: [FieldDeclaration] KMutableProperty0<Integer> extDelegated$delegateMyClass;
-#   87|       -1: [TypeAccess] KMutableProperty0<Integer>
-#   87|         0: [TypeAccess] Integer
-#   87|       0: [PropertyRefExpr] ...::...
-#   87|         -4: [AnonymousClass] new KMutableProperty0<Integer>(...) { ... }
-#   87|           1: [Constructor] 
-#   87|             5: [BlockStmt] { ... }
-#   87|               0: [SuperConstructorInvocationStmt] super(...)
-#   87|           2: [Method] get
-#   87|             5: [BlockStmt] { ... }
-#   87|               0: [ReturnStmt] return ...
-#   87|                 0: [MethodCall] getTopLevelInt(...)
-#   87|                   -1: [TypeAccess] DelegatedPropertiesKt
-#   87|           3: [Method] invoke
-#   87|             5: [BlockStmt] { ... }
-#   87|               0: [ReturnStmt] return ...
-#   87|                 0: [MethodCall] get(...)
-#   87|                   -1: [ThisAccess] this
-#   87|           4: [Method] set
-#-----|             4: (Parameters)
-#   87|               0: [Parameter] a0
-#   87|             5: [BlockStmt] { ... }
-#   87|               0: [ReturnStmt] return ...
-#   87|                 0: [MethodCall] setTopLevelInt(...)
-#   87|                   -1: [TypeAccess] DelegatedPropertiesKt
-#   87|                   0: [VarAccess] a0
-#   87|         -3: [TypeAccess] KMutableProperty0<Integer>
-#   87|           0: [TypeAccess] Integer
-#   87|     7: [ExtensionMethod] getExtDelegated
-#   87|       3: [TypeAccess] int
+#   87|     6: [ExtensionMethod] setExtDelegated
+#   87|       3: [TypeAccess] Unit
 #-----|       4: (Parameters)
 #   87|         0: [Parameter] <this>
 #   87|           0: [TypeAccess] MyClass
+#   87|         1: [Parameter] <set-?>
+#   87|           0: [TypeAccess] int
 #   87|       5: [BlockStmt] { ... }
 #   87|         0: [ReturnStmt] return ...
-#   87|           0: [MethodCall] getValue(...)
+#   87|           0: [MethodCall] setValue(...)
 #   87|             -2: [TypeAccess] Integer
 #   87|             -1: [TypeAccess] PropertyReferenceDelegatesKt
 #   87|             0: [VarAccess] DelegatedPropertiesKt.extDelegated$delegateMyClass
@@ -146,6 +117,35 @@ delegatedProperties.kt:
 #   87|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
 #   87|                 0: [TypeAccess] MyClass
 #   87|                 1: [TypeAccess] Integer
+#   87|             3: [VarAccess] <set-?>
+#   87|     7: [FieldDeclaration] KMutableProperty0<Integer> extDelegated$delegateMyClass;
+#   87|       -1: [TypeAccess] KMutableProperty0<Integer>
+#   87|         0: [TypeAccess] Integer
+#   87|       0: [PropertyRefExpr] ...::...
+#   87|         -4: [AnonymousClass] new KMutableProperty0<Integer>(...) { ... }
+#   87|           1: [Constructor] 
+#   87|             5: [BlockStmt] { ... }
+#   87|               0: [SuperConstructorInvocationStmt] super(...)
+#   87|           2: [Method] get
+#   87|             5: [BlockStmt] { ... }
+#   87|               0: [ReturnStmt] return ...
+#   87|                 0: [MethodCall] getTopLevelInt(...)
+#   87|                   -1: [TypeAccess] DelegatedPropertiesKt
+#   87|           3: [Method] invoke
+#   87|             5: [BlockStmt] { ... }
+#   87|               0: [ReturnStmt] return ...
+#   87|                 0: [MethodCall] get(...)
+#   87|                   -1: [ThisAccess] this
+#   87|           4: [Method] set
+#-----|             4: (Parameters)
+#   87|               0: [Parameter] a0
+#   87|             5: [BlockStmt] { ... }
+#   87|               0: [ReturnStmt] return ...
+#   87|                 0: [MethodCall] setTopLevelInt(...)
+#   87|                   -1: [TypeAccess] DelegatedPropertiesKt
+#   87|                   0: [VarAccess] a0
+#   87|         -3: [TypeAccess] KMutableProperty0<Integer>
+#   87|           0: [TypeAccess] Integer
 #    4|   2: [Class] ClassProp1
 #    4|     1: [Constructor] ClassProp1
 #    4|       5: [BlockStmt] { ... }
@@ -637,14 +637,11 @@ delegatedProperties.kt:
 #   39|                                   -1: [ThisAccess] this
 #   39|                         -3: [TypeAccess] KProperty0<Integer>
 #   39|                           0: [TypeAccess] Integer
-#   42|     3: [Method] setVarResource0
-#   42|       3: [TypeAccess] Unit
-#-----|       4: (Parameters)
-#   42|         0: [Parameter] <set-?>
-#   42|           0: [TypeAccess] int
+#   42|     3: [Method] getVarResource0
+#   42|       3: [TypeAccess] int
 #   42|       5: [BlockStmt] { ... }
 #   42|         0: [ReturnStmt] return ...
-#   42|           0: [MethodCall] setValue(...)
+#   42|           0: [MethodCall] getValue(...)
 #   42|             -1: [VarAccess] this.varResource0$delegate
 #   42|               -1: [ThisAccess] this
 #   42|             0: [ThisAccess] this
@@ -680,16 +677,14 @@ delegatedProperties.kt:
 #   42|               -3: [TypeAccess] KMutableProperty1<Owner,Integer>
 #   42|                 0: [TypeAccess] Owner
 #   42|                 1: [TypeAccess] Integer
-#   42|             2: [VarAccess] <set-?>
-#   42|     4: [FieldDeclaration] ResourceDelegate varResource0$delegate;
-#   42|       -1: [TypeAccess] ResourceDelegate
-#   42|       0: [ClassInstanceExpr] new ResourceDelegate(...)
-#   42|         -3: [TypeAccess] ResourceDelegate
-#   42|     5: [Method] getVarResource0
-#   42|       3: [TypeAccess] int
+#   42|     4: [Method] setVarResource0
+#   42|       3: [TypeAccess] Unit
+#-----|       4: (Parameters)
+#   42|         0: [Parameter] <set-?>
+#   42|           0: [TypeAccess] int
 #   42|       5: [BlockStmt] { ... }
 #   42|         0: [ReturnStmt] return ...
-#   42|           0: [MethodCall] getValue(...)
+#   42|           0: [MethodCall] setValue(...)
 #   42|             -1: [VarAccess] this.varResource0$delegate
 #   42|               -1: [ThisAccess] this
 #   42|             0: [ThisAccess] this
@@ -725,6 +720,11 @@ delegatedProperties.kt:
 #   42|               -3: [TypeAccess] KMutableProperty1<Owner,Integer>
 #   42|                 0: [TypeAccess] Owner
 #   42|                 1: [TypeAccess] Integer
+#   42|             2: [VarAccess] <set-?>
+#   42|     5: [FieldDeclaration] ResourceDelegate varResource0$delegate;
+#   42|       -1: [TypeAccess] ResourceDelegate
+#   42|       0: [ClassInstanceExpr] new ResourceDelegate(...)
+#   42|         -3: [TypeAccess] ResourceDelegate
 #   45|   5: [Class] ResourceDelegate
 #   45|     1: [Constructor] ResourceDelegate
 #   45|       5: [BlockStmt] { ... }
@@ -882,7 +882,49 @@ delegatedProperties.kt:
 #   65|         0: [ReturnStmt] return ...
 #   65|           0: [VarAccess] this.anotherClassInstance
 #   65|             -1: [ThisAccess] this
-#   66|     7: [Method] setDelegatedToMember1
+#   66|     7: [Method] getDelegatedToMember1
+#   66|       3: [TypeAccess] int
+#   66|       5: [BlockStmt] { ... }
+#   66|         0: [ReturnStmt] return ...
+#   66|           0: [MethodCall] getValue(...)
+#   66|             -2: [TypeAccess] Integer
+#   66|             -1: [TypeAccess] PropertyReferenceDelegatesKt
+#   66|             0: [VarAccess] this.delegatedToMember1$delegate
+#   66|               -1: [ThisAccess] this
+#   66|             1: [ThisAccess] this
+#   66|             2: [PropertyRefExpr] ...::...
+#   66|               -4: [AnonymousClass] new KMutableProperty1<MyClass,Integer>(...) { ... }
+#   66|                 1: [Constructor] 
+#   66|                   5: [BlockStmt] { ... }
+#   66|                     0: [SuperConstructorInvocationStmt] super(...)
+#   66|                 2: [Method] get
+#-----|                   4: (Parameters)
+#   66|                     0: [Parameter] a0
+#   66|                   5: [BlockStmt] { ... }
+#   66|                     0: [ReturnStmt] return ...
+#   66|                       0: [MethodCall] getDelegatedToMember1(...)
+#   66|                         -1: [VarAccess] a0
+#   66|                 3: [Method] invoke
+#-----|                   4: (Parameters)
+#   66|                     0: [Parameter] a0
+#   66|                   5: [BlockStmt] { ... }
+#   66|                     0: [ReturnStmt] return ...
+#   66|                       0: [MethodCall] get(...)
+#   66|                         -1: [ThisAccess] this
+#   66|                         0: [VarAccess] a0
+#   66|                 4: [Method] set
+#-----|                   4: (Parameters)
+#   66|                     0: [Parameter] a0
+#   66|                     1: [Parameter] a1
+#   66|                   5: [BlockStmt] { ... }
+#   66|                     0: [ReturnStmt] return ...
+#   66|                       0: [MethodCall] setDelegatedToMember1(...)
+#   66|                         -1: [VarAccess] a0
+#   66|                         0: [VarAccess] a1
+#   66|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
+#   66|                 0: [TypeAccess] MyClass
+#   66|                 1: [TypeAccess] Integer
+#   66|     8: [Method] setDelegatedToMember1
 #   66|       3: [TypeAccess] Unit
 #-----|       4: (Parameters)
 #   66|         0: [Parameter] <set-?>
@@ -928,7 +970,7 @@ delegatedProperties.kt:
 #   66|                 0: [TypeAccess] MyClass
 #   66|                 1: [TypeAccess] Integer
 #   66|             3: [VarAccess] <set-?>
-#   66|     8: [FieldDeclaration] KMutableProperty0<Integer> delegatedToMember1$delegate;
+#   66|     9: [FieldDeclaration] KMutableProperty0<Integer> delegatedToMember1$delegate;
 #   66|       -1: [TypeAccess] KMutableProperty0<Integer>
 #   66|         0: [TypeAccess] Integer
 #   66|       0: [PropertyRefExpr] ...::...
@@ -969,49 +1011,50 @@ delegatedProperties.kt:
 #   66|           0: [TypeAccess] Integer
 #   66|         0: [ThisAccess] MyClass.this
 #   66|           0: [TypeAccess] MyClass
-#   66|     9: [Method] getDelegatedToMember1
-#   66|       3: [TypeAccess] int
-#   66|       5: [BlockStmt] { ... }
-#   66|         0: [ReturnStmt] return ...
-#   66|           0: [MethodCall] getValue(...)
-#   66|             -2: [TypeAccess] Integer
-#   66|             -1: [TypeAccess] PropertyReferenceDelegatesKt
-#   66|             0: [VarAccess] this.delegatedToMember1$delegate
-#   66|               -1: [ThisAccess] this
-#   66|             1: [ThisAccess] this
-#   66|             2: [PropertyRefExpr] ...::...
-#   66|               -4: [AnonymousClass] new KMutableProperty1<MyClass,Integer>(...) { ... }
-#   66|                 1: [Constructor] 
-#   66|                   5: [BlockStmt] { ... }
-#   66|                     0: [SuperConstructorInvocationStmt] super(...)
-#   66|                 2: [Method] get
+#   67|     10: [Method] getDelegatedToMember2
+#   67|       3: [TypeAccess] int
+#   67|       5: [BlockStmt] { ... }
+#   67|         0: [ReturnStmt] return ...
+#   67|           0: [MethodCall] getValue(...)
+#   67|             -3: [TypeAccess] Integer
+#   67|             -2: [TypeAccess] MyClass
+#   67|             -1: [TypeAccess] PropertyReferenceDelegatesKt
+#   67|             0: [VarAccess] this.delegatedToMember2$delegate
+#   67|               -1: [ThisAccess] this
+#   67|             1: [ThisAccess] this
+#   67|             2: [PropertyRefExpr] ...::...
+#   67|               -4: [AnonymousClass] new KMutableProperty1<MyClass,Integer>(...) { ... }
+#   67|                 1: [Constructor] 
+#   67|                   5: [BlockStmt] { ... }
+#   67|                     0: [SuperConstructorInvocationStmt] super(...)
+#   67|                 2: [Method] get
 #-----|                   4: (Parameters)
-#   66|                     0: [Parameter] a0
-#   66|                   5: [BlockStmt] { ... }
-#   66|                     0: [ReturnStmt] return ...
-#   66|                       0: [MethodCall] getDelegatedToMember1(...)
-#   66|                         -1: [VarAccess] a0
-#   66|                 3: [Method] invoke
+#   67|                     0: [Parameter] a0
+#   67|                   5: [BlockStmt] { ... }
+#   67|                     0: [ReturnStmt] return ...
+#   67|                       0: [MethodCall] getDelegatedToMember2(...)
+#   67|                         -1: [VarAccess] a0
+#   67|                 3: [Method] invoke
 #-----|                   4: (Parameters)
-#   66|                     0: [Parameter] a0
-#   66|                   5: [BlockStmt] { ... }
-#   66|                     0: [ReturnStmt] return ...
-#   66|                       0: [MethodCall] get(...)
-#   66|                         -1: [ThisAccess] this
-#   66|                         0: [VarAccess] a0
-#   66|                 4: [Method] set
+#   67|                     0: [Parameter] a0
+#   67|                   5: [BlockStmt] { ... }
+#   67|                     0: [ReturnStmt] return ...
+#   67|                       0: [MethodCall] get(...)
+#   67|                         -1: [ThisAccess] this
+#   67|                         0: [VarAccess] a0
+#   67|                 4: [Method] set
 #-----|                   4: (Parameters)
-#   66|                     0: [Parameter] a0
-#   66|                     1: [Parameter] a1
-#   66|                   5: [BlockStmt] { ... }
-#   66|                     0: [ReturnStmt] return ...
-#   66|                       0: [MethodCall] setDelegatedToMember1(...)
-#   66|                         -1: [VarAccess] a0
-#   66|                         0: [VarAccess] a1
-#   66|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
-#   66|                 0: [TypeAccess] MyClass
-#   66|                 1: [TypeAccess] Integer
-#   67|     10: [Method] setDelegatedToMember2
+#   67|                     0: [Parameter] a0
+#   67|                     1: [Parameter] a1
+#   67|                   5: [BlockStmt] { ... }
+#   67|                     0: [ReturnStmt] return ...
+#   67|                       0: [MethodCall] setDelegatedToMember2(...)
+#   67|                         -1: [VarAccess] a0
+#   67|                         0: [VarAccess] a1
+#   67|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
+#   67|                 0: [TypeAccess] MyClass
+#   67|                 1: [TypeAccess] Integer
+#   67|     11: [Method] setDelegatedToMember2
 #   67|       3: [TypeAccess] Unit
 #-----|       4: (Parameters)
 #   67|         0: [Parameter] <set-?>
@@ -1058,7 +1101,7 @@ delegatedProperties.kt:
 #   67|                 0: [TypeAccess] MyClass
 #   67|                 1: [TypeAccess] Integer
 #   67|             3: [VarAccess] <set-?>
-#   67|     11: [FieldDeclaration] KMutableProperty1<MyClass,Integer> delegatedToMember2$delegate;
+#   67|     12: [FieldDeclaration] KMutableProperty1<MyClass,Integer> delegatedToMember2$delegate;
 #   67|       -1: [TypeAccess] KMutableProperty1<MyClass,Integer>
 #   67|         0: [TypeAccess] MyClass
 #   67|         1: [TypeAccess] Integer
@@ -1094,57 +1137,56 @@ delegatedProperties.kt:
 #   67|         -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
 #   67|           0: [TypeAccess] MyClass
 #   67|           1: [TypeAccess] Integer
-#   67|     12: [Method] getDelegatedToMember2
-#   67|       3: [TypeAccess] int
-#   67|       5: [BlockStmt] { ... }
-#   67|         0: [ReturnStmt] return ...
-#   67|           0: [MethodCall] getValue(...)
-#   67|             -3: [TypeAccess] Integer
-#   67|             -2: [TypeAccess] MyClass
-#   67|             -1: [TypeAccess] PropertyReferenceDelegatesKt
-#   67|             0: [VarAccess] this.delegatedToMember2$delegate
-#   67|               -1: [ThisAccess] this
-#   67|             1: [ThisAccess] this
-#   67|             2: [PropertyRefExpr] ...::...
-#   67|               -4: [AnonymousClass] new KMutableProperty1<MyClass,Integer>(...) { ... }
-#   67|                 1: [Constructor] 
-#   67|                   5: [BlockStmt] { ... }
-#   67|                     0: [SuperConstructorInvocationStmt] super(...)
-#   67|                 2: [Method] get
-#-----|                   4: (Parameters)
-#   67|                     0: [Parameter] a0
-#   67|                   5: [BlockStmt] { ... }
-#   67|                     0: [ReturnStmt] return ...
-#   67|                       0: [MethodCall] getDelegatedToMember2(...)
-#   67|                         -1: [VarAccess] a0
-#   67|                 3: [Method] invoke
-#-----|                   4: (Parameters)
-#   67|                     0: [Parameter] a0
-#   67|                   5: [BlockStmt] { ... }
-#   67|                     0: [ReturnStmt] return ...
-#   67|                       0: [MethodCall] get(...)
-#   67|                         -1: [ThisAccess] this
-#   67|                         0: [VarAccess] a0
-#   67|                 4: [Method] set
-#-----|                   4: (Parameters)
-#   67|                     0: [Parameter] a0
-#   67|                     1: [Parameter] a1
-#   67|                   5: [BlockStmt] { ... }
-#   67|                     0: [ReturnStmt] return ...
-#   67|                       0: [MethodCall] setDelegatedToMember2(...)
-#   67|                         -1: [VarAccess] a0
-#   67|                         0: [VarAccess] a1
-#   67|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
-#   67|                 0: [TypeAccess] MyClass
-#   67|                 1: [TypeAccess] Integer
-#   69|     13: [Method] setDelegatedToExtMember1
-#   69|       3: [TypeAccess] Unit
-#-----|       4: (Parameters)
-#   69|         0: [Parameter] <set-?>
-#   69|           0: [TypeAccess] int
+#   69|     13: [Method] getDelegatedToExtMember1
+#   69|       3: [TypeAccess] int
 #   69|       5: [BlockStmt] { ... }
 #   69|         0: [ReturnStmt] return ...
-#   69|           0: [MethodCall] setValue(...)
+#   69|           0: [MethodCall] getValue(...)
+#   69|             -2: [TypeAccess] Integer
+#   69|             -1: [TypeAccess] PropertyReferenceDelegatesKt
+#   69|             0: [VarAccess] this.delegatedToExtMember1$delegate
+#   69|               -1: [ThisAccess] this
+#   69|             1: [ThisAccess] this
+#   69|             2: [PropertyRefExpr] ...::...
+#   69|               -4: [AnonymousClass] new KMutableProperty1<MyClass,Integer>(...) { ... }
+#   69|                 1: [Constructor] 
+#   69|                   5: [BlockStmt] { ... }
+#   69|                     0: [SuperConstructorInvocationStmt] super(...)
+#   69|                 2: [Method] get
+#-----|                   4: (Parameters)
+#   69|                     0: [Parameter] a0
+#   69|                   5: [BlockStmt] { ... }
+#   69|                     0: [ReturnStmt] return ...
+#   69|                       0: [MethodCall] getDelegatedToExtMember1(...)
+#   69|                         -1: [VarAccess] a0
+#   69|                 3: [Method] invoke
+#-----|                   4: (Parameters)
+#   69|                     0: [Parameter] a0
+#   69|                   5: [BlockStmt] { ... }
+#   69|                     0: [ReturnStmt] return ...
+#   69|                       0: [MethodCall] get(...)
+#   69|                         -1: [ThisAccess] this
+#   69|                         0: [VarAccess] a0
+#   69|                 4: [Method] set
+#-----|                   4: (Parameters)
+#   69|                     0: [Parameter] a0
+#   69|                     1: [Parameter] a1
+#   69|                   5: [BlockStmt] { ... }
+#   69|                     0: [ReturnStmt] return ...
+#   69|                       0: [MethodCall] setDelegatedToExtMember1(...)
+#   69|                         -1: [VarAccess] a0
+#   69|                         0: [VarAccess] a1
+#   69|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
+#   69|                 0: [TypeAccess] MyClass
+#   69|                 1: [TypeAccess] Integer
+#   69|     14: [Method] setDelegatedToExtMember1
+#   69|       3: [TypeAccess] Unit
+#-----|       4: (Parameters)
+#   69|         0: [Parameter] <set-?>
+#   69|           0: [TypeAccess] int
+#   69|       5: [BlockStmt] { ... }
+#   69|         0: [ReturnStmt] return ...
+#   69|           0: [MethodCall] setValue(...)
 #   69|             -2: [TypeAccess] Integer
 #   69|             -1: [TypeAccess] PropertyReferenceDelegatesKt
 #   69|             0: [VarAccess] this.delegatedToExtMember1$delegate
@@ -1183,7 +1225,7 @@ delegatedProperties.kt:
 #   69|                 0: [TypeAccess] MyClass
 #   69|                 1: [TypeAccess] Integer
 #   69|             3: [VarAccess] <set-?>
-#   69|     14: [FieldDeclaration] KMutableProperty0<Integer> delegatedToExtMember1$delegate;
+#   69|     15: [FieldDeclaration] KMutableProperty0<Integer> delegatedToExtMember1$delegate;
 #   69|       -1: [TypeAccess] KMutableProperty0<Integer>
 #   69|         0: [TypeAccess] Integer
 #   69|       0: [PropertyRefExpr] ...::...
@@ -1226,49 +1268,50 @@ delegatedProperties.kt:
 #   69|           0: [TypeAccess] Integer
 #   69|         0: [ThisAccess] MyClass.this
 #   69|           0: [TypeAccess] MyClass
-#   69|     15: [Method] getDelegatedToExtMember1
-#   69|       3: [TypeAccess] int
-#   69|       5: [BlockStmt] { ... }
-#   69|         0: [ReturnStmt] return ...
-#   69|           0: [MethodCall] getValue(...)
-#   69|             -2: [TypeAccess] Integer
-#   69|             -1: [TypeAccess] PropertyReferenceDelegatesKt
-#   69|             0: [VarAccess] this.delegatedToExtMember1$delegate
-#   69|               -1: [ThisAccess] this
-#   69|             1: [ThisAccess] this
-#   69|             2: [PropertyRefExpr] ...::...
-#   69|               -4: [AnonymousClass] new KMutableProperty1<MyClass,Integer>(...) { ... }
-#   69|                 1: [Constructor] 
-#   69|                   5: [BlockStmt] { ... }
-#   69|                     0: [SuperConstructorInvocationStmt] super(...)
-#   69|                 2: [Method] get
+#   70|     16: [Method] getDelegatedToExtMember2
+#   70|       3: [TypeAccess] int
+#   70|       5: [BlockStmt] { ... }
+#   70|         0: [ReturnStmt] return ...
+#   70|           0: [MethodCall] getValue(...)
+#   70|             -3: [TypeAccess] Integer
+#   70|             -2: [TypeAccess] MyClass
+#   70|             -1: [TypeAccess] PropertyReferenceDelegatesKt
+#   70|             0: [VarAccess] this.delegatedToExtMember2$delegate
+#   70|               -1: [ThisAccess] this
+#   70|             1: [ThisAccess] this
+#   70|             2: [PropertyRefExpr] ...::...
+#   70|               -4: [AnonymousClass] new KMutableProperty1<MyClass,Integer>(...) { ... }
+#   70|                 1: [Constructor] 
+#   70|                   5: [BlockStmt] { ... }
+#   70|                     0: [SuperConstructorInvocationStmt] super(...)
+#   70|                 2: [Method] get
 #-----|                   4: (Parameters)
-#   69|                     0: [Parameter] a0
-#   69|                   5: [BlockStmt] { ... }
-#   69|                     0: [ReturnStmt] return ...
-#   69|                       0: [MethodCall] getDelegatedToExtMember1(...)
-#   69|                         -1: [VarAccess] a0
-#   69|                 3: [Method] invoke
+#   70|                     0: [Parameter] a0
+#   70|                   5: [BlockStmt] { ... }
+#   70|                     0: [ReturnStmt] return ...
+#   70|                       0: [MethodCall] getDelegatedToExtMember2(...)
+#   70|                         -1: [VarAccess] a0
+#   70|                 3: [Method] invoke
 #-----|                   4: (Parameters)
-#   69|                     0: [Parameter] a0
-#   69|                   5: [BlockStmt] { ... }
-#   69|                     0: [ReturnStmt] return ...
-#   69|                       0: [MethodCall] get(...)
-#   69|                         -1: [ThisAccess] this
-#   69|                         0: [VarAccess] a0
-#   69|                 4: [Method] set
+#   70|                     0: [Parameter] a0
+#   70|                   5: [BlockStmt] { ... }
+#   70|                     0: [ReturnStmt] return ...
+#   70|                       0: [MethodCall] get(...)
+#   70|                         -1: [ThisAccess] this
+#   70|                         0: [VarAccess] a0
+#   70|                 4: [Method] set
 #-----|                   4: (Parameters)
-#   69|                     0: [Parameter] a0
-#   69|                     1: [Parameter] a1
-#   69|                   5: [BlockStmt] { ... }
-#   69|                     0: [ReturnStmt] return ...
-#   69|                       0: [MethodCall] setDelegatedToExtMember1(...)
-#   69|                         -1: [VarAccess] a0
-#   69|                         0: [VarAccess] a1
-#   69|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
-#   69|                 0: [TypeAccess] MyClass
-#   69|                 1: [TypeAccess] Integer
-#   70|     16: [Method] setDelegatedToExtMember2
+#   70|                     0: [Parameter] a0
+#   70|                     1: [Parameter] a1
+#   70|                   5: [BlockStmt] { ... }
+#   70|                     0: [ReturnStmt] return ...
+#   70|                       0: [MethodCall] setDelegatedToExtMember2(...)
+#   70|                         -1: [VarAccess] a0
+#   70|                         0: [VarAccess] a1
+#   70|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
+#   70|                 0: [TypeAccess] MyClass
+#   70|                 1: [TypeAccess] Integer
+#   70|     17: [Method] setDelegatedToExtMember2
 #   70|       3: [TypeAccess] Unit
 #-----|       4: (Parameters)
 #   70|         0: [Parameter] <set-?>
@@ -1315,7 +1358,7 @@ delegatedProperties.kt:
 #   70|                 0: [TypeAccess] MyClass
 #   70|                 1: [TypeAccess] Integer
 #   70|             3: [VarAccess] <set-?>
-#   70|     17: [FieldDeclaration] KMutableProperty1<MyClass,Integer> delegatedToExtMember2$delegate;
+#   70|     18: [FieldDeclaration] KMutableProperty1<MyClass,Integer> delegatedToExtMember2$delegate;
 #   70|       -1: [TypeAccess] KMutableProperty1<MyClass,Integer>
 #   70|         0: [TypeAccess] MyClass
 #   70|         1: [TypeAccess] Integer
@@ -1353,82 +1396,7 @@ delegatedProperties.kt:
 #   70|         -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
 #   70|           0: [TypeAccess] MyClass
 #   70|           1: [TypeAccess] Integer
-#   70|     18: [Method] getDelegatedToExtMember2
-#   70|       3: [TypeAccess] int
-#   70|       5: [BlockStmt] { ... }
-#   70|         0: [ReturnStmt] return ...
-#   70|           0: [MethodCall] getValue(...)
-#   70|             -3: [TypeAccess] Integer
-#   70|             -2: [TypeAccess] MyClass
-#   70|             -1: [TypeAccess] PropertyReferenceDelegatesKt
-#   70|             0: [VarAccess] this.delegatedToExtMember2$delegate
-#   70|               -1: [ThisAccess] this
-#   70|             1: [ThisAccess] this
-#   70|             2: [PropertyRefExpr] ...::...
-#   70|               -4: [AnonymousClass] new KMutableProperty1<MyClass,Integer>(...) { ... }
-#   70|                 1: [Constructor] 
-#   70|                   5: [BlockStmt] { ... }
-#   70|                     0: [SuperConstructorInvocationStmt] super(...)
-#   70|                 2: [Method] get
-#-----|                   4: (Parameters)
-#   70|                     0: [Parameter] a0
-#   70|                   5: [BlockStmt] { ... }
-#   70|                     0: [ReturnStmt] return ...
-#   70|                       0: [MethodCall] getDelegatedToExtMember2(...)
-#   70|                         -1: [VarAccess] a0
-#   70|                 3: [Method] invoke
-#-----|                   4: (Parameters)
-#   70|                     0: [Parameter] a0
-#   70|                   5: [BlockStmt] { ... }
-#   70|                     0: [ReturnStmt] return ...
-#   70|                       0: [MethodCall] get(...)
-#   70|                         -1: [ThisAccess] this
-#   70|                         0: [VarAccess] a0
-#   70|                 4: [Method] set
-#-----|                   4: (Parameters)
-#   70|                     0: [Parameter] a0
-#   70|                     1: [Parameter] a1
-#   70|                   5: [BlockStmt] { ... }
-#   70|                     0: [ReturnStmt] return ...
-#   70|                       0: [MethodCall] setDelegatedToExtMember2(...)
-#   70|                         -1: [VarAccess] a0
-#   70|                         0: [VarAccess] a1
-#   70|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
-#   70|                 0: [TypeAccess] MyClass
-#   70|                 1: [TypeAccess] Integer
-#   72|     19: [FieldDeclaration] KProperty0<Integer> delegatedToBaseClass1$delegate;
-#   72|       -1: [TypeAccess] KProperty0<Integer>
-#   72|         0: [TypeAccess] Integer
-#   72|       0: [PropertyRefExpr] ...::...
-#   72|         -4: [AnonymousClass] new KProperty0<Integer>(...) { ... }
-#   72|           1: [Constructor] 
-#-----|             4: (Parameters)
-#   72|               0: [Parameter] <dispatchReceiver>
-#   72|             5: [BlockStmt] { ... }
-#   72|               0: [SuperConstructorInvocationStmt] super(...)
-#   72|               1: [ExprStmt] <Expr>;
-#   72|                 0: [AssignExpr] ...=...
-#   72|                   0: [VarAccess] this.<dispatchReceiver>
-#   72|                     -1: [ThisAccess] this
-#   72|                   1: [VarAccess] <dispatchReceiver>
-#   72|           2: [FieldDeclaration] MyClass <dispatchReceiver>;
-#   72|             -1: [TypeAccess] MyClass
-#   72|           3: [Method] get
-#   72|             5: [BlockStmt] { ... }
-#   72|               0: [ReturnStmt] return ...
-#   72|                 0: [MethodCall] getBaseClassInt(...)
-#   72|                   -1: [VarAccess] this.<dispatchReceiver>
-#   72|                     -1: [ThisAccess] this
-#   72|           4: [Method] invoke
-#   72|             5: [BlockStmt] { ... }
-#   72|               0: [ReturnStmt] return ...
-#   72|                 0: [MethodCall] get(...)
-#   72|                   -1: [ThisAccess] this
-#   72|         -3: [TypeAccess] KProperty0<Integer>
-#   72|           0: [TypeAccess] Integer
-#   72|         0: [ThisAccess] MyClass.this
-#   72|           0: [TypeAccess] MyClass
-#   72|     20: [Method] getDelegatedToBaseClass1
+#   72|     19: [Method] getDelegatedToBaseClass1
 #   72|       3: [TypeAccess] int
 #   72|       5: [BlockStmt] { ... }
 #   72|         0: [ReturnStmt] return ...
@@ -1461,34 +1429,39 @@ delegatedProperties.kt:
 #   72|               -3: [TypeAccess] KProperty1<MyClass,Integer>
 #   72|                 0: [TypeAccess] MyClass
 #   72|                 1: [TypeAccess] Integer
-#   73|     21: [FieldDeclaration] KProperty1<Base,Integer> delegatedToBaseClass2$delegate;
-#   73|       -1: [TypeAccess] KProperty1<Base,Integer>
-#   73|         0: [TypeAccess] Base
-#   73|         1: [TypeAccess] Integer
-#   73|       0: [PropertyRefExpr] ...::...
-#   73|         -4: [AnonymousClass] new KProperty1<Base,Integer>(...) { ... }
-#   73|           1: [Constructor] 
-#   73|             5: [BlockStmt] { ... }
-#   73|               0: [SuperConstructorInvocationStmt] super(...)
-#   73|           2: [Method] get
-#-----|             4: (Parameters)
-#   73|               0: [Parameter] a0
-#   73|             5: [BlockStmt] { ... }
-#   73|               0: [ReturnStmt] return ...
-#   73|                 0: [MethodCall] getBaseClassInt(...)
-#   73|                   -1: [VarAccess] a0
-#   73|           3: [Method] invoke
+#   72|     20: [FieldDeclaration] KProperty0<Integer> delegatedToBaseClass1$delegate;
+#   72|       -1: [TypeAccess] KProperty0<Integer>
+#   72|         0: [TypeAccess] Integer
+#   72|       0: [PropertyRefExpr] ...::...
+#   72|         -4: [AnonymousClass] new KProperty0<Integer>(...) { ... }
+#   72|           1: [Constructor] 
 #-----|             4: (Parameters)
-#   73|               0: [Parameter] a0
-#   73|             5: [BlockStmt] { ... }
-#   73|               0: [ReturnStmt] return ...
-#   73|                 0: [MethodCall] get(...)
-#   73|                   -1: [ThisAccess] this
-#   73|                   0: [VarAccess] a0
-#   73|         -3: [TypeAccess] KProperty1<Base,Integer>
-#   73|           0: [TypeAccess] Base
-#   73|           1: [TypeAccess] Integer
-#   73|     22: [Method] getDelegatedToBaseClass2
+#   72|               0: [Parameter] <dispatchReceiver>
+#   72|             5: [BlockStmt] { ... }
+#   72|               0: [SuperConstructorInvocationStmt] super(...)
+#   72|               1: [ExprStmt] <Expr>;
+#   72|                 0: [AssignExpr] ...=...
+#   72|                   0: [VarAccess] this.<dispatchReceiver>
+#   72|                     -1: [ThisAccess] this
+#   72|                   1: [VarAccess] <dispatchReceiver>
+#   72|           2: [FieldDeclaration] MyClass <dispatchReceiver>;
+#   72|             -1: [TypeAccess] MyClass
+#   72|           3: [Method] get
+#   72|             5: [BlockStmt] { ... }
+#   72|               0: [ReturnStmt] return ...
+#   72|                 0: [MethodCall] getBaseClassInt(...)
+#   72|                   -1: [VarAccess] this.<dispatchReceiver>
+#   72|                     -1: [ThisAccess] this
+#   72|           4: [Method] invoke
+#   72|             5: [BlockStmt] { ... }
+#   72|               0: [ReturnStmt] return ...
+#   72|                 0: [MethodCall] get(...)
+#   72|                   -1: [ThisAccess] this
+#   72|         -3: [TypeAccess] KProperty0<Integer>
+#   72|           0: [TypeAccess] Integer
+#   72|         0: [ThisAccess] MyClass.this
+#   72|           0: [TypeAccess] MyClass
+#   73|     21: [Method] getDelegatedToBaseClass2
 #   73|       3: [TypeAccess] int
 #   73|       5: [BlockStmt] { ... }
 #   73|         0: [ReturnStmt] return ...
@@ -1522,40 +1495,34 @@ delegatedProperties.kt:
 #   73|               -3: [TypeAccess] KProperty1<MyClass,Integer>
 #   73|                 0: [TypeAccess] MyClass
 #   73|                 1: [TypeAccess] Integer
-#   75|     23: [FieldDeclaration] KProperty0<Integer> delegatedToAnotherClass1$delegate;
-#   75|       -1: [TypeAccess] KProperty0<Integer>
-#   75|         0: [TypeAccess] Integer
-#   75|       0: [PropertyRefExpr] ...::...
-#   75|         -4: [AnonymousClass] new KProperty0<Integer>(...) { ... }
-#   75|           1: [Constructor] 
+#   73|     22: [FieldDeclaration] KProperty1<Base,Integer> delegatedToBaseClass2$delegate;
+#   73|       -1: [TypeAccess] KProperty1<Base,Integer>
+#   73|         0: [TypeAccess] Base
+#   73|         1: [TypeAccess] Integer
+#   73|       0: [PropertyRefExpr] ...::...
+#   73|         -4: [AnonymousClass] new KProperty1<Base,Integer>(...) { ... }
+#   73|           1: [Constructor] 
+#   73|             5: [BlockStmt] { ... }
+#   73|               0: [SuperConstructorInvocationStmt] super(...)
+#   73|           2: [Method] get
 #-----|             4: (Parameters)
-#   75|               0: [Parameter] <dispatchReceiver>
-#   75|             5: [BlockStmt] { ... }
-#   75|               0: [SuperConstructorInvocationStmt] super(...)
-#   75|               1: [ExprStmt] <Expr>;
-#   75|                 0: [AssignExpr] ...=...
-#   75|                   0: [VarAccess] this.<dispatchReceiver>
-#   75|                     -1: [ThisAccess] this
-#   75|                   1: [VarAccess] <dispatchReceiver>
-#   75|           2: [FieldDeclaration] ClassWithDelegate <dispatchReceiver>;
-#   75|             -1: [TypeAccess] ClassWithDelegate
-#   75|           3: [Method] get
-#   75|             5: [BlockStmt] { ... }
-#   75|               0: [ReturnStmt] return ...
-#   75|                 0: [MethodCall] getAnotherClassInt(...)
-#   75|                   -1: [VarAccess] this.<dispatchReceiver>
-#   75|                     -1: [ThisAccess] this
-#   75|           4: [Method] invoke
-#   75|             5: [BlockStmt] { ... }
-#   75|               0: [ReturnStmt] return ...
-#   75|                 0: [MethodCall] get(...)
-#   75|                   -1: [ThisAccess] this
-#   75|         -3: [TypeAccess] KProperty0<Integer>
-#   75|           0: [TypeAccess] Integer
-#   75|         0: [MethodCall] getAnotherClassInstance(...)
-#   75|           -1: [ThisAccess] MyClass.this
-#   75|             0: [TypeAccess] MyClass
-#   75|     24: [Method] getDelegatedToAnotherClass1
+#   73|               0: [Parameter] a0
+#   73|             5: [BlockStmt] { ... }
+#   73|               0: [ReturnStmt] return ...
+#   73|                 0: [MethodCall] getBaseClassInt(...)
+#   73|                   -1: [VarAccess] a0
+#   73|           3: [Method] invoke
+#-----|             4: (Parameters)
+#   73|               0: [Parameter] a0
+#   73|             5: [BlockStmt] { ... }
+#   73|               0: [ReturnStmt] return ...
+#   73|                 0: [MethodCall] get(...)
+#   73|                   -1: [ThisAccess] this
+#   73|                   0: [VarAccess] a0
+#   73|         -3: [TypeAccess] KProperty1<Base,Integer>
+#   73|           0: [TypeAccess] Base
+#   73|           1: [TypeAccess] Integer
+#   75|     23: [Method] getDelegatedToAnotherClass1
 #   75|       3: [TypeAccess] int
 #   75|       5: [BlockStmt] { ... }
 #   75|         0: [ReturnStmt] return ...
@@ -1588,14 +1555,44 @@ delegatedProperties.kt:
 #   75|               -3: [TypeAccess] KProperty1<MyClass,Integer>
 #   75|                 0: [TypeAccess] MyClass
 #   75|                 1: [TypeAccess] Integer
-#   77|     25: [Method] setDelegatedToTopLevel
-#   77|       3: [TypeAccess] Unit
-#-----|       4: (Parameters)
-#   77|         0: [Parameter] <set-?>
-#   77|           0: [TypeAccess] int
+#   75|     24: [FieldDeclaration] KProperty0<Integer> delegatedToAnotherClass1$delegate;
+#   75|       -1: [TypeAccess] KProperty0<Integer>
+#   75|         0: [TypeAccess] Integer
+#   75|       0: [PropertyRefExpr] ...::...
+#   75|         -4: [AnonymousClass] new KProperty0<Integer>(...) { ... }
+#   75|           1: [Constructor] 
+#-----|             4: (Parameters)
+#   75|               0: [Parameter] <dispatchReceiver>
+#   75|             5: [BlockStmt] { ... }
+#   75|               0: [SuperConstructorInvocationStmt] super(...)
+#   75|               1: [ExprStmt] <Expr>;
+#   75|                 0: [AssignExpr] ...=...
+#   75|                   0: [VarAccess] this.<dispatchReceiver>
+#   75|                     -1: [ThisAccess] this
+#   75|                   1: [VarAccess] <dispatchReceiver>
+#   75|           2: [FieldDeclaration] ClassWithDelegate <dispatchReceiver>;
+#   75|             -1: [TypeAccess] ClassWithDelegate
+#   75|           3: [Method] get
+#   75|             5: [BlockStmt] { ... }
+#   75|               0: [ReturnStmt] return ...
+#   75|                 0: [MethodCall] getAnotherClassInt(...)
+#   75|                   -1: [VarAccess] this.<dispatchReceiver>
+#   75|                     -1: [ThisAccess] this
+#   75|           4: [Method] invoke
+#   75|             5: [BlockStmt] { ... }
+#   75|               0: [ReturnStmt] return ...
+#   75|                 0: [MethodCall] get(...)
+#   75|                   -1: [ThisAccess] this
+#   75|         -3: [TypeAccess] KProperty0<Integer>
+#   75|           0: [TypeAccess] Integer
+#   75|         0: [MethodCall] getAnotherClassInstance(...)
+#   75|           -1: [ThisAccess] MyClass.this
+#   75|             0: [TypeAccess] MyClass
+#   77|     25: [Method] getDelegatedToTopLevel
+#   77|       3: [TypeAccess] int
 #   77|       5: [BlockStmt] { ... }
 #   77|         0: [ReturnStmt] return ...
-#   77|           0: [MethodCall] setValue(...)
+#   77|           0: [MethodCall] getValue(...)
 #   77|             -2: [TypeAccess] Integer
 #   77|             -1: [TypeAccess] PropertyReferenceDelegatesKt
 #   77|             0: [VarAccess] this.delegatedToTopLevel$delegate
@@ -1633,40 +1630,14 @@ delegatedProperties.kt:
 #   77|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
 #   77|                 0: [TypeAccess] MyClass
 #   77|                 1: [TypeAccess] Integer
-#   77|             3: [VarAccess] <set-?>
-#   77|     26: [FieldDeclaration] KMutableProperty0<Integer> delegatedToTopLevel$delegate;
-#   77|       -1: [TypeAccess] KMutableProperty0<Integer>
-#   77|         0: [TypeAccess] Integer
-#   77|       0: [PropertyRefExpr] ...::...
-#   77|         -4: [AnonymousClass] new KMutableProperty0<Integer>(...) { ... }
-#   77|           1: [Constructor] 
-#   77|             5: [BlockStmt] { ... }
-#   77|               0: [SuperConstructorInvocationStmt] super(...)
-#   77|           2: [Method] get
-#   77|             5: [BlockStmt] { ... }
-#   77|               0: [ReturnStmt] return ...
-#   77|                 0: [MethodCall] getTopLevelInt(...)
-#   77|                   -1: [TypeAccess] DelegatedPropertiesKt
-#   77|           3: [Method] invoke
-#   77|             5: [BlockStmt] { ... }
-#   77|               0: [ReturnStmt] return ...
-#   77|                 0: [MethodCall] get(...)
-#   77|                   -1: [ThisAccess] this
-#   77|           4: [Method] set
-#-----|             4: (Parameters)
-#   77|               0: [Parameter] a0
-#   77|             5: [BlockStmt] { ... }
-#   77|               0: [ReturnStmt] return ...
-#   77|                 0: [MethodCall] setTopLevelInt(...)
-#   77|                   -1: [TypeAccess] DelegatedPropertiesKt
-#   77|                   0: [VarAccess] a0
-#   77|         -3: [TypeAccess] KMutableProperty0<Integer>
-#   77|           0: [TypeAccess] Integer
-#   77|     27: [Method] getDelegatedToTopLevel
-#   77|       3: [TypeAccess] int
+#   77|     26: [Method] setDelegatedToTopLevel
+#   77|       3: [TypeAccess] Unit
+#-----|       4: (Parameters)
+#   77|         0: [Parameter] <set-?>
+#   77|           0: [TypeAccess] int
 #   77|       5: [BlockStmt] { ... }
 #   77|         0: [ReturnStmt] return ...
-#   77|           0: [MethodCall] getValue(...)
+#   77|           0: [MethodCall] setValue(...)
 #   77|             -2: [TypeAccess] Integer
 #   77|             -1: [TypeAccess] PropertyReferenceDelegatesKt
 #   77|             0: [VarAccess] this.delegatedToTopLevel$delegate
@@ -1704,26 +1675,36 @@ delegatedProperties.kt:
 #   77|               -3: [TypeAccess] KMutableProperty1<MyClass,Integer>
 #   77|                 0: [TypeAccess] MyClass
 #   77|                 1: [TypeAccess] Integer
-#   79|     28: [FieldDeclaration] KProperty0<Integer> max$delegate;
-#   79|       -1: [TypeAccess] KProperty0<Integer>
-#   79|         0: [TypeAccess] Integer
-#   79|       0: [PropertyRefExpr] ...::...
-#   79|         -4: [AnonymousClass] new KProperty0<Integer>(...) { ... }
-#   79|           1: [Constructor] 
-#   79|             5: [BlockStmt] { ... }
-#   79|               0: [SuperConstructorInvocationStmt] super(...)
-#   79|           2: [Method] get
-#   79|             5: [BlockStmt] { ... }
-#   79|               0: [ReturnStmt] return ...
-#   79|                 0: [VarAccess] MAX_VALUE
-#   79|           3: [Method] invoke
-#   79|             5: [BlockStmt] { ... }
-#   79|               0: [ReturnStmt] return ...
-#   79|                 0: [MethodCall] get(...)
-#   79|                   -1: [ThisAccess] this
-#   79|         -3: [TypeAccess] KProperty0<Integer>
-#   79|           0: [TypeAccess] Integer
-#   79|     29: [Method] getMax
+#   77|             3: [VarAccess] <set-?>
+#   77|     27: [FieldDeclaration] KMutableProperty0<Integer> delegatedToTopLevel$delegate;
+#   77|       -1: [TypeAccess] KMutableProperty0<Integer>
+#   77|         0: [TypeAccess] Integer
+#   77|       0: [PropertyRefExpr] ...::...
+#   77|         -4: [AnonymousClass] new KMutableProperty0<Integer>(...) { ... }
+#   77|           1: [Constructor] 
+#   77|             5: [BlockStmt] { ... }
+#   77|               0: [SuperConstructorInvocationStmt] super(...)
+#   77|           2: [Method] get
+#   77|             5: [BlockStmt] { ... }
+#   77|               0: [ReturnStmt] return ...
+#   77|                 0: [MethodCall] getTopLevelInt(...)
+#   77|                   -1: [TypeAccess] DelegatedPropertiesKt
+#   77|           3: [Method] invoke
+#   77|             5: [BlockStmt] { ... }
+#   77|               0: [ReturnStmt] return ...
+#   77|                 0: [MethodCall] get(...)
+#   77|                   -1: [ThisAccess] this
+#   77|           4: [Method] set
+#-----|             4: (Parameters)
+#   77|               0: [Parameter] a0
+#   77|             5: [BlockStmt] { ... }
+#   77|               0: [ReturnStmt] return ...
+#   77|                 0: [MethodCall] setTopLevelInt(...)
+#   77|                   -1: [TypeAccess] DelegatedPropertiesKt
+#   77|                   0: [VarAccess] a0
+#   77|         -3: [TypeAccess] KMutableProperty0<Integer>
+#   77|           0: [TypeAccess] Integer
+#   79|     28: [Method] getMax
 #   79|       3: [TypeAccess] int
 #   79|       5: [BlockStmt] { ... }
 #   79|         0: [ReturnStmt] return ...
@@ -1756,6 +1737,25 @@ delegatedProperties.kt:
 #   79|               -3: [TypeAccess] KProperty1<MyClass,Integer>
 #   79|                 0: [TypeAccess] MyClass
 #   79|                 1: [TypeAccess] Integer
+#   79|     29: [FieldDeclaration] KProperty0<Integer> max$delegate;
+#   79|       -1: [TypeAccess] KProperty0<Integer>
+#   79|         0: [TypeAccess] Integer
+#   79|       0: [PropertyRefExpr] ...::...
+#   79|         -4: [AnonymousClass] new KProperty0<Integer>(...) { ... }
+#   79|           1: [Constructor] 
+#   79|             5: [BlockStmt] { ... }
+#   79|               0: [SuperConstructorInvocationStmt] super(...)
+#   79|           2: [Method] get
+#   79|             5: [BlockStmt] { ... }
+#   79|               0: [ReturnStmt] return ...
+#   79|                 0: [VarAccess] MAX_VALUE
+#   79|           3: [Method] invoke
+#   79|             5: [BlockStmt] { ... }
+#   79|               0: [ReturnStmt] return ...
+#   79|                 0: [MethodCall] get(...)
+#   79|                   -1: [ThisAccess] this
+#   79|         -3: [TypeAccess] KProperty0<Integer>
+#   79|           0: [TypeAccess] Integer
 #   81|     30: [Method] fn
 #   81|       3: [TypeAccess] Unit
 #   81|       5: [BlockStmt] { ... }
@@ -2848,23 +2848,17 @@ exprs.kt:
 #  271|             0: [VarAccess] updated
 #  271|             1: [IntegerLiteral] 1
 #  272|         3: [ExprStmt] <Expr>;
-#  272|           0: [AssignExpr] ...=...
+#  272|           0: [AssignMulExpr] ...*=...
 #  272|             0: [VarAccess] updated
-#  272|             1: [MulExpr] ... * ...
-#  272|               0: [VarAccess] updated
-#  272|               1: [IntegerLiteral] 1
+#  272|             1: [IntegerLiteral] 1
 #  273|         4: [ExprStmt] <Expr>;
-#  273|           0: [AssignExpr] ...=...
+#  273|           0: [AssignDivExpr] .../=...
 #  273|             0: [VarAccess] updated
-#  273|             1: [DivExpr] ... / ...
-#  273|               0: [VarAccess] updated
-#  273|               1: [IntegerLiteral] 1
+#  273|             1: [IntegerLiteral] 1
 #  274|         5: [ExprStmt] <Expr>;
-#  274|           0: [AssignExpr] ...=...
+#  274|           0: [AssignRemExpr] ...%=...
 #  274|             0: [VarAccess] updated
-#  274|             1: [RemExpr] ... % ...
-#  274|               0: [VarAccess] updated
-#  274|               1: [IntegerLiteral] 1
+#  274|             1: [IntegerLiteral] 1
 #  278|     12: [Method] getEnumValues
 #-----|       2: (Generic Parameters)
 #  278|         0: [TypeVariable] T
diff --git a/java/ql/test-kotlin2/library-tests/exprs/binop.expected b/java/ql/test-kotlin2/library-tests/exprs/binop.expected
index fc252e90fe3c..83dad7f94b51 100644
--- a/java/ql/test-kotlin2/library-tests/exprs/binop.expected
+++ b/java/ql/test-kotlin2/library-tests/exprs/binop.expected
@@ -123,9 +123,6 @@
 | exprs.kt:261:11:261:17 | ... * ... | exprs.kt:261:11:261:12 | lx | exprs.kt:261:16:261:17 | ly |
 | exprs.kt:262:11:262:17 | ... * ... | exprs.kt:262:11:262:12 | dx | exprs.kt:262:16:262:17 | dy |
 | exprs.kt:263:11:263:17 | ... * ... | exprs.kt:263:11:263:12 | fx | exprs.kt:263:16:263:17 | fy |
-| exprs.kt:272:3:272:14 | ... * ... | exprs.kt:272:3:272:9 | updated | exprs.kt:272:14:272:14 | 1 |
-| exprs.kt:273:3:273:14 | ... / ... | exprs.kt:273:3:273:9 | updated | exprs.kt:273:14:273:14 | 1 |
-| exprs.kt:274:3:274:14 | ... % ... | exprs.kt:274:3:274:9 | updated | exprs.kt:274:14:274:14 | 1 |
 | funcExprs.kt:32:35:32:42 | ... + ... | funcExprs.kt:32:35:32:38 | this | funcExprs.kt:32:42:32:42 | a |
 | localFunctionCalls.kt:5:25:5:29 | ... + ... | localFunctionCalls.kt:5:25:5:25 | i | localFunctionCalls.kt:5:29:5:29 | x |
 | samConversion.kt:2:33:2:38 | ... % ... | samConversion.kt:2:33:2:34 | it | samConversion.kt:2:38:2:38 | 2 |
diff --git a/java/ql/test-kotlin2/library-tests/exprs/delegatedProperties.expected b/java/ql/test-kotlin2/library-tests/exprs/delegatedProperties.expected
index a530d0ee5607..c62d740a644a 100644
--- a/java/ql/test-kotlin2/library-tests/exprs/delegatedProperties.expected
+++ b/java/ql/test-kotlin2/library-tests/exprs/delegatedProperties.expected
@@ -43,18 +43,18 @@ delegatedPropertyGetters
 | delegatedProperties.kt:33:9:33:76 | readOnly | delegatedProperties.kt:33:9:33:76 | <get-readOnly> |
 | delegatedProperties.kt:34:9:34:48 | readWrite | delegatedProperties.kt:34:9:34:48 | <get-readWrite> |
 | delegatedProperties.kt:39:9:39:51 | varResource2 | delegatedProperties.kt:39:9:39:51 | <get-varResource2> |
-| delegatedProperties.kt:42:5:42:47 | varResource0 | delegatedProperties.kt:42:30:42:47 | getVarResource0 |
-| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 |
-| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 |
-| delegatedProperties.kt:69:5:69:56 | delegatedToExtMember1 | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 |
-| delegatedProperties.kt:70:5:70:59 | delegatedToExtMember2 | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 |
-| delegatedProperties.kt:72:5:72:56 | delegatedToBaseClass1 | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 |
-| delegatedProperties.kt:73:5:73:56 | delegatedToBaseClass2 | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 |
-| delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 |
-| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel |
-| delegatedProperties.kt:79:5:79:38 | max | delegatedProperties.kt:79:21:79:38 | getMax |
+| delegatedProperties.kt:42:5:42:47 | varResource0 | delegatedProperties.kt:42:5:42:47 | getVarResource0 |
+| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 |
+| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 |
+| delegatedProperties.kt:69:5:69:56 | delegatedToExtMember1 | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 |
+| delegatedProperties.kt:70:5:70:59 | delegatedToExtMember2 | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 |
+| delegatedProperties.kt:72:5:72:56 | delegatedToBaseClass1 | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 |
+| delegatedProperties.kt:73:5:73:56 | delegatedToBaseClass2 | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 |
+| delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 |
+| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel |
+| delegatedProperties.kt:79:5:79:38 | max | delegatedProperties.kt:79:5:79:38 | getMax |
 | delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedProperties.kt:82:9:82:54 | <get-delegatedToMember3> |
-| delegatedProperties.kt:87:1:87:46 | extDelegated | delegatedProperties.kt:87:34:87:46 | getExtDelegated |
+| delegatedProperties.kt:87:1:87:46 | extDelegated | delegatedProperties.kt:87:1:87:46 | getExtDelegated |
 delegatedPropertySetters
 | delegatedProperties.kt:19:9:19:51 | varResource1 | delegatedProperties.kt:19:9:19:51 | <set-varResource1> |
 | delegatedProperties.kt:34:9:34:48 | readWrite | delegatedProperties.kt:34:9:34:48 | <set-readWrite> |
diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected
index 40ef48d8916b..0acb9c221430 100644
--- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected
+++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected
@@ -52,6 +52,7 @@
 | delegatedProperties.kt:18:12:18:33 | String | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:19:9:19:51 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:19:9:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:19:9:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:19:9:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
 | delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:9:19:51 | <get-varResource1> | PropertyRefExpr |
 | delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:9:19:51 | <set-varResource1> | PropertyRefExpr |
@@ -74,7 +75,6 @@
 | delegatedProperties.kt:19:34:19:51 | get(...) | delegatedProperties.kt:19:34:19:51 | invoke | MethodCall |
 | delegatedProperties.kt:19:34:19:51 | get(...) | delegatedProperties.kt:19:34:19:51 | invoke | MethodCall |
 | delegatedProperties.kt:19:34:19:51 | getValue(...) | delegatedProperties.kt:19:9:19:51 | <get-varResource1> | MethodCall |
-| delegatedProperties.kt:19:34:19:51 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | get | ClassInstanceExpr |
 | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | get | ClassInstanceExpr |
 | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | set | ClassInstanceExpr |
@@ -116,18 +116,18 @@
 | delegatedProperties.kt:25:64:31:9 | <Stmt> | delegatedProperties.kt:25:9:31:9 | resourceDelegate | StmtExpr |
 | delegatedProperties.kt:25:64:31:9 | ReadWriteProperty<Object,Integer> | delegatedProperties.kt:25:9:31:9 | resourceDelegate | TypeAccess |
 | delegatedProperties.kt:25:64:31:9 | new (...) | delegatedProperties.kt:25:9:31:9 | resourceDelegate | ClassInstanceExpr |
+| delegatedProperties.kt:26:13:26:24 | ...=... | delegatedProperties.kt:26:13:26:24 | setCurValue | AssignExpr |
+| delegatedProperties.kt:26:13:26:24 | <set-?> | delegatedProperties.kt:26:13:26:24 | setCurValue | VarAccess |
+| delegatedProperties.kt:26:13:26:24 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:26:13:26:24 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:26:13:26:24 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:26:13:26:24 | this | delegatedProperties.kt:26:13:26:24 | getCurValue | ThisAccess |
+| delegatedProperties.kt:26:13:26:24 | this | delegatedProperties.kt:26:13:26:24 | setCurValue | ThisAccess |
+| delegatedProperties.kt:26:13:26:24 | this.curValue | delegatedProperties.kt:26:13:26:24 | getCurValue | VarAccess |
+| delegatedProperties.kt:26:13:26:24 | this.curValue | delegatedProperties.kt:26:13:26:24 | setCurValue | VarAccess |
 | delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:25:64:31:9 |  | KtInitializerAssignExpr |
-| delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:26:13:26:28 | setCurValue | AssignExpr |
-| delegatedProperties.kt:26:13:26:28 | <set-?> | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess |
-| delegatedProperties.kt:26:13:26:28 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:26:13:26:28 | curValue | delegatedProperties.kt:25:64:31:9 |  | VarAccess |
 | delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:28 | getCurValue | ThisAccess |
-| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:28 | setCurValue | ThisAccess |
-| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:28 | getCurValue | VarAccess |
-| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess |
 | delegatedProperties.kt:26:28:26:28 | 0 | delegatedProperties.kt:25:64:31:9 |  | IntegerLiteral |
 | delegatedProperties.kt:27:13:27:88 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:27:35:27:47 | Object | file://:0:0:0:0 | <none> | TypeAccess |
@@ -160,6 +160,7 @@
 | delegatedProperties.kt:33:30:33:47 | this | delegatedProperties.kt:33:30:33:47 | invoke | ThisAccess |
 | delegatedProperties.kt:34:9:34:48 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:34:9:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:34:9:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:34:9:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
 | delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:9:34:48 | <get-readWrite> | PropertyRefExpr |
 | delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:9:34:48 | <set-readWrite> | PropertyRefExpr |
@@ -182,7 +183,6 @@
 | delegatedProperties.kt:34:31:34:48 | get(...) | delegatedProperties.kt:34:31:34:48 | invoke | MethodCall |
 | delegatedProperties.kt:34:31:34:48 | get(...) | delegatedProperties.kt:34:31:34:48 | invoke | MethodCall |
 | delegatedProperties.kt:34:31:34:48 | getValue(...) | delegatedProperties.kt:34:9:34:48 | <get-readWrite> | MethodCall |
-| delegatedProperties.kt:34:31:34:48 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr |
 | delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | get | ClassInstanceExpr |
 | delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | get | ClassInstanceExpr |
@@ -225,16 +225,18 @@
 | delegatedProperties.kt:39:34:39:51 | this | delegatedProperties.kt:39:34:39:51 | invoke | ThisAccess |
 | delegatedProperties.kt:39:34:39:51 | varResource2$delegate | delegatedProperties.kt:39:9:39:51 | <get-varResource2> | VarAccess |
 | delegatedProperties.kt:42:5:42:47 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:42:5:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:42:5:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:42:30:42:47 | ...::... | delegatedProperties.kt:42:5:42:47 | getVarResource0 | PropertyRefExpr |
 | delegatedProperties.kt:42:30:42:47 | ...::... | delegatedProperties.kt:42:5:42:47 | setVarResource0 | PropertyRefExpr |
-| delegatedProperties.kt:42:30:42:47 | ...::... | delegatedProperties.kt:42:30:42:47 | getVarResource0 | PropertyRefExpr |
 | delegatedProperties.kt:42:30:42:47 | ...=... | delegatedProperties.kt:17:1:43:1 | Owner | KtInitializerAssignExpr |
 | delegatedProperties.kt:42:30:42:47 | <set-?> | delegatedProperties.kt:42:5:42:47 | setVarResource0 | VarAccess |
+| delegatedProperties.kt:42:30:42:47 | Integer | delegatedProperties.kt:42:5:42:47 | getVarResource0 | TypeAccess |
 | delegatedProperties.kt:42:30:42:47 | Integer | delegatedProperties.kt:42:5:42:47 | setVarResource0 | TypeAccess |
-| delegatedProperties.kt:42:30:42:47 | Integer | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess |
+| delegatedProperties.kt:42:30:42:47 | KMutableProperty1<Owner,Integer> | delegatedProperties.kt:42:5:42:47 | getVarResource0 | TypeAccess |
 | delegatedProperties.kt:42:30:42:47 | KMutableProperty1<Owner,Integer> | delegatedProperties.kt:42:5:42:47 | setVarResource0 | TypeAccess |
-| delegatedProperties.kt:42:30:42:47 | KMutableProperty1<Owner,Integer> | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess |
+| delegatedProperties.kt:42:30:42:47 | Owner | delegatedProperties.kt:42:5:42:47 | getVarResource0 | TypeAccess |
 | delegatedProperties.kt:42:30:42:47 | Owner | delegatedProperties.kt:42:5:42:47 | setVarResource0 | TypeAccess |
-| delegatedProperties.kt:42:30:42:47 | Owner | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess |
 | delegatedProperties.kt:42:30:42:47 | ResourceDelegate | delegatedProperties.kt:17:1:43:1 | Owner | TypeAccess |
 | delegatedProperties.kt:42:30:42:47 | ResourceDelegate | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:42:30:42:47 | a0 | delegatedProperties.kt:42:30:42:47 | get | VarAccess |
@@ -247,23 +249,21 @@
 | delegatedProperties.kt:42:30:42:47 | a1 | delegatedProperties.kt:42:30:42:47 | set | VarAccess |
 | delegatedProperties.kt:42:30:42:47 | get(...) | delegatedProperties.kt:42:30:42:47 | invoke | MethodCall |
 | delegatedProperties.kt:42:30:42:47 | get(...) | delegatedProperties.kt:42:30:42:47 | invoke | MethodCall |
-| delegatedProperties.kt:42:30:42:47 | getValue(...) | delegatedProperties.kt:42:30:42:47 | getVarResource0 | MethodCall |
+| delegatedProperties.kt:42:30:42:47 | getValue(...) | delegatedProperties.kt:42:5:42:47 | getVarResource0 | MethodCall |
 | delegatedProperties.kt:42:30:42:47 | getVarResource0(...) | delegatedProperties.kt:42:30:42:47 | get | MethodCall |
 | delegatedProperties.kt:42:30:42:47 | getVarResource0(...) | delegatedProperties.kt:42:30:42:47 | get | MethodCall |
-| delegatedProperties.kt:42:30:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:42:30:42:47 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | 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:5:42:47 | setVarResource0 | MethodCall |
 | delegatedProperties.kt:42:30:42:47 | setVarResource0(...) | delegatedProperties.kt:42:30:42:47 | set | MethodCall |
 | delegatedProperties.kt:42:30:42:47 | setVarResource0(...) | delegatedProperties.kt:42:30:42:47 | set | MethodCall |
+| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:5:42:47 | getVarResource0 | ThisAccess |
+| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:5:42:47 | getVarResource0 | ThisAccess |
 | delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:5:42:47 | setVarResource0 | ThisAccess |
 | delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:5:42:47 | setVarResource0 | ThisAccess |
-| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | getVarResource0 | ThisAccess |
-| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | getVarResource0 | ThisAccess |
 | delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | invoke | ThisAccess |
 | delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | invoke | ThisAccess |
+| delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:5:42:47 | getVarResource0 | VarAccess |
 | delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:5:42:47 | setVarResource0 | VarAccess |
-| delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:30:42:47 | getVarResource0 | VarAccess |
 | delegatedProperties.kt:42:30:42:47 | varResource0$delegate | delegatedProperties.kt:17:1:43:1 | Owner | VarAccess |
 | delegatedProperties.kt:46:5:48:5 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:46:27:46:41 | Owner | file://:0:0:0:0 | <none> | TypeAccess |
@@ -281,18 +281,18 @@
 | delegatedProperties.kt:54:51:54:68 | KProperty<?> | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:56:16:56:33 | ResourceDelegate | delegatedProperties.kt:54:5:57:5 | provideDelegate | TypeAccess |
 | delegatedProperties.kt:56:16:56:33 | new ResourceDelegate(...) | delegatedProperties.kt:54:5:57:5 | provideDelegate | ClassInstanceExpr |
+| delegatedProperties.kt:60:1:60:20 | ...=... | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | AssignExpr |
+| delegatedProperties.kt:60:1:60:20 | <set-?> | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | VarAccess |
+| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:20 | getTopLevelInt | TypeAccess |
+| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | TypeAccess |
+| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:20 | getTopLevelInt | VarAccess |
+| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | VarAccess |
+| delegatedProperties.kt:60:1:60:20 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:60:1:60:20 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:60:1:60:20 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:0:0:0:0 | <clinit> | KtInitializerAssignExpr |
-| delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | AssignExpr |
-| delegatedProperties.kt:60:1:60:24 | <set-?> | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | VarAccess |
 | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:0:0:0:0 | <clinit> | TypeAccess |
-| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:24 | getTopLevelInt | TypeAccess |
-| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | TypeAccess |
 | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:0:0:0:0 | <clinit> | VarAccess |
-| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:24 | getTopLevelInt | VarAccess |
-| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | VarAccess |
-| delegatedProperties.kt:60:1:60:24 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:60:24:60:24 | 0 | delegatedProperties.kt:0:0:0:0 | <clinit> | IntegerLiteral |
 | delegatedProperties.kt:62:25:62:48 | ...=... | delegatedProperties.kt:62:24:62:49 | ClassWithDelegate | KtInitializerAssignExpr |
@@ -335,30 +335,32 @@
 | delegatedProperties.kt:65:35:65:77 | this.anotherClassInstance | delegatedProperties.kt:65:35:65:77 | getAnotherClassInstance | VarAccess |
 | delegatedProperties.kt:65:87:65:95 | memberInt | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess |
 | delegatedProperties.kt:66:5:66:50 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:66:5:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:66:5:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:66:36:66:39 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:66:36:66:39 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess |
 | delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
+| delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | PropertyRefExpr |
 | delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | PropertyRefExpr |
-| delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | PropertyRefExpr |
 | delegatedProperties.kt:66:36:66:50 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | delegatedProperties.kt:66:36:66:50 | ...=... | delegatedProperties.kt:66:36:66:50 |  | AssignExpr |
 | delegatedProperties.kt:66:36:66:50 | <dispatchReceiver> | delegatedProperties.kt:66:36:66:50 |  | VarAccess |
 | delegatedProperties.kt:66:36:66:50 | <set-?> | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | VarAccess |
 | delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess |
+| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess |
-| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess |
-| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | KMutableProperty0<Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:66:36:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess |
-| delegatedProperties.kt:66:36:66:50 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess |
+| delegatedProperties.kt:66:36:66:50 | MyClass | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | MyClass | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess |
-| delegatedProperties.kt:66:36:66:50 | MyClass | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | 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:5:66:50 | getDelegatedToMember1 | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess |
-| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess |
 | delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | get | VarAccess |
 | delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | get | VarAccess |
 | delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | invoke | VarAccess |
@@ -375,19 +377,17 @@
 | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | get | MethodCall |
 | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | get | MethodCall |
 | delegatedProperties.kt:66:36:66:50 | getMemberInt(...) | delegatedProperties.kt:66:36:66:50 | get | MethodCall |
-| delegatedProperties.kt:66:36:66:50 | getValue(...) | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | MethodCall |
-| delegatedProperties.kt:66:36:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:66:36:66:50 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:66:36:66:50 | getValue(...) | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | MethodCall |
 | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | set | MethodCall |
 | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | set | MethodCall |
 | delegatedProperties.kt:66:36:66:50 | setMemberInt(...) | delegatedProperties.kt:66:36:66:50 | set | MethodCall |
 | delegatedProperties.kt:66:36:66:50 | setValue(...) | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | MethodCall |
+| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | ThisAccess |
+| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | ThisAccess |
 | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | ThisAccess |
 | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | ThisAccess |
 | 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 | getDelegatedToMember1 | ThisAccess |
-| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | ThisAccess |
 | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess |
 | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess |
 | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess |
@@ -395,32 +395,34 @@
 | delegatedProperties.kt:66:36:66:50 | this.<dispatchReceiver> | delegatedProperties.kt:66:36:66:50 |  | VarAccess |
 | delegatedProperties.kt:66:36:66:50 | this.<dispatchReceiver> | delegatedProperties.kt:66:36:66:50 | get | VarAccess |
 | delegatedProperties.kt:66:36:66:50 | this.<dispatchReceiver> | delegatedProperties.kt:66:36:66:50 | set | VarAccess |
+| delegatedProperties.kt:66:36:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | VarAccess |
 | delegatedProperties.kt:66:36:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | VarAccess |
-| delegatedProperties.kt:66:36:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | VarAccess |
 | delegatedProperties.kt:67:5:67:53 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:67:5:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:67:5:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
+| delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | PropertyRefExpr |
 | delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | PropertyRefExpr |
-| delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | PropertyRefExpr |
 | delegatedProperties.kt:67:36:67:53 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | delegatedProperties.kt:67:36:67:53 | <set-?> | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | VarAccess |
 | delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess |
+| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess |
-| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess |
-| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess |
-| delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess |
+| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess |
-| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess |
-| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess |
 | delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess |
-| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | 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 | get | VarAccess |
 | delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | get | VarAccess |
@@ -440,28 +442,28 @@
 | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall |
 | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall |
 | delegatedProperties.kt:67:36:67:53 | getMemberInt(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall |
-| delegatedProperties.kt:67:36:67:53 | getValue(...) | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | MethodCall |
-| delegatedProperties.kt:67:36:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:67:36:67:53 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:67:36:67:53 | getValue(...) | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | MethodCall |
 | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall |
 | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall |
 | delegatedProperties.kt:67:36:67:53 | setMemberInt(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall |
 | delegatedProperties.kt:67:36:67:53 | setValue(...) | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | MethodCall |
+| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | ThisAccess |
+| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | ThisAccess |
 | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | ThisAccess |
 | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | ThisAccess |
-| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | ThisAccess |
-| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | ThisAccess |
 | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess |
 | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess |
 | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess |
+| delegatedProperties.kt:67:36:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | VarAccess |
 | delegatedProperties.kt:67:36:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | VarAccess |
-| delegatedProperties.kt:67:36:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | VarAccess |
 | delegatedProperties.kt:69:5:69:56 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:69:5:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:69:5:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:69:39:69:42 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:69:39:69:42 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess |
 | delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
+| delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | PropertyRefExpr |
 | delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | PropertyRefExpr |
-| delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | PropertyRefExpr |
 | delegatedProperties.kt:69:39:69:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | delegatedProperties.kt:69:39:69:56 | ...=... | delegatedProperties.kt:69:39:69:56 |  | AssignExpr |
 | delegatedProperties.kt:69:39:69:56 | <extensionReceiver> | delegatedProperties.kt:69:39:69:56 |  | VarAccess |
@@ -469,20 +471,20 @@
 | 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:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess |
+| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess |
-| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess |
-| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | KMutableProperty0<Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:69:39:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess |
-| delegatedProperties.kt:69:39:69:56 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess |
+| delegatedProperties.kt:69:39:69:56 | MyClass | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | MyClass | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess |
-| delegatedProperties.kt:69:39:69:56 | MyClass | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | 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:5:69:56 | getDelegatedToExtMember1 | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess |
-| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess |
 | delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | get | VarAccess |
 | delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | get | VarAccess |
 | delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | invoke | VarAccess |
@@ -499,19 +501,17 @@
 | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | get | MethodCall |
 | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | get | MethodCall |
 | delegatedProperties.kt:69:39:69:56 | getExtDelegated(...) | delegatedProperties.kt:69:39:69:56 | get | MethodCall |
-| delegatedProperties.kt:69:39:69:56 | getValue(...) | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | MethodCall |
-| delegatedProperties.kt:69:39:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:69:39:69:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:69:39:69:56 | getValue(...) | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | MethodCall |
 | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | set | MethodCall |
 | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | set | MethodCall |
 | delegatedProperties.kt:69:39:69:56 | setExtDelegated(...) | delegatedProperties.kt:69:39:69:56 | set | MethodCall |
 | delegatedProperties.kt:69:39:69:56 | setValue(...) | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | MethodCall |
+| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | ThisAccess |
+| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | ThisAccess |
 | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | ThisAccess |
 | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | ThisAccess |
 | 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 | getDelegatedToExtMember1 | ThisAccess |
-| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | ThisAccess |
 | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess |
 | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess |
 | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess |
@@ -519,34 +519,36 @@
 | delegatedProperties.kt:69:39:69:56 | this.<extensionReceiver> | delegatedProperties.kt:69:39:69:56 |  | VarAccess |
 | delegatedProperties.kt:69:39:69:56 | this.<extensionReceiver> | delegatedProperties.kt:69:39:69:56 | get | VarAccess |
 | delegatedProperties.kt:69:39:69:56 | this.<extensionReceiver> | delegatedProperties.kt:69:39:69:56 | set | VarAccess |
+| delegatedProperties.kt:69:39:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | VarAccess |
 | delegatedProperties.kt:69:39:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | VarAccess |
-| delegatedProperties.kt:69:39:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | VarAccess |
 | delegatedProperties.kt:70:5:70:59 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:70:5:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:70:5:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
+| delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | PropertyRefExpr |
 | delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | PropertyRefExpr |
-| delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | PropertyRefExpr |
 | delegatedProperties.kt:70:39:70:59 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | delegatedProperties.kt:70:39:70:59 | <set-?> | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | VarAccess |
 | 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:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess |
+| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess |
-| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess |
-| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess |
-| delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | KMutableProperty1<MyClass,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess |
+| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess |
-| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess |
-| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess |
 | delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess |
-| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | 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 | get | VarAccess |
 | delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | get | VarAccess |
@@ -566,39 +568,38 @@
 | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | get | MethodCall |
 | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | get | MethodCall |
 | delegatedProperties.kt:70:39:70:59 | getExtDelegated(...) | delegatedProperties.kt:70:39:70:59 | get | MethodCall |
-| delegatedProperties.kt:70:39:70:59 | getValue(...) | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | MethodCall |
-| delegatedProperties.kt:70:39:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:70:39:70:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:70:39:70:59 | getValue(...) | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | MethodCall |
 | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | set | MethodCall |
 | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | set | MethodCall |
 | delegatedProperties.kt:70:39:70:59 | setExtDelegated(...) | delegatedProperties.kt:70:39:70:59 | set | MethodCall |
 | delegatedProperties.kt:70:39:70:59 | setValue(...) | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | MethodCall |
+| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | ThisAccess |
+| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | ThisAccess |
 | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | ThisAccess |
 | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | ThisAccess |
-| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | ThisAccess |
-| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | ThisAccess |
 | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess |
 | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess |
 | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess |
+| delegatedProperties.kt:70:39:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | VarAccess |
 | delegatedProperties.kt:70:39:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | VarAccess |
-| delegatedProperties.kt:70:39:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | VarAccess |
+| delegatedProperties.kt:72:5:72:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:72:39:72:42 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:72:39:72:42 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess |
 | delegatedProperties.kt:72:39:72:56 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
-| delegatedProperties.kt:72:39:72:56 | ...::... | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | PropertyRefExpr |
+| delegatedProperties.kt:72:39:72:56 | ...::... | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | PropertyRefExpr |
 | delegatedProperties.kt:72:39:72:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | 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:14:65:78 | MyClass | TypeAccess |
-| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess |
-| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess |
+| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess |
+| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess |
 | delegatedProperties.kt:72:39:72:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:72:39:72:56 | KProperty0<Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:72:39:72:56 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:72:39:72:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess |
-| delegatedProperties.kt:72:39:72:56 | MyClass | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess |
+| delegatedProperties.kt:72:39:72:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess |
+| delegatedProperties.kt:72:39:72:56 | MyClass | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | 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:39:72:56 | getDelegatedToBaseClass1 | TypeAccess |
+| delegatedProperties.kt:72:39:72:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess |
 | delegatedProperties.kt:72:39:72:56 | a0 | delegatedProperties.kt:72:39:72:56 | get | VarAccess |
 | delegatedProperties.kt:72:39:72:56 | a0 | delegatedProperties.kt:72:39:72:56 | invoke | VarAccess |
 | delegatedProperties.kt:72:39:72:56 | delegatedToBaseClass1$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess |
@@ -606,32 +607,32 @@
 | delegatedProperties.kt:72:39:72:56 | get(...) | delegatedProperties.kt:72:39:72:56 | invoke | MethodCall |
 | delegatedProperties.kt:72:39:72:56 | getBaseClassInt(...) | delegatedProperties.kt:72:39:72:56 | get | MethodCall |
 | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1(...) | delegatedProperties.kt:72:39:72:56 | get | MethodCall |
-| delegatedProperties.kt:72:39:72:56 | getValue(...) | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | MethodCall |
-| delegatedProperties.kt:72:39:72:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:72:39:72:56 | getValue(...) | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | MethodCall |
+| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | ThisAccess |
+| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | ThisAccess |
 | 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 | getDelegatedToBaseClass1 | ThisAccess |
-| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | ThisAccess |
 | delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | invoke | ThisAccess |
 | delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | invoke | ThisAccess |
 | delegatedProperties.kt:72:39:72:56 | this.<dispatchReceiver> | delegatedProperties.kt:72:39:72:56 |  | VarAccess |
 | delegatedProperties.kt:72:39:72:56 | this.<dispatchReceiver> | delegatedProperties.kt:72:39:72:56 | get | VarAccess |
-| delegatedProperties.kt:72:39:72:56 | this.delegatedToBaseClass1$delegate | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | VarAccess |
+| delegatedProperties.kt:72:39:72:56 | this.delegatedToBaseClass1$delegate | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | VarAccess |
+| delegatedProperties.kt:73:5:73:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
-| delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | PropertyRefExpr |
+| delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | PropertyRefExpr |
 | delegatedProperties.kt:73:39:73:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
-| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess |
+| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess |
 | delegatedProperties.kt:73:39:73:56 | Base | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
-| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess |
-| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess |
+| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess |
+| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess |
 | delegatedProperties.kt:73:39:73:56 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:73:39:73:56 | KProperty1<Base,Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:73:39:73:56 | KProperty1<Base,Integer> | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:73:39:73:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess |
-| delegatedProperties.kt:73:39:73:56 | MyClass | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess |
-| delegatedProperties.kt:73:39:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess |
+| delegatedProperties.kt:73:39:73:56 | KProperty1<MyClass,Integer> | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess |
+| delegatedProperties.kt:73:39:73:56 | MyClass | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess |
+| delegatedProperties.kt:73:39:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:5: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 | get | VarAccess |
 | delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | invoke | VarAccess |
@@ -641,31 +642,31 @@
 | delegatedProperties.kt:73:39:73:56 | get(...) | delegatedProperties.kt:73:39:73:56 | invoke | MethodCall |
 | delegatedProperties.kt:73:39:73:56 | getBaseClassInt(...) | delegatedProperties.kt:73:39:73:56 | get | MethodCall |
 | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2(...) | delegatedProperties.kt:73:39:73:56 | get | MethodCall |
-| delegatedProperties.kt:73:39:73:56 | getValue(...) | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | MethodCall |
-| delegatedProperties.kt:73:39:73:56 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | ThisAccess |
-| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | ThisAccess |
+| delegatedProperties.kt:73:39:73:56 | getValue(...) | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | MethodCall |
+| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | ThisAccess |
+| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | ThisAccess |
 | delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | invoke | ThisAccess |
 | delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | invoke | ThisAccess |
-| delegatedProperties.kt:73:39:73:56 | this.delegatedToBaseClass2$delegate | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | VarAccess |
+| delegatedProperties.kt:73:39:73:56 | this.delegatedToBaseClass2$delegate | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | VarAccess |
+| delegatedProperties.kt:75:5:75:78 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:75:42:75:61 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:75:42:75:61 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess |
 | delegatedProperties.kt:75:42:75:61 | getAnotherClassInstance(...) | delegatedProperties.kt:65:14:65:78 | MyClass | MethodCall |
 | delegatedProperties.kt:75:42:75:78 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
-| delegatedProperties.kt:75:42:75:78 | ...::... | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | PropertyRefExpr |
+| delegatedProperties.kt:75:42:75:78 | ...::... | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | PropertyRefExpr |
 | delegatedProperties.kt:75:42:75:78 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | delegatedProperties.kt:75:42:75:78 | ...=... | delegatedProperties.kt:75:42:75:78 |  | AssignExpr |
 | 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:14:65:78 | MyClass | TypeAccess |
-| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
-| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
+| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
+| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
 | delegatedProperties.kt:75:42:75:78 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:75:42:75:78 | KProperty0<Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:75:42:75:78 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:75:42:75:78 | KProperty1<MyClass,Integer> | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
-| delegatedProperties.kt:75:42:75:78 | MyClass | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
-| delegatedProperties.kt:75:42:75:78 | PropertyReferenceDelegatesKt | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
+| delegatedProperties.kt:75:42:75:78 | KProperty1<MyClass,Integer> | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
+| delegatedProperties.kt:75:42:75:78 | MyClass | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
+| delegatedProperties.kt:75:42:75:78 | PropertyReferenceDelegatesKt | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess |
 | delegatedProperties.kt:75:42:75:78 | a0 | delegatedProperties.kt:75:42:75:78 | get | VarAccess |
 | delegatedProperties.kt:75:42:75:78 | a0 | delegatedProperties.kt:75:42:75:78 | invoke | VarAccess |
 | delegatedProperties.kt:75:42:75:78 | delegatedToAnotherClass1$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess |
@@ -673,39 +674,40 @@
 | delegatedProperties.kt:75:42:75:78 | get(...) | delegatedProperties.kt:75:42:75:78 | invoke | MethodCall |
 | delegatedProperties.kt:75:42:75:78 | getAnotherClassInt(...) | delegatedProperties.kt:75:42:75:78 | get | MethodCall |
 | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1(...) | delegatedProperties.kt:75:42:75:78 | get | MethodCall |
-| delegatedProperties.kt:75:42:75:78 | getValue(...) | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | MethodCall |
-| delegatedProperties.kt:75:42:75:78 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:75:42:75:78 | getValue(...) | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | MethodCall |
+| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | ThisAccess |
+| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | ThisAccess |
 | 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 | getDelegatedToAnotherClass1 | ThisAccess |
-| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | ThisAccess |
 | delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | invoke | ThisAccess |
 | delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | invoke | ThisAccess |
 | delegatedProperties.kt:75:42:75:78 | this.<dispatchReceiver> | delegatedProperties.kt:75:42:75:78 |  | VarAccess |
 | delegatedProperties.kt:75:42:75:78 | this.<dispatchReceiver> | delegatedProperties.kt:75:42:75:78 | get | VarAccess |
-| delegatedProperties.kt:75:42:75:78 | this.delegatedToAnotherClass1$delegate | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | VarAccess |
+| delegatedProperties.kt:75:42:75:78 | this.delegatedToAnotherClass1$delegate | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | VarAccess |
 | delegatedProperties.kt:77:5:77:49 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:77:5:77:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:77:5:77:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
+| delegatedProperties.kt:77:37:77:49 | ...::... | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | PropertyRefExpr |
 | delegatedProperties.kt:77:37:77:49 | ...::... | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | PropertyRefExpr |
-| delegatedProperties.kt:77:37:77:49 | ...::... | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | PropertyRefExpr |
 | delegatedProperties.kt:77:37:77:49 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | delegatedProperties.kt:77:37:77:49 | <set-?> | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | VarAccess |
 | 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:14:65:78 | MyClass | TypeAccess |
+| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess |
+| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess |
-| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess |
-| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | KMutableProperty0<Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:77:37:77:49 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess |
-| delegatedProperties.kt:77:37:77:49 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess |
+| delegatedProperties.kt:77:37:77:49 | MyClass | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | MyClass | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess |
-| delegatedProperties.kt:77:37:77:49 | MyClass | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess |
+| delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess |
-| delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess |
 | delegatedProperties.kt:77:37:77:49 | a0 | delegatedProperties.kt:77:37:77:49 | get | VarAccess |
 | delegatedProperties.kt:77:37:77:49 | a0 | delegatedProperties.kt:77:37:77:49 | get | VarAccess |
 | delegatedProperties.kt:77:37:77:49 | a0 | delegatedProperties.kt:77:37:77:49 | invoke | VarAccess |
@@ -722,52 +724,51 @@
 | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel(...) | delegatedProperties.kt:77:37:77:49 | get | MethodCall |
 | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel(...) | delegatedProperties.kt:77:37:77:49 | get | MethodCall |
 | delegatedProperties.kt:77:37:77:49 | getTopLevelInt(...) | delegatedProperties.kt:77:37:77:49 | get | MethodCall |
-| delegatedProperties.kt:77:37:77:49 | getValue(...) | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | MethodCall |
-| delegatedProperties.kt:77:37:77:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:77:37:77:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:77:37:77:49 | getValue(...) | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | MethodCall |
 | delegatedProperties.kt:77:37:77:49 | setDelegatedToTopLevel(...) | delegatedProperties.kt:77:37:77:49 | set | MethodCall |
 | delegatedProperties.kt:77:37:77:49 | setDelegatedToTopLevel(...) | delegatedProperties.kt:77:37:77:49 | set | MethodCall |
 | delegatedProperties.kt:77:37:77:49 | setTopLevelInt(...) | delegatedProperties.kt:77:37:77:49 | set | MethodCall |
 | delegatedProperties.kt:77:37:77:49 | setValue(...) | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | MethodCall |
+| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | ThisAccess |
+| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | ThisAccess |
 | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | ThisAccess |
 | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | ThisAccess |
-| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | ThisAccess |
-| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | ThisAccess |
 | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | invoke | ThisAccess |
 | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | invoke | ThisAccess |
 | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | invoke | ThisAccess |
+| delegatedProperties.kt:77:37:77:49 | this.delegatedToTopLevel$delegate | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | VarAccess |
 | delegatedProperties.kt:77:37:77:49 | this.delegatedToTopLevel$delegate | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | VarAccess |
-| delegatedProperties.kt:77:37:77:49 | this.delegatedToTopLevel$delegate | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | VarAccess |
+| delegatedProperties.kt:79:5:79:38 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:79:21:79:38 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr |
-| delegatedProperties.kt:79:21:79:38 | ...::... | delegatedProperties.kt:79:21:79:38 | getMax | PropertyRefExpr |
+| delegatedProperties.kt:79:21:79:38 | ...::... | delegatedProperties.kt:79:5:79:38 | getMax | PropertyRefExpr |
 | delegatedProperties.kt:79:21:79:38 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr |
 | delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
-| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess |
-| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess |
+| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess |
+| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess |
 | delegatedProperties.kt:79:21:79:38 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:79:21:79:38 | KProperty0<Integer> | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess |
 | delegatedProperties.kt:79:21:79:38 | KProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:79:21:79:38 | KProperty1<MyClass,Integer> | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess |
+| delegatedProperties.kt:79:21:79:38 | KProperty1<MyClass,Integer> | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess |
 | delegatedProperties.kt:79:21:79:38 | MAX_VALUE | delegatedProperties.kt:79:21:79:38 | get | VarAccess |
-| delegatedProperties.kt:79:21:79:38 | MyClass | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess |
-| delegatedProperties.kt:79:21:79:38 | PropertyReferenceDelegatesKt | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess |
+| delegatedProperties.kt:79:21:79:38 | MyClass | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess |
+| delegatedProperties.kt:79:21:79:38 | PropertyReferenceDelegatesKt | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess |
 | delegatedProperties.kt:79:21:79:38 | a0 | delegatedProperties.kt:79:21:79:38 | get | VarAccess |
 | delegatedProperties.kt:79:21:79:38 | a0 | delegatedProperties.kt:79:21:79:38 | invoke | VarAccess |
 | delegatedProperties.kt:79:21:79:38 | get(...) | delegatedProperties.kt:79:21:79:38 | invoke | MethodCall |
 | delegatedProperties.kt:79:21:79:38 | get(...) | delegatedProperties.kt:79:21:79:38 | invoke | MethodCall |
 | delegatedProperties.kt:79:21:79:38 | getMax(...) | delegatedProperties.kt:79:21:79:38 | get | MethodCall |
-| delegatedProperties.kt:79:21:79:38 | getValue(...) | delegatedProperties.kt:79:21:79:38 | getMax | MethodCall |
-| delegatedProperties.kt:79:21:79:38 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:79:21:79:38 | getValue(...) | delegatedProperties.kt:79:5:79:38 | getMax | MethodCall |
 | delegatedProperties.kt:79:21:79:38 | max$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess |
-| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | getMax | ThisAccess |
-| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | getMax | ThisAccess |
+| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:5:79:38 | getMax | ThisAccess |
+| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:5:79:38 | getMax | ThisAccess |
 | delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | invoke | ThisAccess |
 | delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | invoke | ThisAccess |
-| delegatedProperties.kt:79:21:79:38 | this.max$delegate | delegatedProperties.kt:79:21:79:38 | getMax | VarAccess |
+| delegatedProperties.kt:79:21:79:38 | this.max$delegate | delegatedProperties.kt:79:5:79:38 | getMax | VarAccess |
 | delegatedProperties.kt:81:5:84:5 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:82:9:82:54 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:82:9:82:54 | delegatedToMember3$delegate | delegatedProperties.kt:81:5:84:5 | fn | LocalVariableDeclExpr |
 | delegatedProperties.kt:82:9:82:54 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:82:9:82:54 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:82:40:82:43 | this | delegatedProperties.kt:81:5:84:5 | fn | ThisAccess |
 | delegatedProperties.kt:82:40:82:54 | ...::... | delegatedProperties.kt:81:5:84:5 | fn | PropertyRefExpr |
 | delegatedProperties.kt:82:40:82:54 | ...::... | delegatedProperties.kt:82:9:82:54 | <get-delegatedToMember3> | PropertyRefExpr |
@@ -804,7 +805,6 @@
 | delegatedProperties.kt:82:40:82:54 | get(...) | delegatedProperties.kt:82:40:82:54 | invoke | MethodCall |
 | delegatedProperties.kt:82:40:82:54 | getMemberInt(...) | delegatedProperties.kt:82:40:82:54 | get | MethodCall |
 | delegatedProperties.kt:82:40:82:54 | getValue(...) | delegatedProperties.kt:82:9:82:54 | <get-delegatedToMember3> | MethodCall |
-| delegatedProperties.kt:82:40:82:54 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:82:40:82:54 | new (...) | delegatedProperties.kt:82:40:82:54 | get | ClassInstanceExpr |
 | delegatedProperties.kt:82:40:82:54 | new (...) | delegatedProperties.kt:82:40:82:54 | get | ClassInstanceExpr |
 | delegatedProperties.kt:82:40:82:54 | new (...) | delegatedProperties.kt:82:40:82:54 | set | ClassInstanceExpr |
@@ -823,39 +823,41 @@
 | delegatedProperties.kt:83:9:83:12 | fn(...) | delegatedProperties.kt:81:5:84:5 | fn | MethodCall |
 | delegatedProperties.kt:83:9:83:12 | this | delegatedProperties.kt:81:5:84:5 | fn | ThisAccess |
 | delegatedProperties.kt:87:1:87:46 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:87:1:87:46 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:87:1:87:46 | int | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:87:5:87:11 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:87:5:87:11 | MyClass | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:0:0:0:0 | <clinit> | PropertyRefExpr |
+| delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:87:1:87:46 | getExtDelegated | PropertyRefExpr |
 | delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:87:1:87:46 | setExtDelegated | PropertyRefExpr |
-| delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:87:34:87:46 | getExtDelegated | PropertyRefExpr |
 | delegatedProperties.kt:87:34:87:46 | ...=... | delegatedProperties.kt:0:0:0:0 | <clinit> | KtInitializerAssignExpr |
 | delegatedProperties.kt:87:34:87:46 | <set-?> | delegatedProperties.kt:87:1:87:46 | setExtDelegated | VarAccess |
 | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:0:0:0:0 | <clinit> | TypeAccess |
+| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess |
 | 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 | get | TypeAccess |
 | 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 | getExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | set | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | set | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | set | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:0:0:0:0 | <clinit> | VarAccess |
+| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:1:87:46 | getExtDelegated | VarAccess |
 | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:1:87:46 | setExtDelegated | VarAccess |
-| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:34:87:46 | getExtDelegated | VarAccess |
 | 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:1:87:46 | getExtDelegated | TypeAccess |
+| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess |
-| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess |
-| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | KMutableProperty0<Integer> | delegatedProperties.kt:0:0:0:0 | <clinit> | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | KMutableProperty0<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:87:34:87:46 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess |
-| delegatedProperties.kt:87:34:87:46 | KMutableProperty1<MyClass,Integer> | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess |
+| delegatedProperties.kt:87:34:87:46 | MyClass | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | MyClass | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess |
-| delegatedProperties.kt:87:34:87:46 | MyClass | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess |
+| delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess |
-| delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess |
 | delegatedProperties.kt:87:34:87:46 | a0 | delegatedProperties.kt:87:34:87:46 | get | VarAccess |
 | delegatedProperties.kt:87:34:87:46 | a0 | delegatedProperties.kt:87:34:87:46 | get | VarAccess |
 | delegatedProperties.kt:87:34:87:46 | a0 | delegatedProperties.kt:87:34:87:46 | invoke | VarAccess |
@@ -871,15 +873,13 @@
 | delegatedProperties.kt:87:34:87:46 | getExtDelegated(...) | delegatedProperties.kt:87:34:87:46 | get | MethodCall |
 | delegatedProperties.kt:87:34:87:46 | getExtDelegated(...) | delegatedProperties.kt:87:34:87:46 | get | MethodCall |
 | delegatedProperties.kt:87:34:87:46 | getTopLevelInt(...) | delegatedProperties.kt:87:34:87:46 | get | MethodCall |
-| delegatedProperties.kt:87:34:87:46 | getValue(...) | delegatedProperties.kt:87:34:87:46 | getExtDelegated | MethodCall |
-| delegatedProperties.kt:87:34:87:46 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| delegatedProperties.kt:87:34:87:46 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| delegatedProperties.kt:87:34:87:46 | getValue(...) | delegatedProperties.kt:87:1:87:46 | getExtDelegated | MethodCall |
 | delegatedProperties.kt:87:34:87:46 | setExtDelegated(...) | delegatedProperties.kt:87:34:87:46 | set | MethodCall |
 | delegatedProperties.kt:87:34:87:46 | setExtDelegated(...) | delegatedProperties.kt:87:34:87:46 | set | MethodCall |
 | delegatedProperties.kt:87:34:87:46 | setTopLevelInt(...) | delegatedProperties.kt:87:34:87:46 | set | MethodCall |
 | delegatedProperties.kt:87:34:87:46 | setValue(...) | delegatedProperties.kt:87:1:87:46 | setExtDelegated | MethodCall |
+| delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:1:87:46 | getExtDelegated | ExtensionReceiverAccess |
 | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:1:87:46 | setExtDelegated | ExtensionReceiverAccess |
-| delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | getExtDelegated | ExtensionReceiverAccess |
 | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess |
 | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess |
 | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess |
@@ -1541,12 +1541,12 @@
 | exprs.kt:186:5:186:27 | green | exprs.kt:184:1:187:1 | enums | LocalVariableDeclExpr |
 | exprs.kt:186:23:186:27 | Color | exprs.kt:184:1:187:1 | enums | TypeAccess |
 | exprs.kt:186:23:186:27 | Color.GREEN | exprs.kt:184:1:187:1 | enums | VarAccess |
+| exprs.kt:192:5:192:10 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| exprs.kt:192:5:192:10 | this | exprs.kt:192:5:192:10 | getA1 | ThisAccess |
+| exprs.kt:192:5:192:10 | this.a1 | exprs.kt:192:5:192:10 | getA1 | VarAccess |
 | exprs.kt:192:5:192:14 | ...=... | exprs.kt:191:1:199:1 | Class1 | KtInitializerAssignExpr |
 | exprs.kt:192:5:192:14 | a1 | exprs.kt:191:1:199:1 | Class1 | VarAccess |
 | exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| exprs.kt:192:5:192:14 | this | exprs.kt:192:5:192:14 | getA1 | ThisAccess |
-| exprs.kt:192:5:192:14 | this.a1 | exprs.kt:192:5:192:14 | getA1 | VarAccess |
 | exprs.kt:192:14:192:14 | 1 | exprs.kt:191:1:199:1 | Class1 | IntegerLiteral |
 | exprs.kt:193:5:198:5 | Object | file://:0:0:0:0 | <none> | TypeAccess |
 | exprs.kt:194:9:194:18 | a2 | exprs.kt:193:5:198:5 | getObject | LocalVariableDeclExpr |
@@ -1554,12 +1554,12 @@
 | exprs.kt:195:16:197:9 | <Stmt> | exprs.kt:193:5:198:5 | getObject | StmtExpr |
 | exprs.kt:195:16:197:9 | Interface1 | exprs.kt:193:5:198:5 | getObject | TypeAccess |
 | exprs.kt:195:16:197:9 | new (...) | exprs.kt:193:5:198:5 | getObject | ClassInstanceExpr |
+| exprs.kt:196:13:196:26 | String | file://:0:0:0:0 | <none> | TypeAccess |
+| exprs.kt:196:13:196:26 | this | exprs.kt:196:13:196:26 | getA3 | ThisAccess |
+| exprs.kt:196:13:196:26 | this.a3 | exprs.kt:196:13:196:26 | getA3 | VarAccess |
 | 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 | <none> | TypeAccess |
-| exprs.kt:196:13:196:49 | String | file://:0:0:0:0 | <none> | 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:49 | getA3 | ThisAccess |
-| exprs.kt:196:13:196:49 | this.a3 | exprs.kt:196:13:196:49 | 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 |
@@ -1745,19 +1745,13 @@
 | exprs.kt:271:3:271:14 | ...-=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignSubExpr |
 | exprs.kt:271:3:271:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess |
 | exprs.kt:271:14:271:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral |
-| exprs.kt:272:3:272:9 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess |
-| exprs.kt:272:3:272:14 | ... * ... | exprs.kt:267:1:276:1 | inPlaceOperators | MulExpr |
-| exprs.kt:272:3:272:14 | ...=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignExpr |
+| exprs.kt:272:3:272:14 | ...*=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignMulExpr |
 | exprs.kt:272:3:272:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess |
 | exprs.kt:272:14:272:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral |
-| exprs.kt:273:3:273:9 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess |
-| exprs.kt:273:3:273:14 | ... / ... | exprs.kt:267:1:276:1 | inPlaceOperators | DivExpr |
-| exprs.kt:273:3:273:14 | ...=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignExpr |
+| exprs.kt:273:3:273:14 | .../=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignDivExpr |
 | exprs.kt:273:3:273:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess |
 | exprs.kt:273:14:273:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral |
-| exprs.kt:274:3:274:9 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess |
-| exprs.kt:274:3:274:14 | ... % ... | exprs.kt:267:1:276:1 | inPlaceOperators | RemExpr |
-| exprs.kt:274:3:274:14 | ...=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignExpr |
+| exprs.kt:274:3:274:14 | ...%=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignRemExpr |
 | exprs.kt:274:3:274:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess |
 | exprs.kt:274:14:274:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral |
 | exprs.kt:278:1:278:66 | T | file://:0:0:0:0 | <none> | TypeAccess |
@@ -4297,11 +4291,11 @@
 | samConversion.kt:59:5:59:15 | fn1(...) | samConversion.kt:57:1:60:1 | test | MethodCall |
 | samConversion.kt:59:12:59:12 | 1 | samConversion.kt:57:1:60:1 | test | IntegerLiteral |
 | samConversion.kt:59:14:59:14 | 2 | samConversion.kt:57:1:60:1 | test | IntegerLiteral |
+| samConversion.kt:63:5:63:9 | int | file://:0:0:0:0 | <none> | TypeAccess |
+| samConversion.kt:63:5:63:9 | this | samConversion.kt:63:5:63:9 | getX | ThisAccess |
+| samConversion.kt:63:5:63:9 | this.x | samConversion.kt:63:5:63:9 | getX | VarAccess |
 | samConversion.kt:63:5:63:13 | ...=... | samConversion.kt:62:1:64:1 | PropertyRefsTest | KtInitializerAssignExpr |
 | samConversion.kt:63:5:63:13 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| samConversion.kt:63:5:63:13 | int | file://:0:0:0:0 | <none> | TypeAccess |
-| samConversion.kt:63:5:63:13 | this | samConversion.kt:63:5:63:13 | getX | ThisAccess |
-| samConversion.kt:63:5:63:13 | this.x | samConversion.kt:63:5:63:13 | getX | VarAccess |
 | samConversion.kt:63:5:63:13 | x | samConversion.kt:62:1:64:1 | PropertyRefsTest | VarAccess |
 | samConversion.kt:63:13:63:13 | 1 | samConversion.kt:62:1:64:1 | PropertyRefsTest | IntegerLiteral |
 | samConversion.kt:67:5:67:37 | int | file://:0:0:0:0 | <none> | TypeAccess |
diff --git a/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected b/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected
index 1328047196cd..94ef616bff83 100644
--- a/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected
+++ b/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected
@@ -86,8 +86,8 @@ anon_class_member_modifiers
 | delegatedProperties.kt:19:34:19:51 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:19:34:19:51 | set | override, public |
 | delegatedProperties.kt:23:29:23:31 | new KProperty0<String>(...) { ... } | delegatedProperties.kt:23:29:23:31 | get | override, public |
 | delegatedProperties.kt:23:29:23:31 | new KProperty0<String>(...) { ... } | delegatedProperties.kt:23:29:23:31 | invoke | override, public |
-| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:26:13:26:28 | getCurValue | final, public |
-| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:26:13:26:28 | setCurValue | final, public |
+| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:26:13:26:24 | getCurValue | final, public |
+| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:26:13:26:24 | setCurValue | final, public |
 | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:27:13:27:88 | getValue | override, public |
 | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:28:13:30:13 | setValue | override, public |
 | delegatedProperties.kt:33:30:33:47 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:33:30:33:47 | get | override, public |
@@ -187,7 +187,7 @@ anon_class_member_modifiers
 | delegatedProperties.kt:87:34:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:34:87:46 | invoke | override, public |
 | delegatedProperties.kt:87:34:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:34:87:46 | set | override, public |
 | delegatedProperties.kt:87:34:87:46 | new KMutableProperty1<MyClass,Integer>(...) { ... } | delegatedProperties.kt:87:34:87:46 | set | override, public |
-| exprs.kt:195:16:197:9 | new Interface1(...) { ... } | exprs.kt:196:13:196:49 | 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<Integer>(...) { ... } | funcExprs.kt:22:26:22:33 | invoke | final, override, public |
 | funcExprs.kt:23:26:23:33 | new Function0<Object>(...) { ... } | funcExprs.kt:23:26:23:33 | invoke | final, override, public |
 | funcExprs.kt:24:26:24:33 | new Function0<Object>(...) { ... } | funcExprs.kt:24:26:24:33 | invoke | final, override, public |
diff --git a/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected b/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected
index e3bd90271e6e..a9cce8a012fb 100644
--- a/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected
+++ b/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected
@@ -71,8 +71,7 @@ A.kt:
 #   19|             0: [VarAccess] Enu.A
 #   19|               -1: [TypeAccess] Enu
 #   20|         2: [ReturnStmt] return ...
-#   20|           0: [VarAccess] B.x
-#   20|             -1: [TypeAccess] B
+#   20|           0: [IntegerLiteral] 5
 #   23|     11: [Class] Enu
 #   23|       2: [Constructor] Enu
 #   23|         5: [BlockStmt] { ... }
diff --git a/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected b/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected
index d4a8aa109e85..2a6682ec3d85 100644
--- a/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected
+++ b/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected
@@ -6,8 +6,8 @@ calls
 | Test.java:26:5:26:35 | setter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | setter | Generic2.class:0:0:0:0 | Generic2<? super String> |
 | Test.java:27:5:27:24 | getter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | getter | Generic2.class:0:0:0:0 | Generic2<? super String> |
 | 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:39 | 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:7:21:7:26 | getStored(...) | test.kt:7:3:7:26 | getter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | test.kt:1:1:13:1 | Generic |
+| test.kt:8:26:8:39 | setStored(...) | test.kt:8:3:8:41 | setter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | test.kt:1:1:13:1 | Generic |
 | 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> |
@@ -53,30 +53,30 @@ refTypes
 | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | setter(java.lang.Object) | T | void | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter |
 | Test.java:14:14:14:17 | Test | Test.java:16:22:16:25 | user | user() | No parameters | void | Test.java:14:14:14:17 | Test | Test.java:16:22:16:25 | user |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic<String> | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId |
-| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored |
+| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.Void) | Void | String | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.Void) | Void | String | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 |
-| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored |
+| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? extends String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic<String> | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId |
-| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored |
+| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.String) | String | Object | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | Object | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 |
-| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored |
+| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<? super String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic<String> | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId |
-| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored |
+| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | privateid(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:10:3:10:41 | privateid |
-| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored |
+| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored |
 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic<String> | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter |
 | test.kt:0:0:0:0 | TestKt | test.kt:15:1:28:1 | user | user() | No parameters | void | test.kt:0:0:0:0 | TestKt | test.kt:15:1:28:1 | user |
-| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | getStored() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored |
-| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | setStored(java.lang.Object) | T | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored |
+| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | getStored() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored |
+| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | setStored(java.lang.Object) | T | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored |
 | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | identity2(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 |
 | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | identity(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity |
 | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | getter() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter |
diff --git a/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected b/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected
index d64054af2f72..fbc7f2519f65 100644
--- a/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected
+++ b/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected
@@ -12,12 +12,12 @@
 | 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: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:3:3:3:22 | getField |
-| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | setField |
-| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:25 | getRawField |
+| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:18 | getRawField |
+| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:18 | setRawField |
 | Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:25 | rawField |
-| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:25 | setRawField |
 | 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 |
 | Test.kt:11:1:11:23 | RawFieldUsedKt | Test.kt:11:1:11:23 | RawFieldUsedKt |
diff --git a/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected b/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected
index a436af623037..09dae53df720 100644
--- a/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected
+++ b/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected
@@ -1,6 +1,6 @@
 | User.java:3:21:3:24 | test |
-| test.kt:3:3:3:30 | getInternalVal$main |
+| test.kt:3:3:3:26 | getInternalVal$main |
 | test.kt:6:3:6:36 | getInternalVal |
-| test.kt:8:3:8:30 | getInternalVar$main |
-| test.kt:8:3:8:30 | setInternalVar$main |
+| test.kt:8:3:8:26 | getInternalVar$main |
+| test.kt:8:3:8:26 | setInternalVar$main |
 | test.kt:10:3:10:32 | internalFun$main |
diff --git a/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected b/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected
index 6ce063785ea5..71e45333654a 100644
--- a/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected
+++ b/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected
@@ -4,14 +4,14 @@ staticMembers
 | test.kt:9:1:29:1 | HasCompanion | test.kt:11:3:27:3 | Companion | Class |
 | test.kt:9:1:29:1 | HasCompanion | test.kt:11:3:27:3 | Companion | Field |
 | test.kt:9:1:29:1 | HasCompanion | test.kt:13:5:13:71 | staticMethod | Method |
-| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:43 | getStaticProp | Method |
-| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:43 | setStaticProp | Method |
+| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:37 | getStaticProp | Method |
+| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:37 | setStaticProp | Method |
 | test.kt:9:1:29:1 | HasCompanion | test.kt:20:7:20:45 | getPropWithStaticGetter | Method |
 | test.kt:9:1:29:1 | HasCompanion | test.kt:25:7: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:3:33:69 | staticMethod | Method |
-| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:41 | getStaticProp | Method |
-| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:41 | setStaticProp | Method |
+| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:35 | getStaticProp | Method |
+| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:35 | setStaticProp | Method |
 | test.kt:31:1:47:1 | NonCompanion | test.kt:40:5:40:43 | getPropWithStaticGetter | Method |
 | test.kt:31:1:47:1 | NonCompanion | test.kt:45:5:45:58 | setPropWithStaticSetter | Method |
 #select
@@ -28,8 +28,8 @@ staticMembers
 | test.kt:11:3:27:3 | Companion | test.kt:13:5:13:71 | staticMethod(...) | test.kt:13:5:13:71 | HasCompanion.Companion | instance |
 | test.kt:11:3:27:3 | Companion | test.kt:13:54:13:71 | nonStaticMethod(...) | test.kt:13:54:13:71 | this | instance |
 | test.kt:11:3:27:3 | Companion | test.kt:14:46:14:60 | staticMethod(...) | test.kt:14:46:14:60 | this | instance |
-| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:43 | getStaticProp(...) | test.kt:16:5:16:43 | HasCompanion.Companion | instance |
-| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:43 | setStaticProp(...) | test.kt:16:5:16:43 | HasCompanion.Companion | instance |
+| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:37 | getStaticProp(...) | test.kt:16:5:16:37 | HasCompanion.Companion | instance |
+| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:37 | setStaticProp(...) | test.kt:16:5:16:37 | HasCompanion.Companion | instance |
 | test.kt:11:3:27:3 | Companion | test.kt:20:7:20:45 | getPropWithStaticGetter(...) | test.kt:20:7:20:45 | HasCompanion.Companion | instance |
 | test.kt:11:3:27:3 | Companion | test.kt:20:26:20:45 | getPropWithStaticSetter(...) | test.kt:20:26:20:45 | this | instance |
 | test.kt:11:3:27:3 | Companion | test.kt:21:24:21:47 | setPropWithStaticSetter(...) | test.kt:21:24:21:47 | this | instance |
diff --git a/java/ql/test-kotlin2/library-tests/methods/exprs.expected b/java/ql/test-kotlin2/library-tests/methods/exprs.expected
index 4d7a0a6e85ae..041ef562dfbd 100644
--- a/java/ql/test-kotlin2/library-tests/methods/exprs.expected
+++ b/java/ql/test-kotlin2/library-tests/methods/exprs.expected
@@ -1,15 +1,15 @@
-| clinit.kt:3:1:3:24 | ...=... | AssignExpr |
+| clinit.kt:3:1:3:20 | ...=... | AssignExpr |
+| clinit.kt:3:1:3:20 | <set-?> | VarAccess |
+| clinit.kt:3:1:3:20 | ClinitKt | TypeAccess |
+| clinit.kt:3:1:3:20 | ClinitKt | TypeAccess |
+| clinit.kt:3:1:3:20 | ClinitKt.topLevelInt | VarAccess |
+| clinit.kt:3:1:3:20 | ClinitKt.topLevelInt | VarAccess |
+| 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 | ...=... | KtInitializerAssignExpr |
-| clinit.kt:3:1:3:24 | <set-?> | VarAccess |
 | clinit.kt:3:1:3:24 | ClinitKt | TypeAccess |
-| clinit.kt:3:1:3:24 | ClinitKt | TypeAccess |
-| clinit.kt:3:1:3:24 | ClinitKt | TypeAccess |
-| clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess |
-| clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess |
 | clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess |
-| clinit.kt:3:1:3:24 | Unit | TypeAccess |
-| clinit.kt:3:1:3:24 | int | TypeAccess |
-| clinit.kt:3:1:3:24 | int | TypeAccess |
 | clinit.kt:3:1:3:24 | int | TypeAccess |
 | clinit.kt:3:24:3:24 | 0 | IntegerLiteral |
 | dataClass.kt:0:0:0:0 | 0 | IntegerLiteral |
@@ -132,6 +132,7 @@
 | dataClass.kt:1:34:1:46 | this.y | VarAccess |
 | dataClass.kt:1:34:1:46 | y | VarAccess |
 | dataClass.kt:1:34:1:46 | y | VarAccess |
+| delegates.kt:4:5:6:5 | int | TypeAccess |
 | delegates.kt:4:21:6:5 | ...::... | PropertyRefExpr |
 | delegates.kt:4:21:6:5 | ...=... | KtInitializerAssignExpr |
 | delegates.kt:4:21:6:5 | Integer | TypeAccess |
@@ -148,7 +149,6 @@
 | delegates.kt:4:21:6:5 | get(...) | MethodCall |
 | delegates.kt:4:21:6:5 | getLazyProp(...) | MethodCall |
 | delegates.kt:4:21:6:5 | getValue(...) | MethodCall |
-| delegates.kt:4:21:6:5 | int | TypeAccess |
 | delegates.kt:4:21:6:5 | lazy(...) | MethodCall |
 | delegates.kt:4:21:6:5 | lazyProp$delegate | VarAccess |
 | delegates.kt:4:21:6:5 | this | ThisAccess |
@@ -160,6 +160,8 @@
 | delegates.kt:4:26:6:5 | Integer | TypeAccess |
 | delegates.kt:4:26:6:5 | int | TypeAccess |
 | delegates.kt:5:9:5:9 | 5 | IntegerLiteral |
+| delegates.kt:8:5:11:5 | String | TypeAccess |
+| delegates.kt:8:5:11:5 | String | TypeAccess |
 | delegates.kt:8:5:11:5 | Unit | TypeAccess |
 | delegates.kt:8:35:8:43 | INSTANCE | VarAccess |
 | delegates.kt:8:35:11:5 | ...::... | PropertyRefExpr |
@@ -176,8 +178,6 @@
 | delegates.kt:8:35:11:5 | String | TypeAccess |
 | delegates.kt:8:35:11:5 | String | TypeAccess |
 | delegates.kt:8:35:11:5 | String | TypeAccess |
-| delegates.kt:8:35:11:5 | String | TypeAccess |
-| delegates.kt:8:35:11:5 | String | TypeAccess |
 | delegates.kt:8:35:11:5 | a0 | VarAccess |
 | delegates.kt:8:35:11:5 | a0 | VarAccess |
 | delegates.kt:8:35:11:5 | a0 | VarAccess |
diff --git a/java/ql/test-kotlin2/library-tests/methods/methods.expected b/java/ql/test-kotlin2/library-tests/methods/methods.expected
index 330c5b2f9199..79f674e4d7c4 100644
--- a/java/ql/test-kotlin2/library-tests/methods/methods.expected
+++ b/java/ql/test-kotlin2/library-tests/methods/methods.expected
@@ -1,7 +1,7 @@
 methods
 | clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:0:0:0:0 | <clinit> | <clinit>() | static | Compiler generated |
-| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | getTopLevelInt | getTopLevelInt() | final, public, static | Compiler generated |
-| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | 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 |
@@ -12,9 +12,9 @@ methods
 | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:22:1:31 | getX | getX() | final, public | Compiler generated |
 | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:34:1:46 | getY | getY() | final, public | Compiler generated |
 | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:34:1:46 | setY | setY(java.lang.String) | final, public | Compiler generated |
-| delegates.kt:3:1:12:1 | MyClass | delegates.kt:4:21:6:5 | getLazyProp | getLazyProp() | final, public | Compiler generated |
+| delegates.kt:3:1:12:1 | MyClass | delegates.kt:4:5:6:5 | getLazyProp | getLazyProp() | final, public | Compiler generated |
+| delegates.kt:3:1:12:1 | MyClass | delegates.kt:8:5:11:5 | getObservableProp | getObservableProp() | final, public | Compiler generated |
 | delegates.kt:3:1:12:1 | MyClass | delegates.kt:8:5:11:5 | setObservableProp | setObservableProp(java.lang.String) | final, public | Compiler generated |
-| delegates.kt:3:1:12:1 | MyClass | delegates.kt:8:35:11:5 | getObservableProp | getObservableProp() | final, public | Compiler generated |
 | delegates.kt:4:21:6:5 | new KProperty1<MyClass,Integer>(...) { ... } | delegates.kt:4:21:6:5 | get | get(MyClass) | override, public |  |
 | delegates.kt:4:21:6:5 | new KProperty1<MyClass,Integer>(...) { ... } | delegates.kt:4:21:6:5 | invoke | invoke(MyClass) | override, public |  |
 | delegates.kt:4:26:6:5 | new Function0<Integer>(...) { ... } | delegates.kt:4:26:6:5 | invoke | invoke() | final, override, public |  |
diff --git a/java/ql/test-kotlin2/library-tests/methods/parameters.expected b/java/ql/test-kotlin2/library-tests/methods/parameters.expected
index 76538cae775c..f0c4ad719468 100644
--- a/java/ql/test-kotlin2/library-tests/methods/parameters.expected
+++ b/java/ql/test-kotlin2/library-tests/methods/parameters.expected
@@ -1,4 +1,4 @@
-| clinit.kt:3:1:3:24 | setTopLevelInt | clinit.kt:3:1:3:24 | <set-?> | 0 |
+| clinit.kt:3:1:3:20 | setTopLevelInt | clinit.kt:3:1:3:20 | <set-?> | 0 |
 | dataClass.kt:0:0:0:0 | copy | dataClass.kt:0:0:0:0 | x | 0 |
 | dataClass.kt:0:0:0:0 | copy | dataClass.kt:0:0:0:0 | y | 1 |
 | dataClass.kt:0:0:0:0 | copy$default | dataClass.kt:0:0:0:0 | p0 | 0 |
@@ -10,7 +10,7 @@
 | dataClass.kt:1:34:1:46 | setY | dataClass.kt:1:34:1:46 | <set-?> | 0 |
 | delegates.kt:4:21:6:5 | get | delegates.kt:4:21:6:5 | a0 | 0 |
 | delegates.kt:4:21:6:5 | invoke | delegates.kt:4:21:6:5 | a0 | 0 |
-| delegates.kt:8:5:11:5 | setObservableProp | delegates.kt:8:35:11:5 | <set-?> | 0 |
+| delegates.kt:8:5:11:5 | setObservableProp | delegates.kt:8:5:11:5 | <set-?> | 0 |
 | delegates.kt:8:35:11:5 | get | delegates.kt:8:35:11:5 | a0 | 0 |
 | delegates.kt:8:35:11:5 | get | delegates.kt:8:35:11:5 | a0 | 0 |
 | delegates.kt:8:35:11:5 | invoke | delegates.kt:8:35:11:5 | a0 | 0 |
diff --git a/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected b/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected
index 329e9e103999..6bc77b34a0ad 100644
--- a/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected
+++ b/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected
@@ -1,33 +1,33 @@
 | modifiers.kt:1:1:29:1 | X | Class | public |
 | modifiers.kt:1:1:29:1 | X | Constructor | public |
+| modifiers.kt:2:5:2:17 | getA$private | Method | final |
+| modifiers.kt:2:5:2:17 | getA$private | Method | private |
 | modifiers.kt:2:5:2:21 | a | Field | final |
 | modifiers.kt:2:5:2:21 | a | Field | private |
 | modifiers.kt:2:5:2:21 | a | Property | private |
-| modifiers.kt:2:5:2:21 | getA$private | Method | final |
-| modifiers.kt:2:5:2:21 | getA$private | Method | private |
+| modifiers.kt:3:5:3:19 | getB | Method | final |
+| modifiers.kt:3:5:3:19 | getB | Method | protected |
 | modifiers.kt:3:5:3:23 | b | Field | final |
 | modifiers.kt:3:5:3:23 | b | Field | private |
 | modifiers.kt:3:5:3:23 | b | Property | protected |
-| modifiers.kt:3:5:3:23 | getB | Method | final |
-| modifiers.kt:3:5:3:23 | getB | Method | protected |
+| modifiers.kt:4:5:4:18 | getC$main | Method | final |
+| modifiers.kt:4:5:4:18 | getC$main | Method | internal |
 | modifiers.kt:4:5:4:22 | c | Field | final |
 | modifiers.kt:4:5:4:22 | c | Field | private |
 | modifiers.kt:4:5:4:22 | c | Property | internal |
-| modifiers.kt:4:5:4:22 | getC$main | Method | final |
-| modifiers.kt:4:5:4:22 | getC$main | Method | internal |
+| modifiers.kt:5:5:5:9 | getD | Method | final |
+| modifiers.kt:5:5:5:9 | getD | Method | public |
 | modifiers.kt:5:5:5:34 | d | Field | final |
 | modifiers.kt:5:5:5:34 | d | Field | private |
 | modifiers.kt:5:5:5:34 | d | Property | public |
-| modifiers.kt:5:5:5:34 | getD | Method | final |
-| modifiers.kt:5:5:5:34 | getD | Method | public |
 | modifiers.kt:7:5:9:5 | Nested | Class | final |
 | modifiers.kt:7:5:9:5 | Nested | Class | protected |
 | modifiers.kt:7:5:9:5 | Nested | Constructor | public |
+| modifiers.kt:8:9:8:25 | getE | Method | final |
+| modifiers.kt:8:9:8:25 | getE | Method | public |
 | modifiers.kt:8:9:8:29 | e | Field | final |
 | modifiers.kt:8:9:8:29 | e | Field | private |
 | modifiers.kt:8:9:8:29 | e | Property | public |
-| modifiers.kt:8:9:8:29 | getE | Method | final |
-| modifiers.kt:8:9:8:29 | getE | Method | public |
 | modifiers.kt:11:5:15:5 | fn1 | Method | final |
 | modifiers.kt:11:5:15:5 | fn1 | Method | public |
 | modifiers.kt:12:16:14:9 |  | Constructor | public |
diff --git a/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected b/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected
index 6eff637457ed..fa622bab6ff8 100644
--- a/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected
+++ b/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected
@@ -17,16 +17,16 @@
 | 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: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 |
-| test.kt:7:1:22:1 | A | test.kt:9:3:11:3 | getAnonType |
-| test.kt:7:1:22:1 | A | test.kt:13:3:15:3 | getPrivateAnonType$private |
+| test.kt:7:1:22:1 | A | test.kt:13:3:13:29 | getPrivateAnonType$private |
 | test.kt:7:1:22:1 | A | test.kt:13:3:15:3 | privateAnonType |
 | test.kt:7:1:22:1 | A | test.kt:17:3:20:3 | privateUser |
 | test.kt:9:18:11:3 | new If<T>(...) { ... } | test.kt:9:18:11:3 |  |
-| test.kt:9:18:11:3 | new If<T>(...) { ... } | test.kt:10:5:10:22 | getX |
+| test.kt:9:18:11:3 | new If<T>(...) { ... } | test.kt:10:5:10:18 | getX |
 | test.kt:9:18:11:3 | new If<T>(...) { ... } | test.kt:10:5:10:22 | x |
 | test.kt:13:33:15:3 | new If<T>(...) { ... } | test.kt:13:33:15:3 |  |
-| test.kt:13:33:15:3 | new If<T>(...) { ... } | test.kt:14:5:14:22 | getX |
+| test.kt:13:33:15:3 | new If<T>(...) { ... } | test.kt:14:5:14:18 | getX |
 | test.kt:13:33:15:3 | new If<T>(...) { ... } | test.kt:14:5:14:22 | x |
 enclosingTypes
 | file:///!unknown-binary-location/A$<no name provided>.class:0:0:0:0 | new If<T>(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A<CharSequence> |
diff --git a/java/ql/test-kotlin2/library-tests/properties/properties.expected b/java/ql/test-kotlin2/library-tests/properties/properties.expected
index 3f11ff28185f..6e2d867153ce 100644
--- a/java/ql/test-kotlin2/library-tests/properties/properties.expected
+++ b/java/ql/test-kotlin2/library-tests/properties/properties.expected
@@ -1,33 +1,33 @@
 #select
 | properties.kt:2:27:2:50 | constructorProp | properties.kt:2:27:2:50 | getConstructorProp | file://:0:0:0:0 | <none> | properties.kt:2:27:2:50 | constructorProp | public |
 | 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:25 | getModifiableInt | properties.kt:3:5:3:25 | setModifiableInt | properties.kt:3:5:3:25 | modifiableInt | public |
-| properties.kt:4:5:4:24 | immutableInt | properties.kt:4:5:4:24 | getImmutableInt | file://:0:0:0:0 | <none> | properties.kt:4:5:4:24 | immutableInt | public |
-| properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:26 | getTypedProp | file://:0:0:0:0 | <none> | properties.kt:5:5:5:26 | typedProp | 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 | <none> | properties.kt:4:5:4:24 | immutableInt | public |
+| properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:22 | getTypedProp | file://:0:0:0:0 | <none> | properties.kt:5:5:5:26 | typedProp | public |
 | properties.kt:6:5:6:38 | abstractTypeProp | properties.kt:6:5:6:38 | getAbstractTypeProp | file://:0:0:0:0 | <none> | file://:0:0:0:0 | <none> | public |
 | properties.kt:7:5:7:30 | initialisedInInit | properties.kt:7:5:7:30 | getInitialisedInInit | file://:0:0:0:0 | <none> | properties.kt:7:5:7:30 | initialisedInInit | public |
-| properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:40 | getUseConstructorArg | file://:0:0:0:0 | <none> | properties.kt:11:5:11:40 | useConstructorArg | public |
+| properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:25 | getUseConstructorArg | file://:0:0:0:0 | <none> | 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 | <none> | file://:0:0:0:0 | <none> | public |
 | properties.kt:14:5:15:21 | six | properties.kt:15:13:15:21 | getSix | file://:0:0:0:0 | <none> | file://:0:0:0:0 | <none> | 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 | <none> | public |
 | properties.kt:19:5:20:15 | defaultGetter | properties.kt:20:13:20:15 | getDefaultGetter | file://:0:0:0:0 | <none> | 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:22:15 | setVarDefaultGetter | properties.kt:21:5:22:15 | varDefaultGetter | public |
-| properties.kt:23:5:24:15 | varDefaultSetter | properties.kt:23:5:24:15 | getVarDefaultSetter | properties.kt:24:13:24:15 | setVarDefaultSetter | properties.kt:23:5:24:15 | varDefaultSetter | 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:29: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:31:29 | setOverrideGetterUseField | properties.kt:30:5:31:29 | overrideGetterUseField | 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 | <none> | properties.kt:32:5:33:29 | useField | public |
 | properties.kt:34:5:34:36 | lateInitVar | properties.kt:34:5:34:36 | getLateInitVar | properties.kt:34:5:34:36 | setLateInitVar | properties.kt:34:5:34:36 | lateInitVar | lateinit, public |
-| properties.kt:35:5:35:32 | privateProp | properties.kt:35:5:35:32 | getPrivateProp$private | file://:0:0:0:0 | <none> | properties.kt:35:5:35:32 | privateProp | private |
-| properties.kt:36:5:36:36 | protectedProp | properties.kt:36:5:36:36 | getProtectedProp | file://:0:0:0:0 | <none> | properties.kt:36:5:36:36 | protectedProp | protected |
-| properties.kt:37:5:37:30 | publicProp | properties.kt:37:5:37:30 | getPublicProp | file://:0:0:0:0 | <none> | properties.kt:37:5:37:30 | publicProp | public |
-| properties.kt:38:5:38:34 | internalProp | properties.kt:38:5:38:34 | getInternalProp$main | file://:0:0:0:0 | <none> | properties.kt:38:5:38:34 | internalProp | internal |
-| properties.kt:67:1:67:23 | constVal | properties.kt:67:1:67:23 | getConstVal | file://:0:0:0:0 | <none> | properties.kt:67:1:67:23 | constVal | public |
-| properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:16 | getProp | file://:0:0:0:0 | <none> | properties.kt:70:5:70:16 | prop | public |
+| properties.kt:35:5:35:32 | privateProp | properties.kt:35:5:35:27 | getPrivateProp$private | file://:0:0:0:0 | <none> | properties.kt:35:5:35:32 | privateProp | private |
+| properties.kt:36:5:36:36 | protectedProp | properties.kt:36:5:36:31 | getProtectedProp | file://:0:0:0:0 | <none> | properties.kt:36:5:36:36 | protectedProp | protected |
+| properties.kt:37:5:37:30 | publicProp | properties.kt:37:5:37:25 | getPublicProp | file://:0:0:0:0 | <none> | properties.kt:37:5:37:30 | publicProp | public |
+| properties.kt:38:5:38:34 | internalProp | properties.kt:38:5:38:29 | getInternalProp$main | file://:0:0:0:0 | <none> | properties.kt:38:5:38:34 | internalProp | internal |
+| properties.kt:67:1:67:23 | constVal | properties.kt:67:1:67:18 | getConstVal | file://:0:0:0:0 | <none> | properties.kt:67:1:67:23 | constVal | public |
+| properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:12 | getProp | file://:0:0:0:0 | <none> | 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 | <none> | file://:0:0:0:0 | <none> | public |
 | properties.kt:80:1:81:13 | x | properties.kt:81:5:81:13 | getX | file://:0:0:0:0 | <none> | file://:0:0:0:0 | <none> | public |
-| properties.kt:84:5:84:29 | data | properties.kt:84:5:84:29 | getData$private | properties.kt:84:5:84:29 | setData$private | properties.kt:84:5:84:29 | data | private |
-| properties.kt:92:5:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:5:93:18 | setData$private | properties.kt:92:5:93:18 | data | private |
+| properties.kt:84:5:84:29 | data | properties.kt:84:5:84:25 | getData$private | properties.kt:84:5:84:25 | setData$private | properties.kt:84:5:84:29 | data | private |
+| properties.kt:92:5:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:5:92:25 | setData$private | properties.kt:92:5: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-kotlin2/library-tests/reflection/reflection.expected b/java/ql/test-kotlin2/library-tests/reflection/reflection.expected
index 92b20bcae778..4074866da65f 100644
--- a/java/ql/test-kotlin2/library-tests/reflection/reflection.expected
+++ b/java/ql/test-kotlin2/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 | <init> |
 propertyGetReferences
-| reflection.kt:10:38:10:42 | ...::... | reflection.kt:10:38:10:42 | get | reflection.kt:33:9:33:23 | getP0 |
-| reflection.kt:15:35:15:41 | ...::... | reflection.kt:15:35:15:41 | get | reflection.kt:33:9:33:23 | getP0 |
-| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | get | reflection.kt:34:9:34:23 | getP1 |
-| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | get | reflection.kt:34:9:34:23 | 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://<external>/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:23 | setP1 |
-| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | set | reflection.kt:34:9:34:23 | 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://<external>/Class1$Generic.class:0:0:0:0 | setP2 |
 | reflection.kt:68:17:68:34 | ...::... | reflection.kt:68:17:68:34 | set | file://<external>/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 |
@@ -346,9 +346,9 @@ compGenerated
 | reflection.kt:21:44:21:50 | new Function2<C,Integer,Unit>(...) { ... } | The class around a local function, a lambda, or a function reference |
 | reflection.kt:22:42:22:48 | new KMutableProperty0<Integer>(...) { ... } | The class around a local function, a lambda, or a function reference |
 | reflection.kt:24:46:24:64 | new Function1<KCallable<?>,Boolean>(...) { ... } | The class around a local function, a lambda, or a function reference |
-| reflection.kt:33:9:33:23 | getP0 | Default property accessor |
-| reflection.kt:34:9:34:23 | getP1 | Default property accessor |
-| reflection.kt:34:9:34:23 | 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<String,Character>(...) { ... } | The class around a local function, a lambda, or a function reference |
 | reflection.kt:51:13:51:28 | new KProperty0<Character>(...) { ... } | The class around a local function, a lambda, or a function reference |
 | reflection.kt:60:17:60:32 | new Function2<Generic<Integer>,Integer,String>(...) { ... } | The class around a local function, a lambda, or a function reference |
diff --git a/java/ql/test-kotlin2/library-tests/variables/variableAccesses.expected b/java/ql/test-kotlin2/library-tests/variables/variableAccesses.expected
index 5c3960f19b3e..360be0d0fe51 100644
--- a/java/ql/test-kotlin2/library-tests/variables/variableAccesses.expected
+++ b/java/ql/test-kotlin2/library-tests/variables/variableAccesses.expected
@@ -1,11 +1,11 @@
 varAcc
+| variables.kt:3:5:3:17 | this.prop |
 | variables.kt:3:5:3:21 | prop |
-| variables.kt:3:5:3:21 | this.prop |
 | variables.kt:7:17:7:22 | local1 |
 | variables.kt:9:17:9:22 | local2 |
 | variables.kt:10:22:10:26 | param |
 | variables.kt:11:17:11:22 | local3 |
-| variables.kt:15:1:15:21 | VariablesKt.topLevel |
+| variables.kt:15:1:15:17 | VariablesKt.topLevel |
 | variables.kt:15:1:15:21 | VariablesKt.topLevel |
 | variables.kt:21:11:21:18 | o |
 | variables.kt:21:11:21:18 | o |
@@ -20,7 +20,7 @@ extensionReceiverAcc
 | variables.kt:32:9:32:12 | this |
 | variables.kt:33:9:33:12 | this |
 instAcc
-| variables.kt:3:5:3:21 | this |
+| variables.kt:3:5:3:17 | this |
 | variables.kt:21:11:21:18 | this |
 | variables.kt:26:9:26:9 | this |
 | variables.kt:26:9:26:15 | this |
diff --git a/java/ql/test-kotlin2/library-tests/variables/variables.expected b/java/ql/test-kotlin2/library-tests/variables/variables.expected
index 0022c22ed8b1..1f562ccceac9 100644
--- a/java/ql/test-kotlin2/library-tests/variables/variables.expected
+++ b/java/ql/test-kotlin2/library-tests/variables/variables.expected
@@ -13,8 +13,8 @@ isFinal
 | variables.kt:8:9:8:26 | int local2 | non-final |
 | variables.kt:10:9:10:26 | int local3 | final |
 compileTimeConstant
+| variables.kt:3:5:3:17 | this.prop |
 | variables.kt:3:5:3:21 | prop |
-| variables.kt:3:5:3:21 | this.prop |
 | variables.kt:7:17:7:22 | local1 |
-| variables.kt:15:1:15:21 | VariablesKt.topLevel |
+| variables.kt:15:1:15:17 | VariablesKt.topLevel |
 | variables.kt:15:1:15:21 | VariablesKt.topLevel |

From 0d34837eaffcbc8606efcaf6ad41dd5390d9ac3c Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Tue, 29 Apr 2025 13:59:57 +0100
Subject: [PATCH 13/18] Bump unit tests to use latest stable Kotlin

---
 java/kotlin-extractor/dev/wrapper.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/java/kotlin-extractor/dev/wrapper.py b/java/kotlin-extractor/dev/wrapper.py
index f95a89352fc3..08969528c926 100755
--- a/java/kotlin-extractor/dev/wrapper.py
+++ b/java/kotlin-extractor/dev/wrapper.py
@@ -27,7 +27,7 @@
 import io
 import os
 
-DEFAULT_VERSION = "2.2.0-Beta1"
+DEFAULT_VERSION = "2.1.20"
 
 
 def options():

From fc1fd263dfedd3376bd3afaabcb9066908eae2d9 Mon Sep 17 00:00:00 2001
From: Chris Smowton <smowton@github.com>
Date: Tue, 29 Apr 2025 16:04:47 +0100
Subject: [PATCH 14/18] Fix plugin test to work with Kotlin 2.1.20

---
 .../kotlin/linux/custom_plugin/plugin/Plugin.kt                  | 1 +
 1 file changed, 1 insertion(+)

diff --git a/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/Plugin.kt b/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/Plugin.kt
index f45b48043930..422d84deedb0 100644
--- a/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/Plugin.kt
+++ b/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/Plugin.kt
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
 import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
 import org.jetbrains.kotlin.ir.expressions.IrExpression
 import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl
+import org.jetbrains.kotlin.ir.expressions.impl.fromSymbolOwner
 import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl
 import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl
 import org.jetbrains.kotlin.ir.symbols.IrClassSymbol

From 27222499d41f2f7ef3799ddad34e0735c2351cd0 Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Tue, 29 Apr 2025 16:19:53 +0100
Subject: [PATCH 15/18] Update test expectation

---
 .../test-kotlin2/library-tests/numlines/callable.expected   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/java/ql/test-kotlin2/library-tests/numlines/callable.expected b/java/ql/test-kotlin2/library-tests/numlines/callable.expected
index 52f3a4f2cbe8..ca6371ce23e0 100644
--- a/java/ql/test-kotlin2/library-tests/numlines/callable.expected
+++ b/java/ql/test-kotlin2/library-tests/numlines/callable.expected
@@ -1,6 +1,6 @@
 | test.kt:2:1:4:1 | foo | 3 | 3 | 0 |
-| test.kt:8:1:8:9 | getX | 1 | 1 | 0 |
-| test.kt:18:1:18:17 | getY | 5 | 1 | 4 |
+| test.kt:8:1:8:5 | getX | 1 | 1 | 0 |
+| test.kt:18:1:18:5 | getY | 5 | 1 | 4 |
 | test.kt:20:1:26:1 | Foo | 7 | 6 | 1 |
 | test.kt:21:5:24:5 | bar | 4 | 3 | 1 |
-| test.kt:25:5:25:21 | getSomeField | 1 | 1 | 0 |
+| test.kt:25:5:25:17 | getSomeField | 1 | 1 | 0 |

From a2836f5aabf764c6e6dde769f497d8686a82c11b Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Tue, 29 Apr 2025 16:21:45 +0100
Subject: [PATCH 16/18] Adjust integration test expectations

---
 .../all-platforms/private_property_accessors/test.expected  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/java/ql/integration-tests/kotlin/all-platforms/private_property_accessors/test.expected b/java/ql/integration-tests/kotlin/all-platforms/private_property_accessors/test.expected
index 903b49c91f67..5c22734fee52 100644
--- a/java/ql/integration-tests/kotlin/all-platforms/private_property_accessors/test.expected
+++ b/java/ql/integration-tests/kotlin/all-platforms/private_property_accessors/test.expected
@@ -1,6 +1,6 @@
-| hasprops.kt:3:3:3:25 | getAccessorsPublic |
-| hasprops.kt:3:3:3:25 | setAccessorsPublic |
-| hasprops.kt:5:3:6:15 | getSetterPrivate |
+| hasprops.kt:3:3:3:21 | getAccessorsPublic |
+| hasprops.kt:3:3:3:21 | setAccessorsPublic |
+| hasprops.kt:5:3:5:19 | getSetterPrivate |
 | hasprops.kt:6:5:6:15 | setSetterPrivate$private |
 | usesprops.kt:1:1:9:1 | user |
 | usesprops.kt:3:3:3:58 | useGetters |

From 3001d0bd1c36792f865632d034d10695644f5d0a Mon Sep 17 00:00:00 2001
From: Paolo Tranquilli <redsun82@gihub.com>
Date: Mon, 28 Apr 2025 10:22:11 +0200
Subject: [PATCH 17/18] Bazel: remove `2.0.0` `rules_kotlin` patching

---
 .../rules_kotlin/2.0.0-codeql.1/MODULE.bazel  | 35 -------------------
 .../codeql_add_language_version_option.patch  | 34 ------------------
 .../patches/codeql_do_not_emit_jdeps.patch    | 16 ---------
 .../rules_kotlin/2.0.0-codeql.1/source.json   |  9 -----
 .../modules/rules_kotlin/metadata.json        |  3 +-
 5 files changed, 1 insertion(+), 96 deletions(-)
 delete mode 100644 misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/MODULE.bazel
 delete mode 100644 misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_add_language_version_option.patch
 delete mode 100644 misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_do_not_emit_jdeps.patch
 delete mode 100644 misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/source.json

diff --git a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/MODULE.bazel
deleted file mode 100644
index 6c11301e2340..000000000000
--- a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/MODULE.bazel
+++ /dev/null
@@ -1,35 +0,0 @@
-module(
-    name = "rules_kotlin",
-    version = "2.0.0-codeql.1",
-    compatibility_level = 1,
-    repo_name = "rules_kotlin",
-)
-
-bazel_dep(name = "platforms", version = "0.0.10")
-bazel_dep(name = "bazel_skylib", version = "1.7.1")
-bazel_dep(name = "rules_java", version = "7.2.0")
-bazel_dep(name = "rules_python", version = "0.23.1")
-bazel_dep(name = "rules_cc", version = "0.0.8")
-bazel_dep(name = "rules_android", version = "0.1.1")
-
-rules_kotlin_extensions = use_extension(
-    "//src/main/starlark/core/repositories:bzlmod_setup.bzl",
-    "rules_kotlin_extensions",
-)
-use_repo(
-    rules_kotlin_extensions,
-    "com_github_google_ksp",
-    "com_github_jetbrains_kotlin",
-    "com_github_pinterest_ktlint",
-    "kotlinx_serialization_core_jvm",
-    "kotlinx_serialization_json",
-    "kotlinx_serialization_json_jvm",
-)
-
-register_toolchains("//kotlin/internal:default_toolchain")
-
-# TODO(bencodes) We should be able to remove this once rules_android has rolled out official Bzlmod support
-remote_android_extensions = use_extension("@bazel_tools//tools/android:android_extensions.bzl", "remote_android_tools_extensions")
-use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools")
-
-bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
diff --git a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_add_language_version_option.patch b/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_add_language_version_option.patch
deleted file mode 100644
index d5716daba07b..000000000000
--- a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_add_language_version_option.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-We need to build different extractor variants with different -language-version options, which is not allowed
-in current kotlin_rules
-diff --git a/src/main/starlark/core/options/opts.kotlinc.bzl b/src/main/starlark/core/options/opts.kotlinc.bzl
-index 5e1461b..b93e6aa 100644
---- a/src/main/starlark/core/options/opts.kotlinc.bzl
-+++ b/src/main/starlark/core/options/opts.kotlinc.bzl
-@@ -33,6 +33,11 @@ def _map_jdk_release_to_flag(version):
-         return None
-     return ["-Xjdk-release=%s" % version]
-
-+def _map_language_version_to_flag(version):
-+    if not version:
-+        return None
-+    return ["-language-version=%s" % version, "-api-version=%s" % version]
-+
- _KOPTS_ALL = {
-     "warn": struct(
-         args = dict(
-@@ -417,6 +422,15 @@ _KOPTS_ALL = {
-         value_to_flag = None,
-         map_value_to_flag = _map_jdk_release_to_flag,
-     ),
-+    "language_version": struct(
-+        args = dict(
-+            default = "1.9",
-+            doc = "-language-version",
-+        ),
-+        type = attr.string,
-+        value_to_flag = None,
-+        map_value_to_flag = _map_language_version_to_flag,
-+    ),
- }
-
- # Filters out options that are not available in current compiler release
\ No newline at end of file
diff --git a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_do_not_emit_jdeps.patch b/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_do_not_emit_jdeps.patch
deleted file mode 100644
index 380c837d06a4..000000000000
--- a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_do_not_emit_jdeps.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Emitting jdeps is broken for the 2.0.0 kotlin extractor, and we don't need those files.
-Patching it here rather than passing `--@rules_kotlin//kotlin/settings:jvm_emit_jdeps=false`
-allows us to not have to specify that option (and therefore pull in `rules_kotlin`) in `semmle-code`.
-diff --git a/kotlin/settings/BUILD.bazel b/kotlin/settings/BUILD.bazel
-index 2c93c11..f352b80 100644
---- a/kotlin/settings/BUILD.bazel
-+++ b/kotlin/settings/BUILD.bazel
-@@ -25,7 +25,7 @@ release_archive(
- # Flag that controls the emission of jdeps files during kotlin jvm compilation.
- bool_flag(
-     name = "jvm_emit_jdeps",
--    build_setting_default = True,  # Upstream default behavior
-+    build_setting_default = False,
-     visibility = ["//visibility:public"],
- )
- 
diff --git a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/source.json b/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/source.json
deleted file mode 100644
index 96d828e3455a..000000000000
--- a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/source.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-    "integrity": "sha256-2JcjzJ67t72y66yhr30jg+B0YVZDz5ejZrdYp2t9xEM=",
-    "url": "https://github.com/bazelbuild/rules_kotlin/releases/download/v2.0.0/rules_kotlin-v2.0.0.tar.gz",
-    "patches": {
-        "codeql_do_not_emit_jdeps.patch": "sha256-1ir4Aio1SICxnj1wafQ0GefT/m7bwn2n+SQwq19V3A8=",
-        "codeql_add_language_version_option.patch": "sha256-t8Fm0bYZ4Q4vTqcoXZjyK4WPEoAafjE4whJLNnrnRbg="
-    },
-    "patch_strip": 1
-}
diff --git a/misc/bazel/registry/modules/rules_kotlin/metadata.json b/misc/bazel/registry/modules/rules_kotlin/metadata.json
index 3e11b7df8202..dace87c72d1c 100644
--- a/misc/bazel/registry/modules/rules_kotlin/metadata.json
+++ b/misc/bazel/registry/modules/rules_kotlin/metadata.json
@@ -21,8 +21,7 @@
         "github:bazelbuild/rules_kotlin"
     ],
     "versions": [
-        "2.1.3-codeql.1",
-        "2.0.0-codeql.1"
+        "2.1.3-codeql.1"
     ],
     "yanked_versions": {}
 }

From fecad025ded53cfb8be6cc92506549029ae64a12 Mon Sep 17 00:00:00 2001
From: Chris Smowton <chris@smowton.net>
Date: Tue, 13 May 2025 18:10:21 +0100
Subject: [PATCH 18/18] Fix handling of X/jvm-default intermediate modes such
 as 'compatibility', the new default as of 2.2.0

---
 .../src/main/kotlin/KotlinFileExtractor.kt                 | 4 ++--
 .../kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt | 7 -------
 .../versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt    | 7 +++++++
 .../utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt    | 7 -------
 .../v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt         | 7 +++++++
 .../v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt       | 7 +++++++
 6 files changed, 23 insertions(+), 16 deletions(-)
 delete mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt
 delete mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt
 create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt

diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt
index ab3d3f69e91c..690372d67f51 100644
--- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt
+++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt
@@ -1608,7 +1608,7 @@ open class KotlinFileExtractor(
             cls.origin != IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB
 
     private fun needsInterfaceForwarder(f: IrFunction) =
-        // jvmDefaultModeEnabledIsEnabled means that -Xjvm-default=all or all-compatibility was
+        // jvmDefaultModeIsNoCompatibility means that -Xjvm-default=all or =no-compatibility was
         // used, in which case real Java default interfaces are used, and we don't need to do
         // anything.
         // Otherwise, for a Kotlin-defined method inheriting a Kotlin-defined default, we need to
@@ -1618,7 +1618,7 @@ open class KotlinFileExtractor(
         // (NB. kotlinc's actual implementation strategy is different -- it makes an inner class
         // called InterfaceWithDefault$DefaultImpls and stores the default methods
         // there to allow default method usage in Java < 8, but this is hopefully niche.
-        !jvmDefaultModeEnabledIsEnabled(getJvmDefaultMode(pluginContext.languageVersionSettings)) &&
+        !jvmDefaultModeIsNoCompatibility(getJvmDefaultMode(pluginContext.languageVersionSettings)) &&
             f.parentClassOrNull.let {
                 it != null &&
                     it.origin != IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB &&
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt
deleted file mode 100644
index cd8496526137..000000000000
--- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.github.codeql.utils.versions
-
-import org.jetbrains.kotlin.config.JvmDefaultMode
-
-fun jvmDefaultModeEnabledIsEnabled(jdm: JvmDefaultMode): Boolean {
-    return jdm.forAllMethodsWithBody
-}
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt
new file mode 100644
index 000000000000..feda11b0cc02
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt
@@ -0,0 +1,7 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.config.JvmDefaultMode
+
+fun jvmDefaultModeIsNoCompatibility(jdm: JvmDefaultMode): Boolean {
+    return jdm == JvmDefaultMode.ALL_INCOMPATIBLE
+}
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt
deleted file mode 100644
index 10a936ed9096..000000000000
--- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.github.codeql.utils.versions
-
-import org.jetbrains.kotlin.config.JvmDefaultMode
-
-fun jvmDefaultModeEnabledIsEnabled(jdm: JvmDefaultMode): Boolean {
-    return jdm.isEnabled
-}
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt
new file mode 100644
index 000000000000..7f66c341b01c
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt
@@ -0,0 +1,7 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.config.JvmDefaultMode
+
+fun jvmDefaultModeIsNoCompatibility(jdm: JvmDefaultMode): Boolean {
+    return jdm == JvmDefaultMode.ALL
+}
diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt
new file mode 100644
index 000000000000..52eac237808b
--- /dev/null
+++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt
@@ -0,0 +1,7 @@
+package com.github.codeql.utils.versions
+
+import org.jetbrains.kotlin.config.JvmDefaultMode
+
+fun jvmDefaultModeIsNoCompatibility(jdm: JvmDefaultMode): Boolean {
+    return jdm == JvmDefaultMode.NO_COMPATIBILITY
+}