From 44e4027558c03f3d452e647d1ac913fea0ca64e7 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 25 Apr 2025 14:55:15 +0100 Subject: [PATCH 01/14] 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 82a7050becc4b9b6dc9a64fe60a63f59370cb195 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 25 Apr 2025 17:18:09 +0200 Subject: [PATCH 02/14] 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 44b7432d86bd42dc37f83a261f59f33ca13d5733 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 25 Apr 2025 16:35:14 +0100 Subject: [PATCH 03/14] 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 2c90975555876fc02d23ea7d0c5140fb922aa8a6 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:21:52 +0100 Subject: [PATCH 04/14] 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 3a5c203c1c0a8f470c1c62ac3084702b6fc070e9 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:23:19 +0100 Subject: [PATCH 05/14] 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, 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? { 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> { +) : IrVisitor>() { private val location = psi.getLocation() override fun visitElement(element: IrElement, data: MutableCollection): 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 : org.jetbrains.kotlin.ir.visitors.IrElementVisitor +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>() 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 = org.jetbrains.kotlin.ir.visitors.IrVisitor +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 d86becfafd527688e2f05958b375130d1f83dd01 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:32:05 +0100 Subject: [PATCH 06/14] 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 6f0e147834b1652885b9edff0d1572016107dd29 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:34:38 +0100 Subject: [PATCH 07/14] 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 fcd3e8e5a1c4f589c71559539b8975b456adbc70 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:35:05 +0100 Subject: [PATCH 08/14] 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 ecfbb65eb10a2bfd2710049f79982fbf05d7abc9 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 16:17:07 +0100 Subject: [PATCH 09/14] 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 37e231405bd4b6e833a623f13d68e29e95a4c575 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 11:22:54 +0100 Subject: [PATCH 10/14] 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 e350741e318b24c89fedcaa43ae827cfe71bf655 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 13:51:07 +0100 Subject: [PATCH 11/14] 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 6a78163f139a811c8d81e503632485ec5cbe4b5a Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 13:51:28 +0100 Subject: [PATCH 12/14] 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 | | 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] ; -# 2| 0: [ImplicitCoercionToUnitExpr] -# 2| 0: [TypeAccess] Unit -# 2| 1: [StmtExpr] -# 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] ; -# 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] ; +# 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] ; -# 7| 0: [ImplicitCoercionToUnitExpr] -# 7| 0: [TypeAccess] Unit -# 7| 1: [StmtExpr] -# 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] ; -# 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] ; +# 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 | | 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] -# 87| 5: [ExtensionMethod] setExtDelegated -# 87| 3: [TypeAccess] Unit +# 87| 5: [ExtensionMethod] getExtDelegated +# 87| 3: [TypeAccess] int #-----| 4: (Parameters) # 87| 0: [Parameter] # 87| 0: [TypeAccess] MyClass -# 87| 1: [Parameter] -# 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 # 87| 0: [TypeAccess] MyClass # 87| 1: [TypeAccess] Integer -# 87| 3: [VarAccess] -# 87| 6: [FieldDeclaration] KMutableProperty0 extDelegated$delegateMyClass; -# 87| -1: [TypeAccess] KMutableProperty0 -# 87| 0: [TypeAccess] Integer -# 87| 0: [PropertyRefExpr] ...::... -# 87| -4: [AnonymousClass] new KMutableProperty0(...) { ... } -# 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 -# 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] # 87| 0: [TypeAccess] MyClass +# 87| 1: [Parameter] +# 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 # 87| 0: [TypeAccess] MyClass # 87| 1: [TypeAccess] Integer +# 87| 3: [VarAccess] +# 87| 7: [FieldDeclaration] KMutableProperty0 extDelegated$delegateMyClass; +# 87| -1: [TypeAccess] KMutableProperty0 +# 87| 0: [TypeAccess] Integer +# 87| 0: [PropertyRefExpr] ...::... +# 87| -4: [AnonymousClass] new KMutableProperty0(...) { ... } +# 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 +# 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 # 39| 0: [TypeAccess] Integer -# 42| 3: [Method] setVarResource0 -# 42| 3: [TypeAccess] Unit -#-----| 4: (Parameters) -# 42| 0: [Parameter] -# 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 # 42| 0: [TypeAccess] Owner # 42| 1: [TypeAccess] Integer -# 42| 2: [VarAccess] -# 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] +# 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 # 42| 0: [TypeAccess] Owner # 42| 1: [TypeAccess] Integer +# 42| 2: [VarAccess] +# 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(...) { ... } +# 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 +# 66| 0: [TypeAccess] MyClass +# 66| 1: [TypeAccess] Integer +# 66| 8: [Method] setDelegatedToMember1 # 66| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 66| 0: [Parameter] @@ -928,7 +970,7 @@ delegatedProperties.kt: # 66| 0: [TypeAccess] MyClass # 66| 1: [TypeAccess] Integer # 66| 3: [VarAccess] -# 66| 8: [FieldDeclaration] KMutableProperty0 delegatedToMember1$delegate; +# 66| 9: [FieldDeclaration] KMutableProperty0 delegatedToMember1$delegate; # 66| -1: [TypeAccess] KMutableProperty0 # 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(...) { ... } -# 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(...) { ... } +# 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 -# 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 +# 67| 0: [TypeAccess] MyClass +# 67| 1: [TypeAccess] Integer +# 67| 11: [Method] setDelegatedToMember2 # 67| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 67| 0: [Parameter] @@ -1058,7 +1101,7 @@ delegatedProperties.kt: # 67| 0: [TypeAccess] MyClass # 67| 1: [TypeAccess] Integer # 67| 3: [VarAccess] -# 67| 11: [FieldDeclaration] KMutableProperty1 delegatedToMember2$delegate; +# 67| 12: [FieldDeclaration] KMutableProperty1 delegatedToMember2$delegate; # 67| -1: [TypeAccess] KMutableProperty1 # 67| 0: [TypeAccess] MyClass # 67| 1: [TypeAccess] Integer @@ -1094,57 +1137,56 @@ delegatedProperties.kt: # 67| -3: [TypeAccess] KMutableProperty1 # 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(...) { ... } -# 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 -# 67| 0: [TypeAccess] MyClass -# 67| 1: [TypeAccess] Integer -# 69| 13: [Method] setDelegatedToExtMember1 -# 69| 3: [TypeAccess] Unit -#-----| 4: (Parameters) -# 69| 0: [Parameter] -# 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(...) { ... } +# 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 +# 69| 0: [TypeAccess] MyClass +# 69| 1: [TypeAccess] Integer +# 69| 14: [Method] setDelegatedToExtMember1 +# 69| 3: [TypeAccess] Unit +#-----| 4: (Parameters) +# 69| 0: [Parameter] +# 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] -# 69| 14: [FieldDeclaration] KMutableProperty0 delegatedToExtMember1$delegate; +# 69| 15: [FieldDeclaration] KMutableProperty0 delegatedToExtMember1$delegate; # 69| -1: [TypeAccess] KMutableProperty0 # 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(...) { ... } -# 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(...) { ... } +# 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 -# 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 +# 70| 0: [TypeAccess] MyClass +# 70| 1: [TypeAccess] Integer +# 70| 17: [Method] setDelegatedToExtMember2 # 70| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 70| 0: [Parameter] @@ -1315,7 +1358,7 @@ delegatedProperties.kt: # 70| 0: [TypeAccess] MyClass # 70| 1: [TypeAccess] Integer # 70| 3: [VarAccess] -# 70| 17: [FieldDeclaration] KMutableProperty1 delegatedToExtMember2$delegate; +# 70| 18: [FieldDeclaration] KMutableProperty1 delegatedToExtMember2$delegate; # 70| -1: [TypeAccess] KMutableProperty1 # 70| 0: [TypeAccess] MyClass # 70| 1: [TypeAccess] Integer @@ -1353,82 +1396,7 @@ delegatedProperties.kt: # 70| -3: [TypeAccess] KMutableProperty1 # 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(...) { ... } -# 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 -# 70| 0: [TypeAccess] MyClass -# 70| 1: [TypeAccess] Integer -# 72| 19: [FieldDeclaration] KProperty0 delegatedToBaseClass1$delegate; -# 72| -1: [TypeAccess] KProperty0 -# 72| 0: [TypeAccess] Integer -# 72| 0: [PropertyRefExpr] ...::... -# 72| -4: [AnonymousClass] new KProperty0(...) { ... } -# 72| 1: [Constructor] -#-----| 4: (Parameters) -# 72| 0: [Parameter] -# 72| 5: [BlockStmt] { ... } -# 72| 0: [SuperConstructorInvocationStmt] super(...) -# 72| 1: [ExprStmt] ; -# 72| 0: [AssignExpr] ...=... -# 72| 0: [VarAccess] this. -# 72| -1: [ThisAccess] this -# 72| 1: [VarAccess] -# 72| 2: [FieldDeclaration] MyClass ; -# 72| -1: [TypeAccess] MyClass -# 72| 3: [Method] get -# 72| 5: [BlockStmt] { ... } -# 72| 0: [ReturnStmt] return ... -# 72| 0: [MethodCall] getBaseClassInt(...) -# 72| -1: [VarAccess] this. -# 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 -# 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 # 72| 0: [TypeAccess] MyClass # 72| 1: [TypeAccess] Integer -# 73| 21: [FieldDeclaration] KProperty1 delegatedToBaseClass2$delegate; -# 73| -1: [TypeAccess] KProperty1 -# 73| 0: [TypeAccess] Base -# 73| 1: [TypeAccess] Integer -# 73| 0: [PropertyRefExpr] ...::... -# 73| -4: [AnonymousClass] new KProperty1(...) { ... } -# 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 delegatedToBaseClass1$delegate; +# 72| -1: [TypeAccess] KProperty0 +# 72| 0: [TypeAccess] Integer +# 72| 0: [PropertyRefExpr] ...::... +# 72| -4: [AnonymousClass] new KProperty0(...) { ... } +# 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 -# 73| 0: [TypeAccess] Base -# 73| 1: [TypeAccess] Integer -# 73| 22: [Method] getDelegatedToBaseClass2 +# 72| 0: [Parameter] +# 72| 5: [BlockStmt] { ... } +# 72| 0: [SuperConstructorInvocationStmt] super(...) +# 72| 1: [ExprStmt] ; +# 72| 0: [AssignExpr] ...=... +# 72| 0: [VarAccess] this. +# 72| -1: [ThisAccess] this +# 72| 1: [VarAccess] +# 72| 2: [FieldDeclaration] MyClass ; +# 72| -1: [TypeAccess] MyClass +# 72| 3: [Method] get +# 72| 5: [BlockStmt] { ... } +# 72| 0: [ReturnStmt] return ... +# 72| 0: [MethodCall] getBaseClassInt(...) +# 72| -1: [VarAccess] this. +# 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 +# 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 # 73| 0: [TypeAccess] MyClass # 73| 1: [TypeAccess] Integer -# 75| 23: [FieldDeclaration] KProperty0 delegatedToAnotherClass1$delegate; -# 75| -1: [TypeAccess] KProperty0 -# 75| 0: [TypeAccess] Integer -# 75| 0: [PropertyRefExpr] ...::... -# 75| -4: [AnonymousClass] new KProperty0(...) { ... } -# 75| 1: [Constructor] +# 73| 22: [FieldDeclaration] KProperty1 delegatedToBaseClass2$delegate; +# 73| -1: [TypeAccess] KProperty1 +# 73| 0: [TypeAccess] Base +# 73| 1: [TypeAccess] Integer +# 73| 0: [PropertyRefExpr] ...::... +# 73| -4: [AnonymousClass] new KProperty1(...) { ... } +# 73| 1: [Constructor] +# 73| 5: [BlockStmt] { ... } +# 73| 0: [SuperConstructorInvocationStmt] super(...) +# 73| 2: [Method] get #-----| 4: (Parameters) -# 75| 0: [Parameter] -# 75| 5: [BlockStmt] { ... } -# 75| 0: [SuperConstructorInvocationStmt] super(...) -# 75| 1: [ExprStmt] ; -# 75| 0: [AssignExpr] ...=... -# 75| 0: [VarAccess] this. -# 75| -1: [ThisAccess] this -# 75| 1: [VarAccess] -# 75| 2: [FieldDeclaration] ClassWithDelegate ; -# 75| -1: [TypeAccess] ClassWithDelegate -# 75| 3: [Method] get -# 75| 5: [BlockStmt] { ... } -# 75| 0: [ReturnStmt] return ... -# 75| 0: [MethodCall] getAnotherClassInt(...) -# 75| -1: [VarAccess] this. -# 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 -# 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 +# 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 # 75| 0: [TypeAccess] MyClass # 75| 1: [TypeAccess] Integer -# 77| 25: [Method] setDelegatedToTopLevel -# 77| 3: [TypeAccess] Unit -#-----| 4: (Parameters) -# 77| 0: [Parameter] -# 77| 0: [TypeAccess] int +# 75| 24: [FieldDeclaration] KProperty0 delegatedToAnotherClass1$delegate; +# 75| -1: [TypeAccess] KProperty0 +# 75| 0: [TypeAccess] Integer +# 75| 0: [PropertyRefExpr] ...::... +# 75| -4: [AnonymousClass] new KProperty0(...) { ... } +# 75| 1: [Constructor] +#-----| 4: (Parameters) +# 75| 0: [Parameter] +# 75| 5: [BlockStmt] { ... } +# 75| 0: [SuperConstructorInvocationStmt] super(...) +# 75| 1: [ExprStmt] ; +# 75| 0: [AssignExpr] ...=... +# 75| 0: [VarAccess] this. +# 75| -1: [ThisAccess] this +# 75| 1: [VarAccess] +# 75| 2: [FieldDeclaration] ClassWithDelegate ; +# 75| -1: [TypeAccess] ClassWithDelegate +# 75| 3: [Method] get +# 75| 5: [BlockStmt] { ... } +# 75| 0: [ReturnStmt] return ... +# 75| 0: [MethodCall] getAnotherClassInt(...) +# 75| -1: [VarAccess] this. +# 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 +# 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 # 77| 0: [TypeAccess] MyClass # 77| 1: [TypeAccess] Integer -# 77| 3: [VarAccess] -# 77| 26: [FieldDeclaration] KMutableProperty0 delegatedToTopLevel$delegate; -# 77| -1: [TypeAccess] KMutableProperty0 -# 77| 0: [TypeAccess] Integer -# 77| 0: [PropertyRefExpr] ...::... -# 77| -4: [AnonymousClass] new KMutableProperty0(...) { ... } -# 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 -# 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] +# 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 # 77| 0: [TypeAccess] MyClass # 77| 1: [TypeAccess] Integer -# 79| 28: [FieldDeclaration] KProperty0 max$delegate; -# 79| -1: [TypeAccess] KProperty0 -# 79| 0: [TypeAccess] Integer -# 79| 0: [PropertyRefExpr] ...::... -# 79| -4: [AnonymousClass] new KProperty0(...) { ... } -# 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 -# 79| 0: [TypeAccess] Integer -# 79| 29: [Method] getMax +# 77| 3: [VarAccess] +# 77| 27: [FieldDeclaration] KMutableProperty0 delegatedToTopLevel$delegate; +# 77| -1: [TypeAccess] KMutableProperty0 +# 77| 0: [TypeAccess] Integer +# 77| 0: [PropertyRefExpr] ...::... +# 77| -4: [AnonymousClass] new KMutableProperty0(...) { ... } +# 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 +# 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 # 79| 0: [TypeAccess] MyClass # 79| 1: [TypeAccess] Integer +# 79| 29: [FieldDeclaration] KProperty0 max$delegate; +# 79| -1: [TypeAccess] KProperty0 +# 79| 0: [TypeAccess] Integer +# 79| 0: [PropertyRefExpr] ...::... +# 79| -4: [AnonymousClass] new KProperty0(...) { ... } +# 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 +# 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] ; -# 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] ; -# 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] ; -# 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 | | | delegatedProperties.kt:34:9:34:48 | readWrite | delegatedProperties.kt:34:9:34:48 | | | delegatedProperties.kt:39:9:39:51 | varResource2 | delegatedProperties.kt:39:9:39:51 | | -| 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 | | -| 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 | | | delegatedProperties.kt:34:9:34:48 | readWrite | delegatedProperties.kt:34:9:34:48 | | 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 | | TypeAccess | | delegatedProperties.kt:19:9:19:51 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:19:9:19:51 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:19:9:19:51 | int | file://:0:0:0:0 | | 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 | | PropertyRefExpr | | delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:9:19:51 | | 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 | | MethodCall | -| delegatedProperties.kt:19:34:19:51 | int | file://:0:0:0:0 | | 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 | | delegatedProperties.kt:25:9:31:9 | resourceDelegate | StmtExpr | | delegatedProperties.kt:25:64:31:9 | ReadWriteProperty | 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 | | delegatedProperties.kt:26:13:26:24 | setCurValue | VarAccess | +| delegatedProperties.kt:26:13:26:24 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:26:13:26:24 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:26:13:26:24 | int | file://:0:0:0:0 | | 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 | | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess | -| delegatedProperties.kt:26:13:26:28 | Unit | file://:0:0:0:0 | | 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 | | TypeAccess | -| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | 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 | | TypeAccess | | delegatedProperties.kt:27:35:27:47 | Object | file://:0:0:0:0 | | 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 | | TypeAccess | | delegatedProperties.kt:34:9:34:48 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:34:9:34:48 | int | file://:0:0:0:0 | | 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 | | PropertyRefExpr | | delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:9:34:48 | | 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 | | MethodCall | -| delegatedProperties.kt:34:31:34:48 | int | file://:0:0:0:0 | | 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 | | VarAccess | | delegatedProperties.kt:42:5:42:47 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:42:5:42:47 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:42:5:42:47 | int | file://:0:0:0:0 | | 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 | | 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 | delegatedProperties.kt:42:5:42:47 | getVarResource0 | TypeAccess | | delegatedProperties.kt:42:30:42:47 | KMutableProperty1 | delegatedProperties.kt:42:5:42:47 | setVarResource0 | TypeAccess | -| delegatedProperties.kt:42:30:42:47 | KMutableProperty1 | 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 | | 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 | | TypeAccess | -| delegatedProperties.kt:42:30:42:47 | int | file://:0:0:0:0 | | 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 | | TypeAccess | | delegatedProperties.kt:46:27:46:41 | Owner | file://:0:0:0:0 | | TypeAccess | @@ -281,18 +281,18 @@ | delegatedProperties.kt:54:51:54:68 | KProperty | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:0:0:0:0 | | KtInitializerAssignExpr | -| delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | AssignExpr | -| delegatedProperties.kt:60:1:60:24 | | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | VarAccess | | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60: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 | | 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 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:24:60:24 | 0 | delegatedProperties.kt:0:0:0:0 | | IntegerLiteral | | delegatedProperties.kt:62:25:62:48 | ...=... | delegatedProperties.kt:62:24:62:49 | ClassWithDelegate | KtInitializerAssignExpr | @@ -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 | | TypeAccess | +| delegatedProperties.kt:66:5:66:50 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:66:5:66:50 | int | file://:0:0:0:0 | | 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 | | delegatedProperties.kt:66:36:66:50 | | VarAccess | | delegatedProperties.kt:66:36:66:50 | | 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 | | TypeAccess | | delegatedProperties.kt:66:36:66:50 | KMutableProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:66:36:66:50 | KMutableProperty0 | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | KMutableProperty1 | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | KMutableProperty1 | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:36:66:50 | KMutableProperty1 | 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 | | 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 | | TypeAccess | -| delegatedProperties.kt:66:36:66:50 | int | file://:0:0:0:0 | | 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. | delegatedProperties.kt:66:36:66:50 | | VarAccess | | delegatedProperties.kt:66:36:66:50 | this. | delegatedProperties.kt:66:36:66:50 | get | VarAccess | | delegatedProperties.kt:66:36:66:50 | this. | 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 | | TypeAccess | +| delegatedProperties.kt:67:5:67:53 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:67:5:67:53 | int | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | int | file://:0:0:0:0 | | 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 | | TypeAccess | +| delegatedProperties.kt:69:5:69:56 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:69:5:69:56 | int | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:69:39:69:56 | KMutableProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:69:39:69:56 | KMutableProperty0 | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | KMutableProperty1 | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | KMutableProperty1 | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:39:69:56 | KMutableProperty1 | 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 | | 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 | | TypeAccess | -| delegatedProperties.kt:69:39:69:56 | int | file://:0:0:0:0 | | 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. | delegatedProperties.kt:69:39:69:56 | | VarAccess | | delegatedProperties.kt:69:39:69:56 | this. | delegatedProperties.kt:69:39:69:56 | get | VarAccess | | delegatedProperties.kt:69:39:69:56 | this. | 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 | | TypeAccess | +| delegatedProperties.kt:70:5:70:59 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:70:5:70:59 | int | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | int | file://:0:0:0:0 | | 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 | | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:72:39:72:56 | KProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:72:39:72:56 | KProperty0 | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:72:39:72:56 | KProperty1 | 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 | 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 | | 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 | | 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. | delegatedProperties.kt:72:39:72:56 | | VarAccess | | delegatedProperties.kt:72:39:72:56 | this. | 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 | | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:73:39:73:56 | KProperty1 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:73:39:73:56 | KProperty1 | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:73:39:73:56 | KProperty1 | 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 | 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 | | 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 | | 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 | | delegatedProperties.kt:75:42:75:78 | | VarAccess | | delegatedProperties.kt:75:42:75:78 | ClassWithDelegate | file://:0:0:0:0 | | 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 | | TypeAccess | | delegatedProperties.kt:75:42:75:78 | KProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:75:42:75:78 | KProperty0 | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:75:42:75:78 | KProperty1 | 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 | 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 | | 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. | delegatedProperties.kt:75:42:75:78 | | VarAccess | | delegatedProperties.kt:75:42:75:78 | this. | 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 | | TypeAccess | +| delegatedProperties.kt:77:5:77:49 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:77:5:77:49 | int | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:77:37:77:49 | KMutableProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:77:37:77:49 | KMutableProperty0 | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:77:37:77:49 | KMutableProperty1 | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess | | delegatedProperties.kt:77:37:77:49 | KMutableProperty1 | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess | -| delegatedProperties.kt:77:37:77:49 | KMutableProperty1 | 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 | | TypeAccess | -| delegatedProperties.kt:77:37:77:49 | int | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:79:21:79:38 | KProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:79:21:79:38 | KProperty0 | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:79:21:79:38 | KProperty1 | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess | +| delegatedProperties.kt:79:21:79:38 | KProperty1 | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:82:9:82:54 | Unit | file://:0:0:0:0 | | 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 | | TypeAccess | +| delegatedProperties.kt:82:9:82:54 | int | file://:0:0:0:0 | | 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 | | 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 | | MethodCall | -| delegatedProperties.kt:82:40:82:54 | int | file://:0:0:0:0 | | 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 | | TypeAccess | +| delegatedProperties.kt:87:1:87:46 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:87:1:87:46 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:5:87:11 | MyClass | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:5:87:11 | MyClass | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:0:0:0:0 | | 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 | | KtInitializerAssignExpr | | delegatedProperties.kt:87:34:87:46 | | delegatedProperties.kt:87:1:87:46 | setExtDelegated | VarAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:0:0:0:0 | | 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 | | 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 | | 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 | | TypeAccess | | delegatedProperties.kt:87:34:87:46 | KMutableProperty0 | delegatedProperties.kt:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:34:87:46 | KMutableProperty0 | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:87:34:87:46 | KMutableProperty1 | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | KMutableProperty1 | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | KMutableProperty1 | 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 | | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | int | file://:0:0:0:0 | | 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 | | 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 | | TypeAccess | -| exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | | 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 | | 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 | | 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 | | 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 | | TypeAccess | -| exprs.kt:196:13:196:49 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:196:13:196:49 | a3 | exprs.kt:195:16:197:9 | | VarAccess | -| exprs.kt:196:13:196:49 | this | exprs.kt:196:13:196: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 | | 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 | | 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 | | TypeAccess | -| samConversion.kt:63:5:63:13 | int | file://:0:0:0:0 | | 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 | | 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(...) { ... } | delegatedProperties.kt:19:34:19:51 | set | override, public | | delegatedProperties.kt:23:29:23:31 | new KProperty0(...) { ... } | delegatedProperties.kt:23:29:23:31 | get | override, public | | delegatedProperties.kt:23:29:23:31 | new KProperty0(...) { ... } | delegatedProperties.kt:23:29:23:31 | invoke | override, public | -| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:28 | getCurValue | final, public | -| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:28 | setCurValue | final, public | +| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:24 | getCurValue | final, public | +| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:24 | setCurValue | final, public | | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:27:13:27:88 | getValue | override, public | | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:28:13:30:13 | setValue | override, public | | delegatedProperties.kt:33:30:33:47 | new KProperty0(...) { ... } | 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(...) { ... } | delegatedProperties.kt:87:34:87:46 | invoke | override, public | | delegatedProperties.kt:87:34:87:46 | new KMutableProperty1(...) { ... } | delegatedProperties.kt:87:34:87:46 | set | override, public | | delegatedProperties.kt:87:34:87:46 | new KMutableProperty1(...) { ... } | 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(...) { ... } | funcExprs.kt:22:26:22:33 | invoke | final, override, public | | funcExprs.kt:23:26:23:33 | new Function0(...) { ... } | funcExprs.kt:23:26:23:33 | invoke | final, override, public | | funcExprs.kt:24:26:24:33 | new Function0(...) { ... } | funcExprs.kt:24:26:24:33 | invoke | final, override, public | diff --git a/java/ql/test-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 | | 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 | | 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 | | 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 | | 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 | @@ -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 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | | 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 | | 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 | | () | 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(...) { ... } | delegates.kt:4:21:6:5 | get | get(MyClass) | override, public | | | delegates.kt:4:21:6:5 | new KProperty1(...) { ... } | delegates.kt:4:21:6:5 | invoke | invoke(MyClass) | override, public | | | delegates.kt:4:26:6:5 | new Function0(...) { ... } | 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 | | 0 | +| clinit.kt:3:1:3:20 | setTopLevelInt | clinit.kt:3:1:3:20 | | 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 | | 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 | | 0 | +| delegates.kt:8:5:11:5 | setObservableProp | delegates.kt:8:5:11:5 | | 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(...) { ... } | test.kt:9:18:11:3 | | -| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:22 | getX | +| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:18 | getX | | test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:22 | x | | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:13:33:15:3 | | -| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:22 | getX | +| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:18 | getX | | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:22 | x | enclosingTypes | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | file://:0:0:0:0 | | public | | properties.kt:7:5:7:30 | initialisedInInit | properties.kt:7:5:7:30 | getInitialisedInInit | file://:0:0:0:0 | | properties.kt:7:5:7:30 | initialisedInInit | public | -| properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:40 | getUseConstructorArg | file://:0:0:0:0 | | 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 | | properties.kt:11:5:11:40 | useConstructorArg | public | | properties.kt:12:5:13:21 | five | properties.kt:13:13:13:21 | getFive | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:14:5:15:21 | six | properties.kt:15:13:15:21 | getSix | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:16:5:18:40 | getSet | properties.kt:17:13:17:33 | getGetSet | properties.kt:18:13:18:40 | setGetSet | file://:0:0:0:0 | | public | | properties.kt:19:5:20:15 | defaultGetter | properties.kt:20:13:20:15 | getDefaultGetter | file://:0:0:0:0 | | properties.kt:19:5:20:15 | defaultGetter | public | -| properties.kt:21:5:22:15 | varDefaultGetter | properties.kt:22:13:22:15 | getVarDefaultGetter | properties.kt:21:5: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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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 | | properties.kt:70:5:70:16 | prop | public | | properties.kt:78:1:79:13 | x | properties.kt:79:5:79:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:80:1:81:13 | x | properties.kt:81:5:81:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | -| properties.kt:84: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 | | 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:///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:///Class1$Generic.class:0:0:0:0 | setP2 | | reflection.kt:68:17:68:34 | ...::... | reflection.kt:68:17:68:34 | set | file:///Class1$Generic.class:0:0:0:0 | setP2 | | reflection.kt:109:17:109:27 | ...::... | reflection.kt:109:17:109:27 | set | reflection.kt:105:18:105:31 | setProp1 | @@ -346,9 +346,9 @@ compGenerated | reflection.kt:21:44:21:50 | new Function2(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:22:42:22:48 | new KMutableProperty0(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:24:46:24:64 | new Function1,Boolean>(...) { ... } | The class around a local function, a lambda, or a function reference | -| reflection.kt:33:9:33: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(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:51:13:51:28 | new KProperty0(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:60:17:60:32 | new Function2,Integer,String>(...) { ... } | The class around a local function, a lambda, or a function reference | 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 388a0e66bf7fae2b4f0b7b727e40d3400866e3f4 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 13:59:57 +0100 Subject: [PATCH 13/14] 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 52a632b9adcf81c7568a891bb452145e981e1fa8 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 16:04:47 +0100 Subject: [PATCH 14/14] 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