mirror of
https://github.com/github/codeql.git
synced 2026-02-11 20:51:06 +01:00
Merge pull request #20965 from github/andersfugmann/kotlin_2.3.0-beta2
Kotlin: Support Kotlin 2.3.0
This commit is contained in:
17
MODULE.bazel
17
MODULE.bazel
@@ -24,7 +24,7 @@ bazel_dep(name = "bazel_skylib", version = "1.8.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 = "12.1.0-codeql.1")
|
||||
bazel_dep(name = "rules_kotlin", version = "2.1.3-codeql.1")
|
||||
bazel_dep(name = "rules_kotlin", version = "2.2.0-codeql.1")
|
||||
bazel_dep(name = "gazelle", version = "0.40.0")
|
||||
bazel_dep(name = "rules_dotnet", version = "0.21.5-codeql.1")
|
||||
bazel_dep(name = "googletest", version = "1.14.0.bcr.1")
|
||||
@@ -221,10 +221,6 @@ use_repo(
|
||||
kotlin_extractor_deps,
|
||||
"codeql_kotlin_defaults",
|
||||
"codeql_kotlin_embeddable",
|
||||
"kotlin-compiler-1.6.0",
|
||||
"kotlin-compiler-1.6.20",
|
||||
"kotlin-compiler-1.7.0",
|
||||
"kotlin-compiler-1.7.20",
|
||||
"kotlin-compiler-1.8.0",
|
||||
"kotlin-compiler-1.9.0-Beta",
|
||||
"kotlin-compiler-1.9.20-Beta",
|
||||
@@ -234,10 +230,7 @@ use_repo(
|
||||
"kotlin-compiler-2.1.20-Beta1",
|
||||
"kotlin-compiler-2.2.0-Beta1",
|
||||
"kotlin-compiler-2.2.20-Beta2",
|
||||
"kotlin-compiler-embeddable-1.6.0",
|
||||
"kotlin-compiler-embeddable-1.6.20",
|
||||
"kotlin-compiler-embeddable-1.7.0",
|
||||
"kotlin-compiler-embeddable-1.7.20",
|
||||
"kotlin-compiler-2.3.0",
|
||||
"kotlin-compiler-embeddable-1.8.0",
|
||||
"kotlin-compiler-embeddable-1.9.0-Beta",
|
||||
"kotlin-compiler-embeddable-1.9.20-Beta",
|
||||
@@ -247,10 +240,7 @@ use_repo(
|
||||
"kotlin-compiler-embeddable-2.1.20-Beta1",
|
||||
"kotlin-compiler-embeddable-2.2.0-Beta1",
|
||||
"kotlin-compiler-embeddable-2.2.20-Beta2",
|
||||
"kotlin-stdlib-1.6.0",
|
||||
"kotlin-stdlib-1.6.20",
|
||||
"kotlin-stdlib-1.7.0",
|
||||
"kotlin-stdlib-1.7.20",
|
||||
"kotlin-compiler-embeddable-2.3.0",
|
||||
"kotlin-stdlib-1.8.0",
|
||||
"kotlin-stdlib-1.9.0-Beta",
|
||||
"kotlin-stdlib-1.9.20-Beta",
|
||||
@@ -260,6 +250,7 @@ use_repo(
|
||||
"kotlin-stdlib-2.1.20-Beta1",
|
||||
"kotlin-stdlib-2.2.0-Beta1",
|
||||
"kotlin-stdlib-2.2.20-Beta2",
|
||||
"kotlin-stdlib-2.3.0",
|
||||
)
|
||||
|
||||
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
Java,"Java 7 to 25 [6]_","javac (OpenJDK and Oracle JDK),
|
||||
|
||||
Eclipse compiler for Java (ECJ) [7]_",``.java``
|
||||
Kotlin,"Kotlin 1.6.0 [15]_ to 2.2.2\ *x*","kotlinc",``.kt``
|
||||
Kotlin,"Kotlin 1.8.0 to 2.3.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``"
|
||||
@@ -45,4 +45,3 @@
|
||||
.. [12] Support for the analysis of Swift requires macOS.
|
||||
.. [13] Embedded Swift is not supported.
|
||||
.. [14] TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default.
|
||||
.. [15] Support for Kotlin versions 1.6 and 1.7 is deprecated and will be removed in release 2.24.1.
|
||||
|
||||
@@ -124,13 +124,7 @@ kt_javac_options(
|
||||
javac_opts = ":javac-options",
|
||||
kotlinc_opts = ":kotlinc-options-%s" % v,
|
||||
module_name = "codeql-kotlin-extractor",
|
||||
# resource_strip_prefix is very nit-picky: the following makes it work from
|
||||
# `codeql`, `@codeql_kotlin_embeddable` and `semmle-code`
|
||||
resource_strip_prefix = (
|
||||
("../%s/" % repo_name() if repo_name() else "") +
|
||||
("%s/" % package_name() if package_name() else "") +
|
||||
v
|
||||
),
|
||||
resource_strip_prefix = v,
|
||||
resources = [
|
||||
":resources-%s" % v,
|
||||
],
|
||||
|
||||
BIN
java/kotlin-extractor/deps/kotlin-compiler-1.6.0.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-compiler-1.6.0.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-1.6.20.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-compiler-1.6.20.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-1.7.0.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-compiler-1.7.0.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-1.7.20.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-compiler-1.7.20.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-2.3.0.jar
(Stored with Git LFS)
Normal file
BIN
java/kotlin-extractor/deps/kotlin-compiler-2.3.0.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.0.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.0.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.20.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.20.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.0.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.0.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.20.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.20.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.3.0.jar
(Stored with Git LFS)
Normal file
BIN
java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.3.0.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-stdlib-1.6.0.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-stdlib-1.6.0.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-stdlib-1.6.20.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-stdlib-1.6.20.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-stdlib-1.7.0.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-stdlib-1.7.0.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-stdlib-1.7.20.jar
(Stored with Git LFS)
BIN
java/kotlin-extractor/deps/kotlin-stdlib-1.7.20.jar
(Stored with Git LFS)
Binary file not shown.
BIN
java/kotlin-extractor/deps/kotlin-stdlib-2.3.0.jar
(Stored with Git LFS)
Normal file
BIN
java/kotlin-extractor/deps/kotlin-stdlib-2.3.0.jar
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -27,7 +27,7 @@ import shutil
|
||||
import io
|
||||
import os
|
||||
|
||||
DEFAULT_VERSION = "2.2.0"
|
||||
DEFAULT_VERSION = "2.3.0"
|
||||
|
||||
|
||||
def options():
|
||||
|
||||
@@ -415,6 +415,7 @@ open class KotlinFileExtractor(
|
||||
|
||||
private fun extractClassModifiers(c: IrClass, id: Label<out DbClassorinterface>) {
|
||||
with("class modifiers", c) {
|
||||
@Suppress("REDUNDANT_ELSE_IN_WHEN")
|
||||
when (c.modality) {
|
||||
Modality.FINAL -> addModifiers(id, "final")
|
||||
Modality.SEALED -> addModifiers(id, "sealed")
|
||||
@@ -1342,7 +1343,7 @@ open class KotlinFileExtractor(
|
||||
extractTypeAccessRecursive(substitutedType, location, id, -1)
|
||||
}
|
||||
val syntheticParameterNames =
|
||||
isUnderscoreParameter(vp) ||
|
||||
vp.origin == IrDeclarationOrigin.UNDERSCORE_PARAMETER ||
|
||||
((vp.parent as? IrFunction)?.let { hasSynthesizedParameterNames(it) } ?: true)
|
||||
val javaParameter =
|
||||
when (val callable = (vp.parent as? IrFunction)?.let { getJavaCallable(it) }) {
|
||||
@@ -1644,7 +1645,7 @@ open class KotlinFileExtractor(
|
||||
extractMethodAndParameterTypeAccesses: Boolean,
|
||||
typeSubstitution: TypeSubstitution?,
|
||||
classTypeArgsIncludingOuterClasses: List<IrTypeArgument>?
|
||||
) =
|
||||
) : Label<out DbCallable> =
|
||||
forceExtractFunction(
|
||||
f,
|
||||
parentId,
|
||||
@@ -2801,6 +2802,7 @@ open class KotlinFileExtractor(
|
||||
|
||||
private fun extractBody(b: IrBody, callable: Label<out DbCallable>) {
|
||||
with("body", b) {
|
||||
@Suppress("REDUNDANT_ELSE_IN_WHEN")
|
||||
when (b) {
|
||||
is IrBlockBody -> extractBlockBody(b, callable)
|
||||
is IrSyntheticBody -> extractSyntheticBody(b, callable)
|
||||
@@ -2834,7 +2836,7 @@ open class KotlinFileExtractor(
|
||||
when {
|
||||
kind == IrSyntheticBodyKind.ENUM_VALUES -> tw.writeKtSyntheticBody(callable, 1)
|
||||
kind == IrSyntheticBodyKind.ENUM_VALUEOF -> tw.writeKtSyntheticBody(callable, 2)
|
||||
kind == kind_ENUM_ENTRIES -> tw.writeKtSyntheticBody(callable, 3)
|
||||
kind == IrSyntheticBodyKind.ENUM_ENTRIES -> tw.writeKtSyntheticBody(callable, 3)
|
||||
else -> {
|
||||
logger.errorElement("Unhandled synthetic body kind " + kind, b)
|
||||
}
|
||||
@@ -2973,13 +2975,22 @@ open class KotlinFileExtractor(
|
||||
val locId = tw.getLocation(s)
|
||||
tw.writeStmts_block(blockId, parent, idx, callable)
|
||||
tw.writeHasLocation(blockId, locId)
|
||||
extractVariable(s.delegate, callable, blockId, 0)
|
||||
|
||||
// For Kotlin < 2.3, s.delegate is not-nullable, but for Kotlin >= 2.3
|
||||
// it is nullable. Cast to nullable to handle both cases uniformly.
|
||||
// For Kotlin >= 2.3, the cast is redundant, hence the suppress.
|
||||
@Suppress("USELESS_CAST")
|
||||
val delegate: IrVariable? = s.delegate as IrVariable?
|
||||
val propId = tw.getFreshIdLabel<DbKt_property>()
|
||||
tw.writeKtProperties(propId, s.name.asString())
|
||||
tw.writeHasLocation(propId, locId)
|
||||
tw.writeKtPropertyDelegates(propId, useVariable(s.delegate))
|
||||
|
||||
if (delegate == null) {
|
||||
// This is not expected to happen, as the plugin hooks into the pipeline before IR lowering.
|
||||
logger.errorElement("Local delegated property is missing delegate", s)
|
||||
} else {
|
||||
extractVariable(delegate, callable, blockId, 0)
|
||||
tw.writeKtProperties(propId, s.name.asString())
|
||||
tw.writeHasLocation(propId, locId)
|
||||
tw.writeKtPropertyDelegates(propId, useVariable(delegate))
|
||||
}
|
||||
// Getter:
|
||||
extractStatement(s.getter, callable, blockId, 1)
|
||||
val getterLabel = getLocallyVisibleFunctionLabels(s.getter).function
|
||||
@@ -3332,7 +3343,7 @@ open class KotlinFileExtractor(
|
||||
// that specified the default values, which will in turn dynamically dispatch back to the
|
||||
// relevant override.
|
||||
val overriddenCallTarget =
|
||||
(callTarget as? IrSimpleFunction)?.allOverriddenIncludingSelf()?.firstOrNull {
|
||||
(callTarget as? IrSimpleFunction)?.allOverridden(includeSelf = true)?.firstOrNull {
|
||||
it.overriddenSymbols.isEmpty() &&
|
||||
it.valueParameters.any { p -> p.defaultValue != null }
|
||||
} ?: callTarget
|
||||
|
||||
@@ -849,9 +849,6 @@ open class KotlinUsesExtractor(
|
||||
}
|
||||
|
||||
private fun useSimpleType(s: IrSimpleType, context: TypeContext): TypeResults {
|
||||
if (s.abbreviation != null) {
|
||||
// TODO: Extract this information
|
||||
}
|
||||
// We use this when we don't actually have an IrClass for a class
|
||||
// we want to refer to
|
||||
// TODO: Eliminate the need for this if possible
|
||||
@@ -939,7 +936,7 @@ open class KotlinUsesExtractor(
|
||||
return arrayInfo.componentTypeResults
|
||||
}
|
||||
owner is IrClass -> {
|
||||
val args = if (s.codeQlIsRawType()) null else s.arguments
|
||||
val args = if (s.isRawType()) null else s.arguments
|
||||
|
||||
return useSimpleTypeClass(owner, args, s.isNullableCodeQL())
|
||||
}
|
||||
@@ -1836,6 +1833,7 @@ open class KotlinUsesExtractor(
|
||||
|
||||
// Note this function doesn't return a signature because type arguments are never
|
||||
// incorporated into function signatures.
|
||||
@Suppress("REDUNDANT_ELSE_IN_WHEN")
|
||||
return when (arg) {
|
||||
is IrStarProjection -> {
|
||||
val anyTypeLabel =
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.github.codeql
|
||||
|
||||
import com.github.codeql.utils.versions.copyParameterToFunction
|
||||
import com.github.codeql.utils.versions.createImplicitParameterDeclarationWithWrappedDescriptor
|
||||
import java.lang.annotation.ElementType
|
||||
import java.util.HashSet
|
||||
@@ -21,7 +20,9 @@ import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.declarations.IrConstructor
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
import org.jetbrains.kotlin.ir.declarations.IrEnumEntry
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.IrProperty
|
||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||
import org.jetbrains.kotlin.ir.expressions.IrClassReference
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrGetEnumValue
|
||||
@@ -31,6 +32,7 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.types.typeWith
|
||||
import org.jetbrains.kotlin.ir.util.constructedClass
|
||||
import org.jetbrains.kotlin.ir.util.constructors
|
||||
import org.jetbrains.kotlin.ir.util.copyTo
|
||||
import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
|
||||
import org.jetbrains.kotlin.ir.util.defaultType
|
||||
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
||||
@@ -330,7 +332,7 @@ class MetaAnnotationSupport(
|
||||
)
|
||||
return
|
||||
}
|
||||
val newParam = copyParameterToFunction(thisReceiever, this)
|
||||
val newParam = thisReceiever.copyTo(this)
|
||||
dispatchReceiverParameter = newParam
|
||||
body =
|
||||
factory
|
||||
|
||||
@@ -12,9 +12,11 @@ import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
||||
import org.jetbrains.kotlin.ir.util.parentClassOrNull
|
||||
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
|
||||
import org.jetbrains.kotlin.load.java.structure.impl.classFiles.BinaryJavaClass
|
||||
import org.jetbrains.kotlin.load.kotlin.FacadeClassSource
|
||||
import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource
|
||||
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement
|
||||
import org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
// Adapted from Kotlin's interpreter/Utils.kt function 'internalName'
|
||||
// Translates class names into their JLS section 13.1 binary name,
|
||||
@@ -31,6 +33,40 @@ fun getFileClassName(f: IrFile) =
|
||||
.replaceFirst(Regex("""\.kt$"""), "")
|
||||
.replaceFirstChar { it.uppercase() }) + "Kt")
|
||||
|
||||
fun getFileClassFqName(d: IrDeclaration): FqName? {
|
||||
// d is in a file class.
|
||||
// Get the name in a similar way to the compiler's ExternalPackageParentPatcherLowering
|
||||
// visitMemberAccess/generateOrGetFacadeClass.
|
||||
|
||||
// But first, fields aren't IrMemberWithContainerSource, so we need
|
||||
// to get back to the property (if there is one)
|
||||
if (d is IrField) {
|
||||
val propSym = d.correspondingPropertySymbol
|
||||
if (propSym != null) {
|
||||
return getFileClassFqName(propSym.owner)
|
||||
}
|
||||
}
|
||||
|
||||
// Now the main code
|
||||
if (d is IrMemberWithContainerSource) {
|
||||
val containerSource = d.containerSource
|
||||
if (containerSource is FacadeClassSource) {
|
||||
val facadeClassName = containerSource.facadeClassName
|
||||
if (facadeClassName != null) {
|
||||
// TODO: This is really a multifile-class rather than a file-class,
|
||||
// but for now we treat them the same.
|
||||
return facadeClassName.fqNameForTopLevelClassMaybeWithDollars
|
||||
} else {
|
||||
return containerSource.className.fqNameForTopLevelClassMaybeWithDollars
|
||||
}
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
fun getIrElementBinaryName(that: IrElement): String {
|
||||
if (that is IrFile) {
|
||||
val shortName = getFileClassName(that)
|
||||
|
||||
@@ -2,19 +2,31 @@ package com.github.codeql.utils
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||
import org.jetbrains.kotlin.ir.symbols.*
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
fun getClassByFqName(pluginContext: IrPluginContext, fqName: FqName): IrClassSymbol? {
|
||||
val id = ClassId.topLevel(fqName)
|
||||
return getClassByClassId(pluginContext, id)
|
||||
}
|
||||
|
||||
fun getClassByFqName(pluginContext: IrPluginContext, fqName: String): IrClassSymbol? {
|
||||
return getClassByFqName(pluginContext, FqName(fqName))
|
||||
}
|
||||
|
||||
fun getClassByClassId(pluginContext: IrPluginContext, id: ClassId): IrClassSymbol? {
|
||||
return pluginContext.referenceClass(id)
|
||||
}
|
||||
|
||||
fun getFunctionsByFqName(
|
||||
pluginContext: IrPluginContext,
|
||||
pkgName: String,
|
||||
name: String
|
||||
): Collection<IrSimpleFunctionSymbol> {
|
||||
return getFunctionsByFqName(pluginContext, FqName(pkgName), Name.identifier(name))
|
||||
val id = CallableId(FqName(pkgName), Name.identifier(name))
|
||||
return pluginContext.referenceFunctions(id)
|
||||
}
|
||||
|
||||
fun getPropertiesByFqName(
|
||||
@@ -22,5 +34,6 @@ fun getPropertiesByFqName(
|
||||
pkgName: String,
|
||||
name: String
|
||||
): Collection<IrPropertySymbol> {
|
||||
return getPropertiesByFqName(pluginContext, FqName(pkgName), Name.identifier(name))
|
||||
val id = CallableId(FqName(pkgName), Name.identifier(name))
|
||||
return pluginContext.referenceProperties(id)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.github.codeql.utils
|
||||
|
||||
import com.github.codeql.utils.versions.allOverriddenIncludingSelf
|
||||
import com.github.codeql.utils.versions.CodeQLIrConst
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer
|
||||
@@ -9,6 +8,7 @@ import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
import org.jetbrains.kotlin.ir.util.allOverridden
|
||||
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
||||
import org.jetbrains.kotlin.ir.util.packageFqName
|
||||
import org.jetbrains.kotlin.ir.util.parentClassOrNull
|
||||
@@ -62,7 +62,7 @@ private val specialFunctionShortNames = specialFunctions.keys.map { it.functionN
|
||||
|
||||
private fun getSpecialJvmName(f: IrFunction): String? {
|
||||
if (specialFunctionShortNames.contains(f.name) && f is IrSimpleFunction) {
|
||||
f.allOverriddenIncludingSelf().forEach { overriddenFunc ->
|
||||
f.allOverridden(includeSelf = true).forEach { overriddenFunc ->
|
||||
overriddenFunc.parentClassOrNull?.fqNameWhenAvailable?.let { parentFqName ->
|
||||
specialFunctions[MethodKey(parentFqName, f.name)]?.let {
|
||||
return it
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.github.codeql.utils
|
||||
import com.github.codeql.KotlinUsesExtractor
|
||||
import com.github.codeql.Logger
|
||||
import com.github.codeql.getJavaEquivalentClassId
|
||||
import com.github.codeql.utils.versions.codeQlWithHasQuestionMark
|
||||
import com.github.codeql.utils.versions.createImplicitParameterDeclarationWithWrappedDescriptor
|
||||
import com.github.codeql.utils.versions.*
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||
@@ -21,6 +20,8 @@ import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.DescriptorlessExternalPackageFragmentSymbol
|
||||
import org.jetbrains.kotlin.ir.types.addAnnotations
|
||||
import org.jetbrains.kotlin.ir.types.classifierOrNull
|
||||
import org.jetbrains.kotlin.ir.types.makeNotNull
|
||||
import org.jetbrains.kotlin.ir.types.makeNullable
|
||||
import org.jetbrains.kotlin.ir.types.typeWith
|
||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
import org.jetbrains.kotlin.ir.types.IrStarProjection
|
||||
@@ -36,6 +37,14 @@ import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
|
||||
fun IrType.codeQlWithHasQuestionMark(b: Boolean): IrType {
|
||||
if (b) {
|
||||
return this.makeNullable()
|
||||
} else {
|
||||
return this.makeNotNull()
|
||||
}
|
||||
}
|
||||
|
||||
fun IrType.substituteTypeArguments(params: List<IrTypeParameter>, arguments: List<IrTypeArgument>) =
|
||||
when (this) {
|
||||
is IrSimpleType -> substituteTypeArguments(params.map { it.symbol }.zip(arguments).toMap())
|
||||
@@ -111,6 +120,7 @@ private fun subProjectedType(
|
||||
} ?: makeTypeProjection(t.substituteTypeArguments(substitutionMap), outerVariance)
|
||||
|
||||
private fun IrTypeArgument.upperBound(context: IrPluginContext) =
|
||||
@Suppress("REDUNDANT_ELSE_IN_WHEN")
|
||||
when (this) {
|
||||
is IrStarProjection -> context.irBuiltIns.anyNType
|
||||
is IrTypeProjection ->
|
||||
@@ -125,6 +135,7 @@ private fun IrTypeArgument.upperBound(context: IrPluginContext) =
|
||||
}
|
||||
|
||||
private fun IrTypeArgument.lowerBound(context: IrPluginContext) =
|
||||
@Suppress("REDUNDANT_ELSE_IN_WHEN")
|
||||
when (this) {
|
||||
is IrStarProjection -> context.irBuiltIns.nothingType
|
||||
is IrTypeProjection ->
|
||||
@@ -209,6 +220,7 @@ fun IrClass.toRawType(): IrType {
|
||||
}
|
||||
|
||||
fun IrTypeArgument.withQuestionMark(b: Boolean): IrTypeArgument =
|
||||
@Suppress("REDUNDANT_ELSE_IN_WHEN")
|
||||
when (this) {
|
||||
is IrStarProjection -> this
|
||||
is IrTypeProjection ->
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
package org.jetbrains.kotlin.compiler.plugin
|
||||
|
||||
@RequiresOptIn("This API is experimental. There are no stability guarantees for it")
|
||||
annotation class ExperimentalCompilerApi
|
||||
@@ -1,21 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||
import org.jetbrains.kotlin.psi.KtParameter
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
|
||||
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||
fun isUnderscoreParameter(vp: IrValueParameter) =
|
||||
try {
|
||||
DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor)
|
||||
?.safeAs<KtParameter>()
|
||||
?.isSingleUnderscore == true
|
||||
} catch (e: NotImplementedError) {
|
||||
// Some kinds of descriptor throw in `getSourceFromDescriptor` as that method is not
|
||||
// normally expected to
|
||||
// be applied to synthetic functions.
|
||||
false
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.github.codeql.utils
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||
import org.jetbrains.kotlin.ir.symbols.*
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
fun getClassByFqName(pluginContext: IrPluginContext, fqName: FqName): IrClassSymbol? {
|
||||
return pluginContext.referenceClass(fqName)
|
||||
}
|
||||
|
||||
fun getClassByClassId(pluginContext: IrPluginContext, id: ClassId): IrClassSymbol? {
|
||||
return getClassByFqName(pluginContext, id.asSingleFqName())
|
||||
}
|
||||
|
||||
fun getFunctionsByFqName(
|
||||
pluginContext: IrPluginContext,
|
||||
pkgName: FqName,
|
||||
name: Name
|
||||
): Collection<IrSimpleFunctionSymbol> {
|
||||
val fqName = pkgName.child(name)
|
||||
return pluginContext.referenceFunctions(fqName)
|
||||
}
|
||||
|
||||
fun getPropertiesByFqName(
|
||||
pluginContext: IrPluginContext,
|
||||
pkgName: FqName,
|
||||
name: Name
|
||||
): Collection<IrPropertySymbol> {
|
||||
val fqName = pkgName.child(name)
|
||||
return pluginContext.referenceProperties(fqName)
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind
|
||||
|
||||
val kind_ENUM_ENTRIES: IrSyntheticBodyKind? = null
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.backend.jvm.codegen.isRawType
|
||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
|
||||
fun IrSimpleType.codeQlIsRawType() = this.isRawType()
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.ir.allOverridden
|
||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||
|
||||
fun IrSimpleFunction.allOverriddenIncludingSelf() = this.allOverridden(includeSelf = true)
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.ir.copyTo
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||
|
||||
fun copyParameterToFunction(p: IrValueParameter, f: IrFunction) = p.copyTo(f)
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclarationWithWrappedDescriptor
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
|
||||
fun IrClass.createImplicitParameterDeclarationWithWrappedDescriptor() =
|
||||
this.createImplicitParameterDeclarationWithWrappedDescriptor()
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
fun getFileClassFqName(@Suppress("UNUSED_PARAMETER") d: IrDeclaration): FqName? {
|
||||
return null
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
import org.jetbrains.kotlin.ir.types.impl.IrTypeBase
|
||||
|
||||
fun getKotlinType(s: IrSimpleType) = (s as? IrTypeBase)?.kotlinType
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.types.withHasQuestionMark
|
||||
|
||||
fun IrType.codeQlWithHasQuestionMark(b: Boolean): IrType {
|
||||
return this.withHasQuestionMark(b)
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||
|
||||
fun isUnderscoreParameter(vp: IrValueParameter) =
|
||||
vp.origin == IrDeclarationOrigin.UNDERSCORE_PARAMETER
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.backend.jvm.ir.isRawType
|
||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
|
||||
fun IrSimpleType.codeQlIsRawType() = this.isRawType()
|
||||
@@ -1,41 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||
import org.jetbrains.kotlin.ir.declarations.IrField
|
||||
import org.jetbrains.kotlin.ir.declarations.IrMemberWithContainerSource
|
||||
import org.jetbrains.kotlin.load.kotlin.FacadeClassSource
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
fun getFileClassFqName(d: IrDeclaration): FqName? {
|
||||
// d is in a file class.
|
||||
// Get the name in a similar way to the compiler's ExternalPackageParentPatcherLowering
|
||||
// visitMemberAccess/generateOrGetFacadeClass.
|
||||
|
||||
// But first, fields aren't IrMemberWithContainerSource, so we need
|
||||
// to get back to the property (if there is one)
|
||||
if (d is IrField) {
|
||||
val propSym = d.correspondingPropertySymbol
|
||||
if (propSym != null) {
|
||||
return getFileClassFqName(propSym.owner)
|
||||
}
|
||||
}
|
||||
|
||||
// Now the main code
|
||||
if (d is IrMemberWithContainerSource) {
|
||||
val containerSource = d.containerSource
|
||||
if (containerSource is FacadeClassSource) {
|
||||
val facadeClassName = containerSource.facadeClassName
|
||||
if (facadeClassName != null) {
|
||||
// TODO: This is really a multifile-class rather than a file-class,
|
||||
// but for now we treat them the same.
|
||||
return facadeClassName.fqNameForTopLevelClassMaybeWithDollars
|
||||
} else {
|
||||
return containerSource.className.fqNameForTopLevelClassMaybeWithDollars
|
||||
}
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.types.makeNotNull
|
||||
import org.jetbrains.kotlin.ir.types.makeNullable
|
||||
|
||||
fun IrType.codeQlWithHasQuestionMark(b: Boolean): IrType {
|
||||
if (b) {
|
||||
return this.makeNullable()
|
||||
} else {
|
||||
return this.makeNotNull()
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
||||
import org.jetbrains.kotlin.ir.util.allOverridden
|
||||
|
||||
fun IrSimpleFunction.allOverriddenIncludingSelf() = this.allOverridden(includeSelf = true)
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||
import org.jetbrains.kotlin.ir.util.copyTo
|
||||
|
||||
fun copyParameterToFunction(p: IrValueParameter, f: IrFunction) = p.copyTo(f)
|
||||
@@ -1,4 +0,0 @@
|
||||
package com.github.codeql
|
||||
|
||||
// The compiler provides the annotation class, so we don't need to do
|
||||
// anything
|
||||
@@ -1,35 +0,0 @@
|
||||
package com.github.codeql.utils
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||
import org.jetbrains.kotlin.ir.symbols.*
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
fun getClassByFqName(pluginContext: IrPluginContext, fqName: FqName): IrClassSymbol? {
|
||||
val id = ClassId.topLevel(fqName)
|
||||
return getClassByClassId(pluginContext, id)
|
||||
}
|
||||
|
||||
fun getClassByClassId(pluginContext: IrPluginContext, id: ClassId): IrClassSymbol? {
|
||||
return pluginContext.referenceClass(id)
|
||||
}
|
||||
|
||||
fun getFunctionsByFqName(
|
||||
pluginContext: IrPluginContext,
|
||||
pkgName: FqName,
|
||||
name: Name
|
||||
): Collection<IrSimpleFunctionSymbol> {
|
||||
val id = CallableId(pkgName, name)
|
||||
return pluginContext.referenceFunctions(id)
|
||||
}
|
||||
|
||||
fun getPropertiesByFqName(
|
||||
pluginContext: IrPluginContext,
|
||||
pkgName: FqName,
|
||||
name: Name
|
||||
): Collection<IrPropertySymbol> {
|
||||
val id = CallableId(pkgName, name)
|
||||
return pluginContext.referenceProperties(id)
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind
|
||||
|
||||
val kind_ENUM_ENTRIES: IrSyntheticBodyKind? = IrSyntheticBodyKind.ENUM_ENTRIES
|
||||
@@ -1,5 +1,5 @@
|
||||
// For ComponentRegistrar
|
||||
@file:Suppress("DEPRECATION")
|
||||
@file:Suppress("DEPRECATION", "DEPRECATION_ERROR")
|
||||
|
||||
package com.github.codeql
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
# when updating this list, `bazel mod tidy` should be run from `codeql` to update `MODULE.bazel`
|
||||
VERSIONS = [
|
||||
"1.6.0",
|
||||
"1.6.20",
|
||||
"1.7.0",
|
||||
"1.7.20",
|
||||
"1.8.0",
|
||||
"1.9.0-Beta",
|
||||
"1.9.20-Beta",
|
||||
@@ -13,6 +9,7 @@ VERSIONS = [
|
||||
"2.1.20-Beta1",
|
||||
"2.2.0-Beta1",
|
||||
"2.2.20-Beta2",
|
||||
"2.3.0",
|
||||
]
|
||||
|
||||
def _version_to_tuple(v):
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
plugins {
|
||||
// Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin.
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.7.0'
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.8.0'
|
||||
|
||||
// Apply the application plugin to add support for building a CLI application in Java.
|
||||
id 'application'
|
||||
|
||||
@@ -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.2.30.",
|
||||
"markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.3.10.",
|
||||
"severity": "error",
|
||||
"source": {
|
||||
"extractorName": "java",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
plugins {
|
||||
// Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin.
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.6.0'
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.8.0'
|
||||
|
||||
// Apply the application plugin to add support for building a CLI application in Java.
|
||||
id 'application'
|
||||
|
||||
@@ -248,9 +248,7 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 0| 2: [ArrayInit] {...}
|
||||
# 0| 3: [VarAccess] DeprecationLevel.HIDDEN
|
||||
# 0| -1: [TypeAccess] DeprecationLevel
|
||||
# 0| 1: [FieldDeclaration] SerialDescriptor descriptor;
|
||||
# 0| -1: [TypeAccess] SerialDescriptor
|
||||
# 0| 2: [Method] childSerializers
|
||||
# 0| 1: [Method] childSerializers
|
||||
#-----| 1: (Annotations)
|
||||
# 0| 1: [Annotation] NotNull
|
||||
# 0| 3: [TypeAccess] KSerializer<?>[]
|
||||
@@ -260,9 +258,11 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 7| 0: [ReturnStmt] return ...
|
||||
# 7| 0: [ArrayCreationExpr] new KSerializer<?>[]
|
||||
# 7| -2: [ArrayInit] {...}
|
||||
# 7| 0: [VarAccess] INSTANCE
|
||||
# 7| 1: [VarAccess] INSTANCE
|
||||
# 7| -1: [TypeAccess] KSerializer<?>
|
||||
# 7| 0: [IntegerLiteral] 2
|
||||
# 0| 3: [Method] deserialize
|
||||
# 0| 2: [Method] deserialize
|
||||
#-----| 1: (Annotations)
|
||||
# 0| 1: [Annotation] NotNull
|
||||
# 0| 3: [TypeAccess] Project
|
||||
@@ -404,15 +404,15 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 7| 1: [VarAccess] tmp4_local0
|
||||
# 7| 2: [VarAccess] tmp5_local1
|
||||
# 7| 3: [NullLiteral] null
|
||||
# 0| 4: [Method] getDescriptor
|
||||
# 0| 3: [Method] getDescriptor
|
||||
#-----| 1: (Annotations)
|
||||
# 0| 1: [Annotation] NotNull
|
||||
# 0| 3: [TypeAccess] SerialDescriptor
|
||||
# 0| 5: [BlockStmt] { ... }
|
||||
# 0| 0: [ReturnStmt] return ...
|
||||
# 0| 0: [VarAccess] this.descriptor
|
||||
# 0| -1: [ThisAccess] this
|
||||
# 0| 5: [Method] serialize
|
||||
# 7| 5: [BlockStmt] { ... }
|
||||
# 7| 0: [ReturnStmt] return ...
|
||||
# 7| 0: [VarAccess] this.descriptor
|
||||
# 7| -1: [ThisAccess] this
|
||||
# 0| 4: [Method] serialize
|
||||
# 0| 3: [TypeAccess] Unit
|
||||
#-----| 4: (Parameters)
|
||||
# 0| 0: [Parameter] encoder
|
||||
@@ -443,7 +443,7 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 7| 0: [MethodCall] endStructure(...)
|
||||
# 7| -1: [VarAccess] tmp1_output
|
||||
# 7| 0: [VarAccess] tmp0_desc
|
||||
# 7| 6: [Constructor] $serializer
|
||||
# 7| 5: [Constructor] $serializer
|
||||
# 7| 5: [BlockStmt] { ... }
|
||||
# 7| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 7| 1: [BlockStmt] { ... }
|
||||
@@ -471,6 +471,8 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 7| -1: [ThisAccess] $serializer.this
|
||||
# 7| 0: [TypeAccess] $serializer
|
||||
# 7| 1: [VarAccess] tmp0_serialDesc
|
||||
# 7| 6: [FieldDeclaration] PluginGeneratedSerialDescriptor descriptor;
|
||||
# 7| -1: [TypeAccess] PluginGeneratedSerialDescriptor
|
||||
# 7| 7: [Method] typeParametersSerializers
|
||||
# 7| 3: [TypeAccess] KSerializer<?>[]
|
||||
# 7| 0: [TypeAccess] KSerializer<?>
|
||||
@@ -645,9 +647,7 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 0| 2: [ArrayInit] {...}
|
||||
# 0| 3: [VarAccess] DeprecationLevel.HIDDEN
|
||||
# 0| -1: [TypeAccess] DeprecationLevel
|
||||
# 0| 1: [FieldDeclaration] SerialDescriptor descriptor;
|
||||
# 0| -1: [TypeAccess] SerialDescriptor
|
||||
# 0| 2: [Method] childSerializers
|
||||
# 0| 1: [Method] childSerializers
|
||||
#-----| 1: (Annotations)
|
||||
# 0| 1: [Annotation] NotNull
|
||||
# 0| 3: [TypeAccess] KSerializer<?>[]
|
||||
@@ -657,9 +657,10 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 14| 0: [ReturnStmt] return ...
|
||||
# 14| 0: [ArrayCreationExpr] new KSerializer<?>[]
|
||||
# 14| -2: [ArrayInit] {...}
|
||||
# 14| 0: [VarAccess] INSTANCE
|
||||
# 14| -1: [TypeAccess] KSerializer<?>
|
||||
# 14| 0: [IntegerLiteral] 1
|
||||
# 0| 3: [Method] deserialize
|
||||
# 0| 2: [Method] deserialize
|
||||
#-----| 1: (Annotations)
|
||||
# 0| 1: [Annotation] NotNull
|
||||
# 0| 3: [TypeAccess] X
|
||||
@@ -765,15 +766,15 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 14| 0: [VarAccess] tmp3_bitMask0
|
||||
# 14| 1: [VarAccess] tmp4_local0
|
||||
# 14| 2: [NullLiteral] null
|
||||
# 0| 4: [Method] getDescriptor
|
||||
# 0| 3: [Method] getDescriptor
|
||||
#-----| 1: (Annotations)
|
||||
# 0| 1: [Annotation] NotNull
|
||||
# 0| 3: [TypeAccess] SerialDescriptor
|
||||
# 0| 5: [BlockStmt] { ... }
|
||||
# 0| 0: [ReturnStmt] return ...
|
||||
# 0| 0: [VarAccess] this.descriptor
|
||||
# 0| -1: [ThisAccess] this
|
||||
# 0| 5: [Method] serialize
|
||||
# 14| 5: [BlockStmt] { ... }
|
||||
# 14| 0: [ReturnStmt] return ...
|
||||
# 14| 0: [VarAccess] this.descriptor
|
||||
# 14| -1: [ThisAccess] this
|
||||
# 0| 4: [Method] serialize
|
||||
# 0| 3: [TypeAccess] Unit
|
||||
#-----| 4: (Parameters)
|
||||
# 0| 0: [Parameter] encoder
|
||||
@@ -804,7 +805,7 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 14| 0: [MethodCall] endStructure(...)
|
||||
# 14| -1: [VarAccess] tmp1_output
|
||||
# 14| 0: [VarAccess] tmp0_desc
|
||||
# 14| 6: [Constructor] $serializer
|
||||
# 14| 5: [Constructor] $serializer
|
||||
# 14| 5: [BlockStmt] { ... }
|
||||
# 14| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 14| 1: [BlockStmt] { ... }
|
||||
@@ -827,6 +828,8 @@ app/src/main/kotlin/testProject/App.kt:
|
||||
# 14| -1: [ThisAccess] $serializer.this
|
||||
# 14| 0: [TypeAccess] $serializer
|
||||
# 14| 1: [VarAccess] tmp0_serialDesc
|
||||
# 14| 6: [FieldDeclaration] PluginGeneratedSerialDescriptor descriptor;
|
||||
# 14| -1: [TypeAccess] PluginGeneratedSerialDescriptor
|
||||
# 14| 7: [Method] typeParametersSerializers
|
||||
# 14| 3: [TypeAccess] KSerializer<?>[]
|
||||
# 14| 0: [TypeAccess] KSerializer<?>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
plugins {
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.6.10'
|
||||
id 'org.jetbrains.kotlin.plugin.serialization' version '1.6.10'
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.8.10'
|
||||
id 'org.jetbrains.kotlin.plugin.serialization' version '1.8.10'
|
||||
}
|
||||
|
||||
repositories {
|
||||
@@ -8,6 +8,5 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-serialization:1.6.10"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0"
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
| CodeQL Kotlin extractor | 5 | | Unbound symbol found, skipping extraction of expression | app/src/main/kotlin/testProject/App.kt:7:1:8:55 | app/src/main/kotlin/testProject/App.kt:7:1:8:55 |
|
||||
| CodeQL Kotlin extractor | 5 | | Unbound symbol found, skipping extraction of expression | app/src/main/kotlin/testProject/App.kt:14:1:17:1 | app/src/main/kotlin/testProject/App.kt:14:1:17:1 |
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
| extlib.jar/extlib/A.class:0:0:0:0 | m | protected |
|
||||
| test.kt:4:3:4:22 | m | override, protected |
|
||||
| test.kt:4:12:4:22 | m | override, protected |
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
| test.kt:3:3:3:45 | f | test.kt:3:23:3:32 | x |
|
||||
| test.kt:3:3:3:45 | f | test.kt:3:35:3:40 | y |
|
||||
| test.kt:3:3:3:45 | f | test.kt:3:35:3:40 | y |
|
||||
| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p0 |
|
||||
| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p1 |
|
||||
| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p2 |
|
||||
| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p3 |
|
||||
| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p4 |
|
||||
| test.kt:3:17:3:45 | f | test.kt:3:23:3:32 | x |
|
||||
| test.kt:3:17:3:45 | f | test.kt:3:35:3:40 | y |
|
||||
| test.kt:3:17:3:45 | f | test.kt:3:35:3:40 | y |
|
||||
| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p0 |
|
||||
| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p1 |
|
||||
| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p2 |
|
||||
| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p3 |
|
||||
| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p4 |
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
edges
|
||||
| hasFields.kt:5:5:5:34 | constField : String | ReadsFields.java:5:10:5:29 | HasFields.constField | provenance | |
|
||||
| hasFields.kt:5:28:5:34 | "taint" : String | hasFields.kt:5:5:5:34 | constField : String | provenance | |
|
||||
| hasFields.kt:7:5:7:38 | <set-?> : String | hasFields.kt:7:5:7:38 | <set-?> : String | provenance | |
|
||||
| hasFields.kt:7:5:7:38 | <set-?> : String | hasFields.kt:7:5:7:38 | lateinitField : String | provenance | |
|
||||
| hasFields.kt:7:5:7:38 | lateinitField : String | ReadsFields.java:6:10:6:32 | HasFields.lateinitField | provenance | |
|
||||
| hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | ReadsFields.java:7:10:7:41 | HasFields.jvmFieldAnnotatedField | provenance | |
|
||||
| hasFields.kt:9:44:9:50 | "taint" : String | hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | provenance | |
|
||||
| hasFields.kt:14:21:14:27 | "taint" : String | hasFields.kt:7:5:7:38 | <set-?> : String | provenance | |
|
||||
| hasFields.kt:5:11:5:34 | constField : String | ReadsFields.java:5:10:5:29 | HasFields.constField | provenance | |
|
||||
| hasFields.kt:5:28:5:34 | "taint" : String | hasFields.kt:5:11:5:34 | constField : String | provenance | |
|
||||
| hasFields.kt:7:14:7:38 | <set-?> : String | hasFields.kt:7:14:7:38 | <set-?> : String | provenance | |
|
||||
| hasFields.kt:7:14:7:38 | <set-?> : String | hasFields.kt:7:14:7:38 | lateinitField : String | provenance | |
|
||||
| hasFields.kt:7:14:7:38 | lateinitField : String | ReadsFields.java:6:10:6:32 | HasFields.lateinitField | provenance | |
|
||||
| hasFields.kt:9:15:9:50 | jvmFieldAnnotatedField : String | ReadsFields.java:7:10:7:41 | HasFields.jvmFieldAnnotatedField | provenance | |
|
||||
| hasFields.kt:9:44:9:50 | "taint" : String | hasFields.kt:9:15:9:50 | jvmFieldAnnotatedField : String | provenance | |
|
||||
| hasFields.kt:14:21:14:27 | "taint" : String | hasFields.kt:7:14:7:38 | <set-?> : String | provenance | |
|
||||
nodes
|
||||
| ReadsFields.java:5:10:5:29 | HasFields.constField | semmle.label | HasFields.constField |
|
||||
| ReadsFields.java:6:10:6:32 | HasFields.lateinitField | semmle.label | HasFields.lateinitField |
|
||||
| ReadsFields.java:7:10:7:41 | HasFields.jvmFieldAnnotatedField | semmle.label | HasFields.jvmFieldAnnotatedField |
|
||||
| hasFields.kt:5:5:5:34 | constField : String | semmle.label | constField : String |
|
||||
| hasFields.kt:5:11:5:34 | constField : String | semmle.label | constField : String |
|
||||
| hasFields.kt:5:28:5:34 | "taint" : String | semmle.label | "taint" : String |
|
||||
| hasFields.kt:7:5:7:38 | <set-?> : String | semmle.label | <set-?> : String |
|
||||
| hasFields.kt:7:5:7:38 | <set-?> : String | semmle.label | <set-?> : String |
|
||||
| hasFields.kt:7:5:7:38 | lateinitField : String | semmle.label | lateinitField : String |
|
||||
| hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | semmle.label | jvmFieldAnnotatedField : String |
|
||||
| hasFields.kt:7:14:7:38 | <set-?> : String | semmle.label | <set-?> : String |
|
||||
| hasFields.kt:7:14:7:38 | <set-?> : String | semmle.label | <set-?> : String |
|
||||
| hasFields.kt:7:14:7:38 | lateinitField : String | semmle.label | lateinitField : String |
|
||||
| hasFields.kt:9:15:9:50 | jvmFieldAnnotatedField : String | semmle.label | jvmFieldAnnotatedField : String |
|
||||
| hasFields.kt:9:44:9:50 | "taint" : String | semmle.label | "taint" : String |
|
||||
| hasFields.kt:14:21:14:27 | "taint" : String | semmle.label | "taint" : String |
|
||||
subpaths
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
plugins {
|
||||
// Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin.
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.6.20'
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.8.0'
|
||||
|
||||
// Apply the application plugin to add support for building a CLI application in Java.
|
||||
id 'application'
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
| ktUser.kt:0:0:0:0 | nullableAnnotated | parameter | ktUser.kt:0:0:0:0 | Nullable |
|
||||
| ktUser.kt:0:0:0:0 | nullableAnnotated | return value | ktUser.kt:0:0:0:0 | A |
|
||||
| ktUser.kt:0:0:0:0 | nullableAnnotated | return value | ktUser.kt:0:0:0:0 | Nullable |
|
||||
| ktUser.kt:5:3:5:105 | f | parameter | ktUser.kt:0:0:0:0 | NotNull |
|
||||
| ktUser.kt:5:3:5:105 | f | parameter | ktUser.kt:5:12:5:13 | A |
|
||||
| ktUser.kt:5:3:5:105 | f | return value | ktUser.kt:0:0:0:0 | NotNull |
|
||||
| ktUser.kt:5:3:5:105 | f | return value | ktUser.kt:5:3:5:4 | A |
|
||||
| ktUser.kt:5:6:5:105 | f | parameter | ktUser.kt:0:0:0:0 | NotNull |
|
||||
| ktUser.kt:5:6:5:105 | f | parameter | ktUser.kt:5:12:5:13 | A |
|
||||
| ktUser.kt:5:6:5:105 | f | return value | ktUser.kt:0:0:0:0 | NotNull |
|
||||
| ktUser.kt:5:6:5:105 | f | return value | ktUser.kt:5:3:5:4 | A |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
| User.java:3:21:3:24 | test |
|
||||
| test1.kt:3:3:3:22 | f$main |
|
||||
| test2.kt:3:3:3:22 | f$mymodule |
|
||||
| test3.kt:3:3:3:22 | f$reservedchars___ |
|
||||
| test1.kt:3:12:3:22 | f$main |
|
||||
| test2.kt:3:12:3:22 | f$mymodule |
|
||||
| test3.kt:3:12:3:22 | f$reservedchars___ |
|
||||
|
||||
4
java/ql/lib/change-notes/2026-01-07-kotlin-2_3.md
Normal file
4
java/ql/lib/change-notes/2026-01-07-kotlin-2_3.md
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: feature
|
||||
---
|
||||
* Kotlin versions up to 2.3.0\ *x* are now supported.
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
category: breaking
|
||||
---
|
||||
* Support for Kotlin 1.6.x and 1.7.x series has been dropped
|
||||
@@ -93,7 +93,7 @@ dc.kt:
|
||||
# 0| 0: [BooleanLiteral] false
|
||||
# 0| 2: [LocalVariableDeclStmt] var ...;
|
||||
# 0| 1: [LocalVariableDeclExpr] tmp0_other_with_cast
|
||||
# 0| 0: [CastExpr] (...)...
|
||||
# 0| 0: [ImplicitCastExpr] <implicit cast>
|
||||
# 0| 0: [TypeAccess] ProtoMapValue
|
||||
# 0| 1: [VarAccess] other
|
||||
# 0| 3: [ExprStmt] <Expr>;
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
| dataClass.kt:0:0:0:0 | "DataClass(" | StringLiteral |
|
||||
| dataClass.kt:0:0:0:0 | "x=" | StringLiteral |
|
||||
| dataClass.kt:0:0:0:0 | "y=" | StringLiteral |
|
||||
| dataClass.kt:0:0:0:0 | (...)... | CastExpr |
|
||||
| dataClass.kt:0:0:0:0 | ... !is ... | NotInstanceOfExpr |
|
||||
| dataClass.kt:0:0:0:0 | ... & ... | AndBitwiseExpr |
|
||||
| dataClass.kt:0:0:0:0 | ... & ... | AndBitwiseExpr |
|
||||
@@ -37,6 +36,7 @@
|
||||
| dataClass.kt:0:0:0:0 | ...=... | AssignExpr |
|
||||
| dataClass.kt:0:0:0:0 | ...=... | AssignExpr |
|
||||
| dataClass.kt:0:0:0:0 | ...=... | AssignExpr |
|
||||
| dataClass.kt:0:0:0:0 | <implicit cast> | ImplicitCastExpr |
|
||||
| dataClass.kt:0:0:0:0 | DataClass | TypeAccess |
|
||||
| dataClass.kt:0:0:0:0 | DataClass | TypeAccess |
|
||||
| dataClass.kt:0:0:0:0 | DataClass | TypeAccess |
|
||||
|
||||
@@ -26,6 +26,7 @@ public class Int {
|
||||
operator fun plus(other: Int): Int { return this.plus(other) }
|
||||
operator fun times(other: Int): Int { return this.times(other) }
|
||||
infix fun xor(other: Int): Int { return this.xor(other) }
|
||||
infix fun and(other: Int): Int { return this.and(other) }
|
||||
}
|
||||
|
||||
public object Unit {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
| MiniStdLib.kt:12:1:15:1 | Any |
|
||||
| MiniStdLib.kt:17:1:19:1 | String |
|
||||
| MiniStdLib.kt:21:1:23:1 | Boolean |
|
||||
| MiniStdLib.kt:25:1:29:1 | Int |
|
||||
| MiniStdLib.kt:31:1:32:1 | Unit |
|
||||
| MiniStdLib.kt:25:1:30:1 | Int |
|
||||
| MiniStdLib.kt:32:1:33:1 | Unit |
|
||||
| MyClass.kt:1:1:1:16 | MyClass |
|
||||
| file://:0:0:0:0 | FakeKotlinClass |
|
||||
|
||||
@@ -22,13 +22,13 @@ Annot1j.java:
|
||||
def.kt:
|
||||
# 0| [CompilationUnit] def
|
||||
# 0| 1: [Class] DefKt
|
||||
# 45| 2: [Method] fn
|
||||
# 46| 2: [Method] fn
|
||||
#-----| 1: (Annotations)
|
||||
# 45| 1: [Annotation] Annot0k
|
||||
# 21| 1: [IntegerLiteral] 0
|
||||
#-----| 2: (Generic Parameters)
|
||||
# 46| 0: [TypeVariable] T
|
||||
# 45| 3: [TypeAccess] Unit
|
||||
# 46| 3: [TypeAccess] Unit
|
||||
#-----| 4: (Parameters)
|
||||
# 46| 0: [Parameter] a
|
||||
#-----| -1: (Annotations)
|
||||
@@ -41,38 +41,38 @@ def.kt:
|
||||
# 47| -1: [TypeAccess] ConsoleKt
|
||||
# 47| 0: [MethodCall] a(...)
|
||||
# 47| -1: [VarAccess] a
|
||||
# 49| 1: [LocalVariableDeclStmt] var ...;
|
||||
# 49| 1: [LocalVariableDeclExpr] x
|
||||
# 50| 1: [LocalVariableDeclStmt] var ...;
|
||||
# 50| 1: [LocalVariableDeclExpr] x
|
||||
# 50| 0: [IntegerLiteral] 10
|
||||
# 53| 3: [Method] getP
|
||||
# 57| 3: [Method] getP
|
||||
#-----| 1: (Annotations)
|
||||
# 54| 1: [Annotation] Annot0k
|
||||
# 21| 1: [IntegerLiteral] 0
|
||||
# 53| 3: [TypeAccess] int
|
||||
# 53| 5: [BlockStmt] { ... }
|
||||
# 53| 0: [ReturnStmt] return ...
|
||||
# 53| 0: [VarAccess] DefKt.p
|
||||
# 53| -1: [TypeAccess] DefKt
|
||||
# 53| 4: [FieldDeclaration] int p;
|
||||
# 57| 3: [TypeAccess] int
|
||||
# 57| 5: [BlockStmt] { ... }
|
||||
# 57| 0: [ReturnStmt] return ...
|
||||
# 57| 0: [VarAccess] DefKt.p
|
||||
# 57| -1: [TypeAccess] DefKt
|
||||
# 57| 4: [FieldDeclaration] int p;
|
||||
#-----| -2: (Annotations)
|
||||
# 56| 1: [Annotation] Annot0k
|
||||
# 21| 1: [IntegerLiteral] 0
|
||||
# 53| -1: [TypeAccess] int
|
||||
# 57| -1: [TypeAccess] int
|
||||
# 57| 0: [IntegerLiteral] 5
|
||||
# 53| 5: [Method] setP
|
||||
# 57| 5: [Method] setP
|
||||
#-----| 1: (Annotations)
|
||||
# 55| 1: [Annotation] Annot0k
|
||||
# 21| 1: [IntegerLiteral] 0
|
||||
# 53| 3: [TypeAccess] Unit
|
||||
# 57| 3: [TypeAccess] Unit
|
||||
#-----| 4: (Parameters)
|
||||
# 53| 0: [Parameter] <set-?>
|
||||
# 53| 0: [TypeAccess] int
|
||||
# 53| 5: [BlockStmt] { ... }
|
||||
# 53| 0: [ExprStmt] <Expr>;
|
||||
# 53| 0: [AssignExpr] ...=...
|
||||
# 53| 0: [VarAccess] DefKt.p
|
||||
# 53| -1: [TypeAccess] DefKt
|
||||
# 53| 1: [VarAccess] <set-?>
|
||||
# 57| 0: [Parameter] <set-?>
|
||||
# 57| 0: [TypeAccess] int
|
||||
# 57| 5: [BlockStmt] { ... }
|
||||
# 57| 0: [ExprStmt] <Expr>;
|
||||
# 57| 0: [AssignExpr] ...=...
|
||||
# 57| 0: [VarAccess] DefKt.p
|
||||
# 57| -1: [TypeAccess] DefKt
|
||||
# 57| 1: [VarAccess] <set-?>
|
||||
# 59| 6: [ExtensionMethod] myExtension
|
||||
# 59| 3: [TypeAccess] Unit
|
||||
#-----| 4: (Parameters)
|
||||
@@ -219,13 +219,13 @@ def.kt:
|
||||
# 39| -1: [TypeAccess] Y
|
||||
# 39| 2: [VarAccess] Y.A
|
||||
# 39| -1: [TypeAccess] Y
|
||||
# 41| 1: [Constructor] Z
|
||||
# 42| 1: [Constructor] Z
|
||||
#-----| 1: (Annotations)
|
||||
# 41| 1: [Annotation] Annot0k
|
||||
# 21| 1: [IntegerLiteral] 0
|
||||
# 41| 5: [BlockStmt] { ... }
|
||||
# 42| 5: [BlockStmt] { ... }
|
||||
# 42| 0: [SuperConstructorInvocationStmt] super(...)
|
||||
# 41| 1: [BlockStmt] { ... }
|
||||
# 42| 1: [BlockStmt] { ... }
|
||||
use.java:
|
||||
# 0| [CompilationUnit] use
|
||||
# 1| 1: [Class] use
|
||||
|
||||
@@ -17,7 +17,7 @@ annotationDeclarations
|
||||
| Annot1j.java:1:19:1:25 | Annot1j | Annot1j.java:8:7:8:7 | d |
|
||||
| Annot1j.java:1:19:1:25 | Annot1j | Annot1j.java:10:9:10:9 | e |
|
||||
| Annot1j.java:1:19:1:25 | Annot1j | Annot1j.java:12:13:12:13 | f |
|
||||
| def.kt:5:1:21:60 | Annot0k | def.kt:21:26:21:59 | a |
|
||||
| def.kt:5:1:21:60 | Annot0k | def.kt:21:44:21:59 | a |
|
||||
| def.kt:23:1:31:1 | Annot1k | def.kt:25:5:25:18 | a |
|
||||
| def.kt:23:1:31:1 | Annot1k | def.kt:26:5:26:24 | b |
|
||||
| def.kt:23:1:31:1 | Annot1k | def.kt:27:5:27:31 | c |
|
||||
@@ -29,12 +29,12 @@ annotations
|
||||
| def.kt:30:22:30:31 | Annot0k | def.kt:39:1:39:40 | Annot1k | def.kt:5:1:21:60 | Annot0k |
|
||||
| def.kt:38:1:38:17 | Annot0k | def.kt:38:1:43:1 | Z | def.kt:5:1:21:60 | Annot0k |
|
||||
| def.kt:39:1:39:40 | Annot1k | def.kt:38:1:43:1 | Z | def.kt:23:1:31:1 | Annot1k |
|
||||
| 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:41:5:41:12 | Annot0k | def.kt:42:5:42:19 | Z | def.kt:5:1:21:60 | Annot0k |
|
||||
| def.kt:45:1:45:8 | Annot0k | def.kt:46:1:51:1 | fn | def.kt:5:1:21:60 | Annot0k |
|
||||
| def.kt:46:21:46:28 | Annot0k | def.kt:46:21:46:39 | a | def.kt:5:1:21:60 | Annot0k |
|
||||
| def.kt:54:1:54:12 | Annot0k | def.kt: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:54:1:54:12 | Annot0k | def.kt:57:1:57:19 | getP | def.kt:5:1:21:60 | Annot0k |
|
||||
| def.kt:55:1:55:12 | Annot0k | def.kt:57:1:57:19 | setP | def.kt:5:1:21:60 | Annot0k |
|
||||
| def.kt:56:1:56:14 | Annot0k | def.kt:57:1:57:23 | p | def.kt:5:1:21:60 | Annot0k |
|
||||
| def.kt:59:5:59:21 | Annot0k | def.kt:59:5:59:28 | <this> | def.kt:5:1:21:60 | Annot0k |
|
||||
| use.java:10:5:10:21 | Annot0j | use.java:14:18:14:18 | Z | Annot0j.java:1:19:1:25 | Annot0j |
|
||||
| use.java:11:5:11:90 | Annot1j | use.java:14:18:14:18 | Z | Annot1j.java:1:19:1:25 | Annot1j |
|
||||
|
||||
@@ -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:14 | changeY | changeY | setY |
|
||||
| test.kt:8:5:10:14 | y | y | getY |
|
||||
| test.kt:12:5:13:15 | method | method | fn |
|
||||
| test.kt:10:5:10:14 | changeY | changeY | setY |
|
||||
| test.kt:10:5:10:14 | y | y | getY |
|
||||
| test.kt:13:5:13:15 | method | method | fn |
|
||||
| test.kt:17:5:17:14 | p | p | p |
|
||||
| test.kt:18:5:18:32 | w | w | q |
|
||||
| test.kt:18:23:18:32 | w | w | q |
|
||||
|
||||
@@ -2,11 +2,11 @@ thisCall
|
||||
| classes.kt:29:26:29:31 | this(...) |
|
||||
superCall
|
||||
| classes.kt:2:1:2:18 | super(...) |
|
||||
| classes.kt:4:16:4:29 | super(...) |
|
||||
| classes.kt:4:1:6:1 | super(...) |
|
||||
| classes.kt:8:1:10:1 | super(...) |
|
||||
| classes.kt:12:23:12:34 | super(...) |
|
||||
| classes.kt:17:18:17:28 | super(...) |
|
||||
| classes.kt:28:19:28:29 | super(...) |
|
||||
| classes.kt:12:1:15:1 | super(...) |
|
||||
| classes.kt:17:1:18:1 | super(...) |
|
||||
| classes.kt:28:1:30:1 | super(...) |
|
||||
| classes.kt:35:27:35:27 | super(...) |
|
||||
| classes.kt:63:1:91:1 | super(...) |
|
||||
| classes.kt:66:20:66:54 | super(...) |
|
||||
@@ -41,7 +41,7 @@ superCall
|
||||
| classes.kt:151:5:155:5 | super(...) |
|
||||
| classes.kt:159:5:159:14 | super(...) |
|
||||
| classes.kt:162:13:162:22 | super(...) |
|
||||
| generic_anonymous.kt:1:25:1:34 | super(...) |
|
||||
| generic_anonymous.kt:1:1:9:1 | super(...) |
|
||||
| generic_anonymous.kt:3:19:5:3 | super(...) |
|
||||
| generic_anonymous.kt:15:1:33:1 | super(...) |
|
||||
| generic_anonymous.kt:25:9:31:9 | super(...) |
|
||||
@@ -64,5 +64,5 @@ superCall
|
||||
| local_anonymous.kt:39:1:45:1 | super(...) |
|
||||
| local_anonymous.kt:40:14:44:5 | super(...) |
|
||||
| superChain.kt:1:1:1:33 | super(...) |
|
||||
| superChain.kt:2:33:2:57 | super(...) |
|
||||
| superChain.kt:3:33:3:57 | super(...) |
|
||||
| superChain.kt:2:1:2:60 | super(...) |
|
||||
| superChain.kt:3:1:3:60 | super(...) |
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
| 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 | new Object(...) { ... } | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:3:3:5:3 | x | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:3:11:3:15 | T | T |
|
||||
| generic_anonymous.kt:3:11:3:15 | new Object(...) { ... } | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:3:11:3:15 | this | Generic |
|
||||
| generic_anonymous.kt:3:11:3:15 | this.x | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:3:11:5:3 | ...=... | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:3:11:5:3 | T | T |
|
||||
| generic_anonymous.kt:3:11:5:3 | new Object(...) { ... } | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:3:11:5:3 | x | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:3:19:5:3 | <Stmt> | new Object(...) { ... } |
|
||||
| generic_anonymous.kt:3:19:5:3 | Object | Object |
|
||||
| generic_anonymous.kt:3:19:5:3 | new (...) | new Object(...) { ... } |
|
||||
|
||||
@@ -18,9 +18,9 @@ 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: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:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13:17:23 | getMembers$private |
|
||||
| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13:17:46 | members |
|
||||
| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13: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 |
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
| companion_objects.kt:23:5:23:11 | MyClassCompanion | VarAccess | companion_objects.kt:4:9:4:31 | funInCompanion |
|
||||
| companion_objects.kt:24:5:24:13 | new MyClass(...) | ClassInstanceExpr | companion_objects.kt:2:5:2:23 | funInClass |
|
||||
| companion_objects.kt:25:5:25:15 | MyInterfaceCompanion | VarAccess | companion_objects.kt:11:9:11:31 | funInCompanion |
|
||||
| companion_objects.kt:26:5:26:9 | new Imp(...) | ClassInstanceExpr | companion_objects.kt:16:5:18:5 | funInInterface |
|
||||
| companion_objects.kt:26:5:26:9 | new Imp(...) | ClassInstanceExpr | companion_objects.kt:16:14:18:5 | funInInterface |
|
||||
|
||||
@@ -93,7 +93,7 @@ dc.kt:
|
||||
# 0| 0: [BooleanLiteral] false
|
||||
# 0| 2: [LocalVariableDeclStmt] var ...;
|
||||
# 0| 1: [LocalVariableDeclExpr] tmp0_other_with_cast
|
||||
# 0| 0: [CastExpr] (...)...
|
||||
# 0| 0: [ImplicitCastExpr] <implicit cast>
|
||||
# 0| 0: [TypeAccess] ProtoMapValue
|
||||
# 0| 1: [VarAccess] other
|
||||
# 0| 3: [ExprStmt] <Expr>;
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
| dc.kt:0:0:0:0 | new ProtoMapValue(...) | ProtoMapValue.ProtoMapValue |
|
||||
| dc.kt:0:0:0:0 | toString(...) | java.util.Arrays.toString |
|
||||
| dc.kt:0:0:0:0 | toString(...) | java.util.Arrays.toString |
|
||||
| dc.kt:1:25:1:71 | super(...) | java.lang.Object.Object |
|
||||
| dc.kt:1:1:1:71 | super(...) | java.lang.Object.Object |
|
||||
|
||||
@@ -2520,22 +2520,21 @@ exprs.kt:
|
||||
# 137| 0: [GTExpr] ... > ...
|
||||
# 137| 0: [VarAccess] variable
|
||||
# 137| 1: [IntegerLiteral] 0
|
||||
# 137| 1: [BlockStmt] { ... }
|
||||
# 138| 0: [ExprStmt] <Expr>;
|
||||
# 138| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
|
||||
# 138| 0: [TypeAccess] Unit
|
||||
# 138| 1: [StmtExpr] <Stmt>
|
||||
# 138| 0: [BlockStmt] { ... }
|
||||
# 138| 0: [LocalVariableDeclStmt] var ...;
|
||||
# 138| 1: [LocalVariableDeclExpr] <unary>
|
||||
# 138| 0: [VarAccess] variable
|
||||
# 138| 1: [ExprStmt] <Expr>;
|
||||
# 138| 0: [AssignExpr] ...=...
|
||||
# 138| 0: [VarAccess] variable
|
||||
# 138| 1: [MethodCall] dec(...)
|
||||
# 138| -1: [VarAccess] <unary>
|
||||
# 138| 2: [ExprStmt] <Expr>;
|
||||
# 138| 0: [VarAccess] <unary>
|
||||
# 138| 1: [ExprStmt] <Expr>;
|
||||
# 138| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
|
||||
# 138| 0: [TypeAccess] Unit
|
||||
# 138| 1: [StmtExpr] <Stmt>
|
||||
# 138| 0: [BlockStmt] { ... }
|
||||
# 138| 0: [LocalVariableDeclStmt] var ...;
|
||||
# 138| 1: [LocalVariableDeclExpr] <unary>
|
||||
# 138| 0: [VarAccess] variable
|
||||
# 138| 1: [ExprStmt] <Expr>;
|
||||
# 138| 0: [AssignExpr] ...=...
|
||||
# 138| 0: [VarAccess] variable
|
||||
# 138| 1: [MethodCall] dec(...)
|
||||
# 138| -1: [VarAccess] <unary>
|
||||
# 138| 2: [ExprStmt] <Expr>;
|
||||
# 138| 0: [VarAccess] <unary>
|
||||
# 141| 119: [ReturnStmt] return ...
|
||||
# 141| 0: [AddExpr] ... + ...
|
||||
# 141| 0: [IntegerLiteral] 123
|
||||
@@ -2624,7 +2623,9 @@ exprs.kt:
|
||||
# 167| 1: [BlockStmt] { ... }
|
||||
# 168| 0: [LocalVariableDeclStmt] var ...;
|
||||
# 168| 1: [LocalVariableDeclExpr] r2
|
||||
# 168| 0: [VarAccess] r
|
||||
# 168| 0: [ImplicitCastExpr] <implicit cast>
|
||||
# 168| 0: [TypeAccess] Rectangle
|
||||
# 168| 1: [VarAccess] r
|
||||
# 169| 1: [LocalVariableDeclStmt] var ...;
|
||||
# 169| 1: [LocalVariableDeclExpr] height
|
||||
# 169| 0: [VarAccess] r2.height
|
||||
@@ -3519,7 +3520,9 @@ exprs.kt:
|
||||
# 212| 1: [LocalVariableDeclExpr] b3
|
||||
# 212| 0: [AddExpr] ... + ...
|
||||
# 212| 0: [NotNullExpr] ...!!
|
||||
# 212| 0: [VarAccess] s
|
||||
# 212| 0: [ImplicitCastExpr] <implicit cast>
|
||||
# 212| 0: [TypeAccess] String
|
||||
# 212| 1: [VarAccess] s
|
||||
# 212| 1: [IntegerLiteral] 5
|
||||
# 213| 5: [LocalVariableDeclStmt] var ...;
|
||||
# 213| 1: [LocalVariableDeclExpr] c0
|
||||
|
||||
@@ -129,20 +129,20 @@
|
||||
| delegatedProperties.kt:26:13:26:28 | curValue | delegatedProperties.kt:25:64:31:9 | | VarAccess |
|
||||
| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:26:28:26:28 | 0 | delegatedProperties.kt:25:64:31:9 | | IntegerLiteral |
|
||||
| delegatedProperties.kt:27:13:27:88 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:27:22:27:88 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:27:35:27:47 | Object | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:27:50:27:71 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
|
||||
| delegatedProperties.kt:27:50:27:71 | KProperty<?> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:27:81:27:88 | getCurValue(...) | delegatedProperties.kt:27:13:27:88 | getValue | MethodCall |
|
||||
| delegatedProperties.kt:27:81:27:88 | this | delegatedProperties.kt:27:13:27:88 | getValue | ThisAccess |
|
||||
| delegatedProperties.kt:28:13:30:13 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:27:81:27:88 | getCurValue(...) | delegatedProperties.kt:27:22:27:88 | getValue | MethodCall |
|
||||
| delegatedProperties.kt:27:81:27:88 | this | delegatedProperties.kt:27:22:27:88 | getValue | ThisAccess |
|
||||
| delegatedProperties.kt:28:22:30:13 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:28:35:28:47 | Object | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:28:50:28:71 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
|
||||
| delegatedProperties.kt:28:50:28:71 | KProperty<?> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:28:74:28:83 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:29:17:29:32 | setCurValue(...) | delegatedProperties.kt:28:13:30:13 | setValue | MethodCall |
|
||||
| delegatedProperties.kt:29:17:29:32 | this | delegatedProperties.kt:28:13:30:13 | setValue | ThisAccess |
|
||||
| delegatedProperties.kt:29:28:29:32 | value | delegatedProperties.kt:28:13:30:13 | setValue | VarAccess |
|
||||
| delegatedProperties.kt:29:17:29:32 | setCurValue(...) | delegatedProperties.kt:28:22:30:13 | setValue | MethodCall |
|
||||
| delegatedProperties.kt:29:17:29:32 | this | delegatedProperties.kt:28:22:30:13 | setValue | ThisAccess |
|
||||
| delegatedProperties.kt:29:28:29:32 | value | delegatedProperties.kt:28:22:30:13 | setValue | VarAccess |
|
||||
| delegatedProperties.kt:33:9:33:76 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:33:9:33:76 | readOnly$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr |
|
||||
| delegatedProperties.kt:33:30:33:47 | ...::... | delegatedProperties.kt:33:9:33:76 | <get-readOnly> | PropertyRefExpr |
|
||||
@@ -265,22 +265,22 @@
|
||||
| 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 | varResource0$delegate | delegatedProperties.kt:17:1:43:1 | Owner | VarAccess |
|
||||
| delegatedProperties.kt:46:5:48:5 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:46:14:48:5 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:46:27:46:41 | Owner | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:46:44:46:65 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
|
||||
| delegatedProperties.kt:46:44:46:65 | KProperty<?> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:47:16:47:16 | 1 | delegatedProperties.kt:46:5:48:5 | getValue | IntegerLiteral |
|
||||
| delegatedProperties.kt:49:5:50:5 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:47:16:47:16 | 1 | delegatedProperties.kt:46:14:48:5 | getValue | IntegerLiteral |
|
||||
| delegatedProperties.kt:49:14:50:5 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:49:27:49:41 | Owner | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:49:44:49:65 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
|
||||
| delegatedProperties.kt:49:44:49:65 | KProperty<?> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:49:68:49:78 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:54:5:57:5 | ResourceDelegate | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:54:14:57:5 | ResourceDelegate | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:54:34:54:48 | Owner | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:54:51:54:68 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
|
||||
| delegatedProperties.kt:54:51:54:68 | KProperty<?> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| delegatedProperties.kt:56:16:56:33 | ResourceDelegate | delegatedProperties.kt:54:5:57:5 | provideDelegate | TypeAccess |
|
||||
| delegatedProperties.kt:56:16:56:33 | new ResourceDelegate(...) | delegatedProperties.kt:54:5:57:5 | provideDelegate | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:56:16:56:33 | ResourceDelegate | delegatedProperties.kt:54:14:57:5 | provideDelegate | TypeAccess |
|
||||
| delegatedProperties.kt:56:16:56:33 | new ResourceDelegate(...) | delegatedProperties.kt:54:14:57:5 | provideDelegate | ClassInstanceExpr |
|
||||
| delegatedProperties.kt:60:1:60:20 | ...=... | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | AssignExpr |
|
||||
| delegatedProperties.kt:60:1:60:20 | <set-?> | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | VarAccess |
|
||||
| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:20 | getTopLevelInt | TypeAccess |
|
||||
@@ -1461,6 +1461,8 @@
|
||||
| exprs.kt:167:8:167:16 | ... (value not-equals) ... | exprs.kt:165:1:172:1 | foo | ValueNEExpr |
|
||||
| exprs.kt:167:13:167:16 | null | exprs.kt:165:1:172:1 | foo | NullLiteral |
|
||||
| exprs.kt:168:9:168:29 | r2 | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr |
|
||||
| exprs.kt:168:29:168:29 | <implicit cast> | exprs.kt:165:1:172:1 | foo | ImplicitCastExpr |
|
||||
| exprs.kt:168:29:168:29 | Rectangle | exprs.kt:165:1:172:1 | foo | TypeAccess |
|
||||
| exprs.kt:168:29:168:29 | r | exprs.kt:165:1:172:1 | foo | VarAccess |
|
||||
| exprs.kt:169:9:169:30 | height | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr |
|
||||
| exprs.kt:169:22:169:23 | r2 | exprs.kt:165:1:172:1 | foo | VarAccess |
|
||||
@@ -1499,12 +1501,12 @@
|
||||
| exprs.kt:175:25:175:28 | Direction | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:175:25:175:28 | Direction.EAST | exprs.kt:0:0:0:0 | <clinit> | VarAccess |
|
||||
| exprs.kt:175:25:175:28 | new Direction(...) | exprs.kt:0:0:0:0 | <clinit> | ClassInstanceExpr |
|
||||
| exprs.kt:178:1:182:1 | 0 | exprs.kt:178:17:178:30 | Color | IntegerLiteral |
|
||||
| exprs.kt:178:1:182:1 | Color | exprs.kt:178:17:178:30 | Color | TypeAccess |
|
||||
| exprs.kt:178:1:182:1 | Enum<Color> | exprs.kt:178:17:178:30 | Color | TypeAccess |
|
||||
| exprs.kt:178:1:182:1 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:178:17:178:30 | 0 | exprs.kt:178:17:178:30 | Color | IntegerLiteral |
|
||||
| exprs.kt:178:17:178:30 | Color | exprs.kt:178:17:178:30 | Color | TypeAccess |
|
||||
| exprs.kt:178:17:178:30 | Enum<Color> | exprs.kt:178:17:178:30 | Color | TypeAccess |
|
||||
| exprs.kt:178:17:178:30 | new Enum<Color>(...) | exprs.kt:178:17:178:30 | Color | ClassInstanceExpr |
|
||||
| exprs.kt:178:17:178:30 | null | exprs.kt:178:17:178:30 | Color | NullLiteral |
|
||||
| exprs.kt:178:1:182:1 | new Enum<Color>(...) | exprs.kt:178:17:178:30 | Color | ClassInstanceExpr |
|
||||
| exprs.kt:178:1:182:1 | null | exprs.kt:178:17:178:30 | Color | NullLiteral |
|
||||
| exprs.kt:178:18:178:29 | ...=... | exprs.kt:178:17:178:30 | Color | KtInitializerAssignExpr |
|
||||
| exprs.kt:178:18:178:29 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:178:18:178:29 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -1548,12 +1550,12 @@
|
||||
| exprs.kt:192:5:192:14 | a1 | exprs.kt:191:1:199:1 | Class1 | VarAccess |
|
||||
| exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:192:14:192:14 | 1 | exprs.kt:191:1:199:1 | Class1 | IntegerLiteral |
|
||||
| exprs.kt:193:5:198:5 | Object | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:194:9:194:18 | a2 | exprs.kt:193:5:198:5 | getObject | LocalVariableDeclExpr |
|
||||
| exprs.kt:194:18:194:18 | 2 | exprs.kt:193:5:198:5 | getObject | IntegerLiteral |
|
||||
| exprs.kt:195:16:197:9 | <Stmt> | exprs.kt:193:5:198:5 | getObject | StmtExpr |
|
||||
| exprs.kt:195:16:197:9 | Interface1 | exprs.kt:193:5:198:5 | getObject | TypeAccess |
|
||||
| exprs.kt:195:16:197:9 | new (...) | exprs.kt:193:5:198:5 | getObject | ClassInstanceExpr |
|
||||
| exprs.kt:193:13:198:5 | Object | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:194:9:194:18 | a2 | exprs.kt:193:13:198:5 | getObject | LocalVariableDeclExpr |
|
||||
| exprs.kt:194:18:194:18 | 2 | exprs.kt:193:13:198:5 | getObject | IntegerLiteral |
|
||||
| exprs.kt:195:16:197:9 | <Stmt> | exprs.kt:193:13:198:5 | getObject | StmtExpr |
|
||||
| exprs.kt:195:16:197:9 | Interface1 | exprs.kt:193:13:198:5 | getObject | TypeAccess |
|
||||
| exprs.kt:195:16:197:9 | new (...) | exprs.kt:193:13:198:5 | getObject | ClassInstanceExpr |
|
||||
| exprs.kt:196:13:196:26 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:196:13:196:26 | this | exprs.kt:196:13:196:26 | getA3 | ThisAccess |
|
||||
| exprs.kt:196:13:196:26 | this.a3 | exprs.kt:196:13:196:26 | getA3 | VarAccess |
|
||||
@@ -1593,6 +1595,8 @@
|
||||
| exprs.kt:211:19:211:29 | ... + ... | exprs.kt:206:5:217:5 | x | AddExpr |
|
||||
| exprs.kt:211:28:211:28 | 5 | exprs.kt:206:5:217:5 | x | IntegerLiteral |
|
||||
| exprs.kt:212:9:212:25 | b3 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr |
|
||||
| exprs.kt:212:19:212:19 | <implicit cast> | exprs.kt:206:5:217:5 | x | ImplicitCastExpr |
|
||||
| exprs.kt:212:19:212:19 | String | exprs.kt:206:5:217:5 | x | TypeAccess |
|
||||
| exprs.kt:212:19:212:19 | s | exprs.kt:206:5:217:5 | x | VarAccess |
|
||||
| exprs.kt:212:19:212:21 | ...!! | exprs.kt:206:5:217:5 | x | NotNullExpr |
|
||||
| exprs.kt:212:19:212:25 | ... + ... | exprs.kt:206:5:217:5 | x | AddExpr |
|
||||
@@ -1754,9 +1758,9 @@
|
||||
| exprs.kt:274:3:274:14 | ...%=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignRemExpr |
|
||||
| exprs.kt:274:3:274:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess |
|
||||
| exprs.kt:274:14:274:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral |
|
||||
| exprs.kt:278:1:278:66 | T | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:278:1:278:66 | T[] | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:278:52:278:66 | <error expr> | exprs.kt:278:1:278:66 | getEnumValues | ErrorExpr |
|
||||
| exprs.kt:278:8:278:66 | T | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:278:8:278:66 | T[] | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:278:52:278:66 | <error expr> | exprs.kt:278:8:278:66 | getEnumValues | ErrorExpr |
|
||||
| exprs.kt:280:1:283:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| exprs.kt:281:5:281:23 | <implicit coercion to unit> | exprs.kt:280:1:283:1 | callToEnumValues | ImplicitCoercionToUnitExpr |
|
||||
| exprs.kt:281:5:281:23 | Color | exprs.kt:280:1:283:1 | callToEnumValues | TypeAccess |
|
||||
@@ -3167,9 +3171,9 @@
|
||||
| funcExprs.kt:51:8:51:16 | FuncRef | funcExprs.kt:51:8:51:16 | invoke | TypeAccess |
|
||||
| funcExprs.kt:51:8:51:16 | Function0<FuncRef> | funcExprs.kt:21:1:52:1 | call | TypeAccess |
|
||||
| funcExprs.kt:51:8:51:16 | new FuncRef(...) | funcExprs.kt:51:8:51:16 | invoke | ClassInstanceExpr |
|
||||
| funcExprs.kt:55:5:55:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:55:23:55:49 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:55:34:55:39 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:55:49:55:49 | 5 | funcExprs.kt:55:5:55:49 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:55:49:55:49 | 5 | funcExprs.kt:55:23:55:49 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:58:1:58:25 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:58:12:58:21 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
|
||||
| funcExprs.kt:58:12:58:21 | Function0<? extends T> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -3247,43 +3251,43 @@
|
||||
| funcExprs.kt:75:14:75:14 | Generic<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:75:14:75:14 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:75:19:75:21 | "a" | funcExprs.kt:75:12:75:22 | invoke | StringLiteral |
|
||||
| funcExprs.kt:77:5:77:60 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:77:13:77:60 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:77:20:77:55 | ? ... | file://:0:0:0:0 | <none> | WildcardTypeAccess |
|
||||
| funcExprs.kt:77:20:77:55 | Function1<? super Generic<Generic<Integer>>,String> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:77:20:77:55 | Generic<Generic<Integer>> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:77:20:77:55 | Generic<Integer> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:77:20:77:55 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:77:20:77:55 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:82:1:96:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:83:5:83:51 | l1 | funcExprs.kt:82:1:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:83:31:83:51 | ...->... | funcExprs.kt:82:1:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:83:31:83:51 | Function1<Integer,String> | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:31:83:51 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:82:9:96:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:83:5:83:51 | l1 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:83:31:83:51 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:83:31:83:51 | Function1<Integer,String> | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:31:83:51 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:31:83:51 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:83:31:83:51 | String | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:31:83:51 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:83:33:83:33 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:83:38:83:38 | i | funcExprs.kt:83:31:83:51 | invoke | VarAccess |
|
||||
| funcExprs.kt:83:38:83:49 | toString(...) | funcExprs.kt:83:31:83:51 | invoke | MethodCall |
|
||||
| funcExprs.kt:84:5:84:6 | l1 | funcExprs.kt:82:1:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:84:5:84:16 | invoke(...) | funcExprs.kt:82:1:96:1 | fn | MethodCall |
|
||||
| funcExprs.kt:84:8:84:16 | <implicit coercion to unit> | funcExprs.kt:82:1:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:84:8:84:16 | Unit | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:84:15:84:15 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:86:5:86:59 | l2 | funcExprs.kt:82:1:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:86:39:86:59 | ...->... | funcExprs.kt:82:1:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:86:39:86:59 | Function1<Integer,String> | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:39:86:59 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:84:5:84:6 | l1 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:84:5:84:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodCall |
|
||||
| funcExprs.kt:84:8:84:16 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:84:8:84:16 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:84:15:84:15 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:86:5:86:59 | l2 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:86:39:86:59 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:86:39:86:59 | Function1<Integer,String> | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:39:86:59 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:39:86:59 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:86:39:86:59 | String | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:39:86:59 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:86:41:86:41 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:86:46:86:46 | i | funcExprs.kt:86:39:86:59 | invoke | VarAccess |
|
||||
| funcExprs.kt:86:46:86:57 | toString(...) | funcExprs.kt:86:39:86:59 | invoke | MethodCall |
|
||||
| funcExprs.kt:87:5:87:6 | l2 | funcExprs.kt:82:1:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:87:5:87:16 | invoke(...) | funcExprs.kt:82:1:96:1 | fn | MethodCall |
|
||||
| funcExprs.kt:87:8:87:16 | <implicit coercion to unit> | funcExprs.kt:82:1:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:87:8:87:16 | Unit | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:87:15:87:15 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:89:5:90:69 | l3 | funcExprs.kt:82:1:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:87:5:87:6 | l2 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:87:5:87:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodCall |
|
||||
| funcExprs.kt:87:8:87:16 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:87:8:87:16 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:87:15:87:15 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:89:5:90:69 | l3 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:90:15:90:69 | 0 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 1 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
| funcExprs.kt:90:15:90:69 | 2 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral |
|
||||
@@ -3330,7 +3334,7 @@
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr |
|
||||
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:82:1:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
@@ -3354,9 +3358,9 @@
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess |
|
||||
| funcExprs.kt:90:15:90:69 | FunctionN<String> | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | FunctionN<String> | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | String | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
| funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess |
|
||||
@@ -3429,64 +3433,64 @@
|
||||
| funcExprs.kt:90:59:90:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:61:90:61 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:90:67:90:68 | "" | funcExprs.kt:90:15:90:69 | invoke | StringLiteral |
|
||||
| funcExprs.kt:91:5:91:6 | l3 | funcExprs.kt:82:1:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:91:5:91:60 | 23 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:5:91:60 | Object | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:5:91:60 | invoke(...) | funcExprs.kt:82:1:96:1 | fn | MethodCall |
|
||||
| funcExprs.kt:91:5:91:60 | new Object[] | funcExprs.kt:82:1:96:1 | fn | ArrayCreationExpr |
|
||||
| funcExprs.kt:91:5:91:60 | {...} | funcExprs.kt:82:1:96:1 | fn | ArrayInit |
|
||||
| funcExprs.kt:91:8:91:60 | <implicit coercion to unit> | funcExprs.kt:82:1:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:91:8:91:60 | Unit | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:15:91:15 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:17:91:17 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:19:91:19 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:21:91:21 | 4 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:23:91:23 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:25:91:25 | 6 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:27:91:27 | 7 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:29:91:29 | 8 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:31:91:31 | 9 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:33:91:33 | 0 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:35:91:35 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:37:91:37 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:39:91:39 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:41:91:41 | 4 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:43:91:43 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:45:91:45 | 6 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:47:91:47 | 7 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:49:91:49 | 8 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:51:91:51 | 9 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:53:91:53 | 0 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:55:91:55 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:57:91:57 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:59:91:59 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:93:5:94:67 | l4 | funcExprs.kt:82:1:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:94:15:94:67 | ...->... | funcExprs.kt:82:1:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:94:15:94:67 | Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,String> | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:5:91:6 | l3 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:91:5:91:60 | 23 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:5:91:60 | Object | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:5:91:60 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodCall |
|
||||
| funcExprs.kt:91:5:91:60 | new Object[] | funcExprs.kt:82:9:96:1 | fn | ArrayCreationExpr |
|
||||
| funcExprs.kt:91:5:91:60 | {...} | funcExprs.kt:82:9:96:1 | fn | ArrayInit |
|
||||
| funcExprs.kt:91:8:91:60 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:91:8:91:60 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:91:15:91:15 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:17:91:17 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:19:91:19 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:21:91:21 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:23:91:23 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:25:91:25 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:27:91:27 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:29:91:29 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:31:91:31 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:33:91:33 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:35:91:35 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:37:91:37 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:39:91:39 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:41:91:41 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:43:91:43 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:45:91:45 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:47:91:47 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:49:91:49 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:51:91:51 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:53:91:53 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:55:91:55 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:57:91:57 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:91:59:91:59 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:93:5:94:67 | l4 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr |
|
||||
| funcExprs.kt:94:15:94:67 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr |
|
||||
| funcExprs.kt:94:15:94:67 | Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,String> | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | String | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:15:94:67 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:94:17:94:17 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:19:94:19 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:21:94:21 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -3510,32 +3514,32 @@
|
||||
| funcExprs.kt:94:57:94:57 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:59:94:59 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| funcExprs.kt:94:65:94:66 | "" | funcExprs.kt:94:15:94:67 | invoke | StringLiteral |
|
||||
| funcExprs.kt:95:5:95:6 | l4 | funcExprs.kt:82:1:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:95:5:95:58 | invoke(...) | funcExprs.kt:82:1:96:1 | fn | MethodCall |
|
||||
| funcExprs.kt:95:8:95:58 | <implicit coercion to unit> | funcExprs.kt:82:1:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:95:8:95:58 | Unit | funcExprs.kt:82:1:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:95:15:95:15 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:17:95:17 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:19:95:19 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:21:95:21 | 4 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:23:95:23 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:25:95:25 | 6 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:27:95:27 | 7 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:29:95:29 | 8 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:31:95:31 | 9 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:33:95:33 | 0 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:35:95:35 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:37:95:37 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:39:95:39 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:41:95:41 | 4 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:43:95:43 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:45:95:45 | 6 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:47:95:47 | 7 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:49:95:49 | 8 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:51:95:51 | 9 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:53:95:53 | 0 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:55:95:55 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:57:95:57 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:5:95:6 | l4 | funcExprs.kt:82:9:96:1 | fn | VarAccess |
|
||||
| funcExprs.kt:95:5:95:58 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodCall |
|
||||
| funcExprs.kt:95:8:95:58 | <implicit coercion to unit> | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr |
|
||||
| funcExprs.kt:95:8:95:58 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess |
|
||||
| funcExprs.kt:95:15:95:15 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:17:95:17 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:19:95:19 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:21:95:21 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:23:95:23 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:25:95:25 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:27:95:27 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:29:95:29 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:31:95:31 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:33:95:33 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:35:95:35 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:37:95:37 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:39:95:39 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:41:95:41 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:43:95:43 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:45:95:45 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:47:95:47 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:49:95:49 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:51:95:51 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:53:95:53 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:55:95:55 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| funcExprs.kt:95:57:95:57 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral |
|
||||
| kFunctionInvoke.kt:4:5:4:24 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| kFunctionInvoke.kt:4:11:4:19 | String | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| kFunctionInvoke.kt:7:1:10:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
@@ -4254,20 +4258,20 @@
|
||||
| samConversion.kt:46:39:46:42 | true | samConversion.kt:46:32:46:44 | invoke | BooleanLiteral |
|
||||
| samConversion.kt:50:5:50:25 | boolean | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:50:12:50:15 | T | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:54:5:54:35 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:54:13:54:35 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:54:21:54:26 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:54:29:54:34 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:57:1:60:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:5:58:45 | i0 | samConversion.kt:57:1:60:1 | test | LocalVariableDeclExpr |
|
||||
| samConversion.kt:58:14:58:45 | (...)... | samConversion.kt:57:1:60:1 | test | CastExpr |
|
||||
| samConversion.kt:57:9:60:1 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:5:58:45 | i0 | samConversion.kt:57:9:60:1 | test | LocalVariableDeclExpr |
|
||||
| samConversion.kt:58:14:58:45 | (...)... | samConversion.kt:57:9:60:1 | test | CastExpr |
|
||||
| samConversion.kt:58:14:58:45 | ...=... | samConversion.kt:58:14:58:45 | | AssignExpr |
|
||||
| samConversion.kt:58:14:58:45 | <fn> | samConversion.kt:58:14:58:45 | | VarAccess |
|
||||
| samConversion.kt:58:14:58:45 | <fn> | samConversion.kt:58:14:58:45 | fn1 | VarAccess |
|
||||
| samConversion.kt:58:14:58:45 | Function2<Integer,Integer,Unit> | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | Integer | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:1:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:1:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | i | samConversion.kt:58:14:58:45 | fn1 | VarAccess |
|
||||
@@ -4275,22 +4279,22 @@
|
||||
| samConversion.kt:58:14:58:45 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:14:58:45 | invoke(...) | samConversion.kt:58:14:58:45 | fn1 | MethodCall |
|
||||
| samConversion.kt:58:14:58:45 | j | samConversion.kt:58:14:58:45 | fn1 | VarAccess |
|
||||
| samConversion.kt:58:14:58:45 | new (...) | samConversion.kt:57:1:60:1 | test | ClassInstanceExpr |
|
||||
| samConversion.kt:58:14:58:45 | new (...) | samConversion.kt:57:9:60:1 | test | ClassInstanceExpr |
|
||||
| samConversion.kt:58:14:58:45 | this | samConversion.kt:58:14:58:45 | | ThisAccess |
|
||||
| samConversion.kt:58:14:58:45 | this.<fn> | samConversion.kt:58:14:58:45 | | VarAccess |
|
||||
| samConversion.kt:58:30:58:45 | ...->... | samConversion.kt:57:1:60:1 | test | LambdaExpr |
|
||||
| samConversion.kt:58:30:58:45 | Function2<Integer,Integer,Unit> | samConversion.kt:57:1:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:1:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:1:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | ...->... | samConversion.kt:57:9:60:1 | test | LambdaExpr |
|
||||
| samConversion.kt:58:30:58:45 | Function2<Integer,Integer,Unit> | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Unit | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Unit | samConversion.kt:57:1:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:30:58:45 | Unit | samConversion.kt:57:9:60:1 | test | TypeAccess |
|
||||
| samConversion.kt:58:32:58:32 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:35:58:35 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:58:40:58:43 | INSTANCE | samConversion.kt:58:30:58:45 | invoke | VarAccess |
|
||||
| samConversion.kt:59:5:59:6 | i0 | samConversion.kt:57:1:60:1 | test | VarAccess |
|
||||
| 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:59:5:59:6 | i0 | samConversion.kt:57:9:60:1 | test | VarAccess |
|
||||
| samConversion.kt:59:5:59:15 | fn1(...) | samConversion.kt:57:9:60:1 | test | MethodCall |
|
||||
| samConversion.kt:59:12:59:12 | 1 | samConversion.kt:57:9:60:1 | test | IntegerLiteral |
|
||||
| samConversion.kt:59:14:59:14 | 2 | samConversion.kt:57:9:60:1 | test | IntegerLiteral |
|
||||
| samConversion.kt:63:5:63:9 | int | file://:0:0:0:0 | <none> | TypeAccess |
|
||||
| samConversion.kt:63:5:63:9 | this | samConversion.kt:63:5:63:9 | getX | ThisAccess |
|
||||
| samConversion.kt:63:5:63:9 | this.x | samConversion.kt:63:5:63:9 | getX | VarAccess |
|
||||
|
||||
@@ -88,8 +88,8 @@ anon_class_member_modifiers
|
||||
| delegatedProperties.kt:23:29:23:31 | new KProperty0<String>(...) { ... } | delegatedProperties.kt:23:29:23:31 | invoke | override, public |
|
||||
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:26:13:26:24 | getCurValue | final, public |
|
||||
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:26:13:26:24 | setCurValue | final, public |
|
||||
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:27:13:27:88 | getValue | override, public |
|
||||
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:28:13:30:13 | setValue | override, public |
|
||||
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:27:22:27:88 | getValue | override, public |
|
||||
| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty<Object,Integer>(...) { ... } | delegatedProperties.kt:28:22:30:13 | setValue | override, public |
|
||||
| delegatedProperties.kt:33:30:33:47 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:33:30:33:47 | get | override, public |
|
||||
| delegatedProperties.kt:33:30:33:47 | new KProperty0<Integer>(...) { ... } | delegatedProperties.kt:33:30:33:47 | invoke | override, public |
|
||||
| delegatedProperties.kt:34:31:34:48 | new KMutableProperty0<Integer>(...) { ... } | delegatedProperties.kt:34:31:34:48 | get | override, public |
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user