diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 0b975d9b829b..d40a002d03ba 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -53,6 +53,10 @@ import org.jetbrains.kotlin.load.java.structure.impl.classFiles.BinaryJavaClass import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.util.OperatorNameConventions +import org.jetbrains.kotlin.psi.KtProperty +import org.jetbrains.kotlin.psi.KtVariableDeclaration +import org.jetbrains.kotlin.psi.psiUtil.endOffset +import org.jetbrains.kotlin.psi.psiUtil.startOffset import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull open class KotlinFileExtractor( @@ -82,6 +86,8 @@ open class KotlinFileExtractor( val usesK2 = usesK2(pluginContext) val metaAnnotationSupport = MetaAnnotationSupport(logger, pluginContext, this) + private var currentIrFile: IrFile? = null + private inline fun with(kind: String, element: IrElement, f: () -> T): T { val name = when (element) { @@ -108,7 +114,9 @@ open class KotlinFileExtractor( fun extractFileContents(file: IrFile, id: Label) { with("file", file) { - val locId = tw.getWholeFileLocation() + currentIrFile = file + try { + val locId = tw.getWholeFileLocation() val pkg = file.packageFqName.asString() val pkgId = extractPackage(pkg) tw.writeHasLocation(id, locId) @@ -158,6 +166,9 @@ open class KotlinFileExtractor( linesOfCode?.linesOfCodeInFile(id) externalClassExtractor.writeStubTrapFile(file) + } finally { + currentIrFile = null + } } } @@ -672,7 +683,8 @@ open class KotlinFileExtractor( val stmtId = tw.getFreshIdLabel() tw.writeStmts_localtypedeclstmt(stmtId, parent, idx, callable) tw.writeIsLocalClassOrInterface(id, stmtId) - val locId = tw.getLocation(locElement) + val locId = if (usesK2) getPsiBasedLocation(locElement) ?: tw.getLocation(locElement) + else tw.getLocation(locElement) tw.writeHasLocation(stmtId, locId) } @@ -691,7 +703,8 @@ open class KotlinFileExtractor( ) tw.writeMethodsKotlinType(obinitId, returnType.kotlinResult.id) - val locId = tw.getLocation(c) + val locId = if (usesK2) getPsiBasedLocation(c) ?: tw.getLocation(c) + else tw.getLocation(c) tw.writeHasLocation(obinitId, locId) addModifiers(obinitId, "private") @@ -954,7 +967,8 @@ open class KotlinFileExtractor( } } - val locId = tw.getLocation(c) + val locId = if (usesK2) getPsiBasedLocation(c) ?: tw.getLocation(c) + else tw.getLocation(c) tw.writeHasLocation(id, locId) extractEnclosingClass(c.parent, id, c, locId, listOf()) @@ -1734,7 +1748,8 @@ open class KotlinFileExtractor( extractMethodAndParameterTypeAccesses: Boolean, extractAnnotations: Boolean, typeSubstitution: TypeSubstitution?, - classTypeArgsIncludingOuterClasses: List? + classTypeArgsIncludingOuterClasses: List?, + overriddenAttributes: OverriddenFunctionAttributes? = null ) = if (isFake(f)) { if (needsInterfaceForwarder(f)) @@ -1752,8 +1767,18 @@ open class KotlinFileExtractor( // specifically in interfaces loaded from Java classes show up like fake overrides. val overriddenVisibility = if (f.isFakeOverride && isJavaBinaryObjectMethodRedeclaration(f)) - OverriddenFunctionAttributes(visibility = DescriptorVisibilities.PUBLIC) + DescriptorVisibilities.PUBLIC else null + // Merge caller-supplied overrides with the internal visibility adjustment. + val mergedAttributes = when { + overriddenAttributes == null && overriddenVisibility == null -> null + overriddenAttributes == null -> OverriddenFunctionAttributes(visibility = overriddenVisibility) + overriddenVisibility == null -> overriddenAttributes + else -> overriddenAttributes.copy( + visibility = overriddenVisibility.takeUnless { overriddenAttributes.visibility != null } + ?: overriddenAttributes.visibility + ) + } forceExtractFunction( f, parentId, @@ -1762,7 +1787,7 @@ open class KotlinFileExtractor( extractAnnotations, typeSubstitution, classTypeArgsIncludingOuterClasses, - overriddenAttributes = overriddenVisibility + overriddenAttributes = mergedAttributes ) .also { // The defaults-forwarder function is a static utility, not a member, so we only @@ -2435,6 +2460,7 @@ open class KotlinFileExtractor( val locId = overriddenAttributes?.sourceLoc + ?: (if (usesK2) getPsiBasedLocation(f) else null) ?: getLocation(f, classTypeArgsIncludingOuterClasses) if (f.symbol is IrConstructorSymbol) { @@ -2568,12 +2594,24 @@ open class KotlinFileExtractor( if (isAnnotationClassField(f)) kClassToJavaClass(f.type) else f.type val id = useField(f) extractAnnotations(f, id, extractAnnotationEnumTypeAccesses) + // A plain backing field's location should match its property's location + // (the `val`/`var` keyword to the end of the declaration), rather than the + // raw IR offset, which includes leading modifiers under -language-version + // 1.9 but not 2.0. Anchoring on the property keeps the two consistent. + // Delegated properties are excluded: their field is the `$delegate` storage, + // whose location is the delegate expression, not the property declaration. + val locId = + f.correspondingPropertySymbol + ?.owner + ?.takeUnless { it.isDelegated } + ?.let { getPsiBasedLocation(it) } + ?: tw.getLocation(f) return extractField( id, "${f.name.asString()}$fNameSuffix", extractType, parentId, - tw.getLocation(f), + locId, f.visibility, f, isExternalDeclaration(f), @@ -2644,7 +2682,14 @@ open class KotlinFileExtractor( DeclarationStackAdjuster(p).use { val id = useProperty(p, parentId, classTypeArgsIncludingOuterClasses) - val locId = getLocation(p, classTypeArgsIncludingOuterClasses) + // PSI location is only used for the primary (unspecialised) extraction. Specialised + // generic instances defer to getLocation so that the backing binary-file location is + // preserved, keeping specialised properties absent from fromSource() queries. + val locId = + if (classTypeArgsIncludingOuterClasses.isNullOrEmpty()) + getPsiBasedLocation(p) ?: getLocation(p, classTypeArgsIncludingOuterClasses) + else + getLocation(p, classTypeArgsIncludingOuterClasses) tw.writeKtProperties(id, p.name.asString()) tw.writeHasLocation(id, locId) @@ -2652,6 +2697,13 @@ open class KotlinFileExtractor( val getter = p.getter val setter = p.setter + // Synthesised (DEFAULT_PROPERTY_ACCESSOR) getter and setter should point + // at the property head, not the initialiser or custom accessor body. + fun accessorOverride(f: IrFunction) = + if (f.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR) + getPsiBasedAccessorLocation(p)?.let { OverriddenFunctionAttributes(sourceLoc = it) } + else null + if (getter == null) { if (!isExternalDeclaration(p)) { logger.warnElement("IrProperty without a getter", p) @@ -2665,7 +2717,8 @@ open class KotlinFileExtractor( extractMethodAndParameterTypeAccesses = extractFunctionBodies, extractAnnotations = extractAnnotations, typeSubstitution, - classTypeArgsIncludingOuterClasses + classTypeArgsIncludingOuterClasses, + overriddenAttributes = accessorOverride(getter) ) ?.cast() if (getterId != null) { @@ -2695,7 +2748,8 @@ open class KotlinFileExtractor( extractMethodAndParameterTypeAccesses = extractFunctionBodies, extractAnnotations = extractAnnotations, typeSubstitution, - classTypeArgsIncludingOuterClasses + classTypeArgsIncludingOuterClasses, + overriddenAttributes = accessorOverride(setter) ) ?.cast() if (setterId != null) { @@ -2874,6 +2928,83 @@ open class KotlinFileExtractor( return v } + private fun getPsiBasedLocation(element: IrElement): Label? { + val file = currentIrFile ?: return null + val psi2Ir = getPsi2Ir() ?: return null + val psiElement = psi2Ir.findPsiElement(element, file) ?: return null + return tw.getLocation(psiElement.startOffset, psiElement.endOffset) + } + + /** + * Returns the PSI-based location for a local variable declaration. + * + * In K2 mode, [IrVariable.startOffset] points to the `val`/`var` keyword + * and [IrVariable.endOffset] points past the initialiser, giving the full + * declaration span without annotations. In K1 mode the IR records only the + * name identifier's range. + * + * To produce the same span in K1 we look up the leaf PSI element at + * [IrVariable.startOffset] (the name), walk up to the enclosing + * [KtVariableDeclaration], and then use the `val`/`var` keyword position as + * the start rather than the declaration's raw textRange start (which would + * include any leading annotations). + */ + private fun getPsiBasedLocation(v: IrVariable): Label? { + val startOffset = v.startOffset + if (startOffset < 0) return null + val file = currentIrFile ?: return null + val ktFile = getPsi2Ir()?.getKtFile(file) ?: return null + val nameElement = ktFile.findElementAt(startOffset) ?: return null + val declaration = generateSequence(nameElement) { it.parent } + .filterIsInstance() + .firstOrNull() ?: return null + // Use the val/var keyword as the start to avoid including leading annotations + // in the location (KtProperty.textRange starts before annotations). + val declStart = (declaration as? KtProperty)?.valOrVarKeyword?.startOffset + ?: declaration.startOffset + return tw.getLocation(declStart, declaration.endOffset) + } + + /** + * Returns the PSI-based location for a property declaration, spanning from + * the `val`/`var` keyword to the end of the full property declaration (including + * any explicit getter/setter body). + * + * IR offsets are inconsistent across K1 and K2: + * - K1 [IrProperty.startOffset] includes leading modifiers (private, abstract, + * lateinit, @Annotation) in the span start. K2 starts at `val`/`var`. + * - K1 [IrProperty.endOffset] stops at the end of the declaration line and + * does not include an explicit getter/setter body on a subsequent line. K2 + * includes the getter/setter body. + * + * Both are resolved by walking the PSI tree: the [KtProperty] node covers the + * full declaration including getter/setter, and [KtProperty.valOrVarKeyword] + * gives the correct start, excluding modifiers. + */ + private fun getPsiBasedLocation(p: IrProperty): Label? { + if (p.startOffset < 0 || p.endOffset < 0) return null + val file = currentIrFile ?: return null + val ktFile = getPsi2Ir()?.getKtFile(file) ?: return null + val ktProperty = ktFile.findElementAt(p.startOffset) + ?.let { leaf -> generateSequence(leaf) { it.parent }.filterIsInstance().firstOrNull() } + ?: return null + val declStart = ktProperty.valOrVarKeyword.startOffset + val declEnd = ktProperty.endOffset + return tw.getLocation(declStart, declEnd) + } + + private fun getPsiBasedAccessorLocation(p: IrProperty): Label? { + if (p.startOffset < 0 || p.endOffset < 0) return null + val file = currentIrFile ?: return null + val ktFile = getPsi2Ir()?.getKtFile(file) ?: return null + val ktProperty = ktFile.findElementAt(p.startOffset) + ?.let { leaf -> generateSequence(leaf) { it.parent }.filterIsInstance().firstOrNull() } + ?: return null + val declStart = ktProperty.valOrVarKeyword.startOffset + val declEnd = ktProperty.nameIdentifier?.endOffset ?: ktProperty.valOrVarKeyword.endOffset + return tw.getLocation(declStart, declEnd) + } + private fun extractVariable( v: IrVariable, callable: Label, @@ -2882,7 +3013,7 @@ open class KotlinFileExtractor( ) { with("variable", v) { val stmtId = tw.getFreshIdLabel() - val locId = tw.getLocation(getVariableLocationProvider(v)) + val locId = getPsiBasedLocation(v) ?: tw.getLocation(getVariableLocationProvider(v)) tw.writeStmts_localvariabledeclstmt(stmtId, parent, idx, callable) tw.writeHasLocation(stmtId, locId) extractVariableExpr(v, callable, stmtId, 1, stmtId) @@ -2900,7 +3031,7 @@ open class KotlinFileExtractor( with("variable expr", v) { val varId = useVariable(v) val exprId = tw.getFreshIdLabel() - val locId = tw.getLocation(getVariableLocationProvider(v)) + val locId = getPsiBasedLocation(v) ?: tw.getLocation(getVariableLocationProvider(v)) val type = useType(v.type) tw.writeLocalvars(varId, v.name.asString(), type.javaResult.id, exprId) tw.writeLocalvarsKotlinType(varId, type.kotlinResult.id) @@ -2972,7 +3103,7 @@ open class KotlinFileExtractor( } is IrLocalDelegatedProperty -> { val blockId = tw.getFreshIdLabel() - val locId = tw.getLocation(s) + val locId = getPsiBasedLocation(s) ?: tw.getLocation(s) tw.writeStmts_block(blockId, parent, idx, callable) tw.writeHasLocation(blockId, locId) // For Kotlin < 2.3, s.delegate is not-nullable, but for Kotlin >= 2.3 @@ -3059,9 +3190,10 @@ open class KotlinFileExtractor( id: Label, c: IrCall, callable: Label, - enclosingStmt: Label + enclosingStmt: Label, + customLocId: Label? = null ) { - val locId = tw.getLocation(c) + val locId = customLocId ?: tw.getLocation(c) extractExprContext(id, locId, callable, enclosingStmt) val dr = c.dispatchReceiver @@ -4391,6 +4523,55 @@ open class KotlinFileExtractor( tw.writeExprsKotlinType(id, type.kotlinResult.id) unaryopDisp(id) } + // Fold unaryMinus applied to a numeric constant into a single negative literal. + // In K2 mode, `-123L` is emitted as IrCall(unaryMinus, IrConst(123L)) rather than + // IrConst(-123L) as in K1. Folding restores K1 behaviour and makes negative + // numeric literals directly queryable in both modes. + isNumericFunction(target, "unaryMinus") && dr is CodeQLIrConst<*> -> { + val receiver = dr + val v = receiver.value + val type = useType(c.type) + // In K2 the IrCall's startOffset equals the receiver's startOffset, so the + // minus sign (one character before the literal) must be recovered from the source. + val locId = + if (receiver.startOffset > 0) + tw.getLocation(receiver.startOffset - 1, c.endOffset) + else + tw.getLocation(c) + when (v) { + is Int -> + extractConstantInteger(-v, locId, parent, idx, callable, enclosingStmt) + is Short -> + extractConstantInteger(-v.toInt(), locId, parent, idx, callable, enclosingStmt) + is Byte -> + extractConstantInteger(-v.toInt(), locId, parent, idx, callable, enclosingStmt) + is Long -> + exprIdOrFresh(null).also { id -> + tw.writeExprs_longliteral(id, type.javaResult.id, parent, idx) + tw.writeExprsKotlinType(id, type.kotlinResult.id) + extractExprContext(id, locId, callable, enclosingStmt) + tw.writeNamestrings((-v).toString(), (-v).toString(), id) + } + is Float -> + exprIdOrFresh(null).also { id -> + tw.writeExprs_floatingpointliteral(id, type.javaResult.id, parent, idx) + tw.writeExprsKotlinType(id, type.kotlinResult.id) + extractExprContext(id, locId, callable, enclosingStmt) + tw.writeNamestrings((-v).toString(), (-v).toString(), id) + } + is Double -> + exprIdOrFresh(null).also { id -> + tw.writeExprs_doubleliteral(id, type.javaResult.id, parent, idx) + tw.writeExprsKotlinType(id, type.kotlinResult.id) + extractExprContext(id, locId, callable, enclosingStmt) + tw.writeNamestrings((-v).toString(), (-v).toString(), id) + } + else -> + logger.errorElement( + "Unexpected constant type for unaryMinus folding: ${v?.javaClass}", c + ) + } + } isNumericFunction(target, "inv", "unaryMinus", "unaryPlus") -> { val type = useType(c.type) val id: Label = @@ -4510,7 +4691,12 @@ open class KotlinFileExtractor( val type = useType(c.type) tw.writeExprs_notnullexpr(id, type.javaResult.id, parent, idx) tw.writeExprsKotlinType(id, type.kotlinResult.id) - unaryOp(id, c, callable, enclosingStmt) + // In K1 mode the IrCall.startOffset for !! points to the '!' character rather + // than the start of the operand. Use the operand's startOffset instead so that + // the NotNullExpr spans from the operand to the end of '!!'. + val operandStart = c.codeQlGetValueArgument(0)?.startOffset?.takeIf { it >= 0 } + val notNullLocId = if (operandStart != null && c.endOffset >= 0) tw.getLocation(operandStart, c.endOffset) else null + unaryOp(id, c, callable, enclosingStmt, notNullLocId) } isBuiltinCallInternal(c, "THROW_CCE") -> { // TODO @@ -6038,7 +6224,7 @@ open class KotlinFileExtractor( extractVariableAccess( useValueDeclaration(owner), extractType, - tw.getLocation(e), + getPsiBasedLocation(e) ?: tw.getLocation(e), exprParent.parent, exprParent.idx, callable, @@ -6252,7 +6438,7 @@ open class KotlinFileExtractor( ) id } - val locId = tw.getLocation(e) + val locId = getPsiBasedLocation(e) ?: tw.getLocation(e) tw.writeExprsKotlinType(id, type.kotlinResult.id) extractExprContext(id, locId, callable, exprParent.enclosingStmt) @@ -6280,7 +6466,7 @@ open class KotlinFileExtractor( val exprParent = parent.expr(e, callable) val id = tw.getFreshIdLabel() val type = useType(e.type) - val locId = tw.getLocation(e) + val locId = getPsiBasedLocation(e) ?: tw.getLocation(e) tw.writeExprs_whenexpr( id, type.javaResult.id, @@ -6294,7 +6480,7 @@ open class KotlinFileExtractor( } e.branches.forEachIndexed { i, b -> val bId = tw.getFreshIdLabel() - val bLocId = tw.getLocation(b) + val bLocId = getPsiBasedLocation(b) ?: tw.getLocation(b) tw.writeStmts_whenbranch(bId, id, i, callable) tw.writeHasLocation(bId, bLocId) extractExpressionExpr(b.condition, callable, bId, 0, bId) @@ -6401,7 +6587,7 @@ open class KotlinFileExtractor( **/ val ids = getLocallyVisibleFunctionLabels(e.function) - val locId = tw.getLocation(e) + val locId = getPsiBasedLocation(e) ?: tw.getLocation(e) val ext = e.function.codeQlExtensionReceiverParameter val parameters = @@ -6522,7 +6708,7 @@ open class KotlinFileExtractor( callable: Label ) { val id = tw.getFreshIdLabel() - val locId = tw.getLocation(e) + val locId = getPsiBasedLocation(e) ?: tw.getLocation(e) tw.writeStmts_block(id, parent, idx, callable) tw.writeHasLocation(id, locId) statements.forEachIndexed { i, s -> extractStatement(s, callable, id, i) } @@ -6586,7 +6772,7 @@ open class KotlinFileExtractor( callable: Label ) { val containingDeclaration = declarationStack.peek().first - val locId = tw.getLocation(e) + val locId = getPsiBasedLocation(e) ?: tw.getLocation(e) if ( containingDeclaration.shouldExtractAsStatic && @@ -6953,7 +7139,7 @@ open class KotlinFileExtractor( v is String -> { exprIdOrFresh(overrideId).also { id -> val type = useType(e.type) - val locId = tw.getLocation(e) + val locId = getPsiBasedLocation(e) ?: tw.getLocation(e) tw.writeExprs_stringliteral(id, type.javaResult.id, parent, idx) tw.writeExprsKotlinType(id, type.kotlinResult.id) extractExprContext(id, locId, enclosingCallable, enclosingStmt) diff --git a/java/ql/integration-tests/kotlin/all-platforms/enhanced-nullability/test.expected b/java/ql/integration-tests/kotlin/all-platforms/enhanced-nullability/test.expected index e78d827c6212..04702df79163 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/enhanced-nullability/test.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/enhanced-nullability/test.expected @@ -2,7 +2,7 @@ exprs | Test.java:5:19:5:25 | Integer | Integer | | Test.java:5:38:5:44 | Integer | Integer | | Test.java:5:58:5:58 | p | Integer | -| user.kt:2:7:2:7 | x | int | +| user.kt:2:3:2:16 | x | int | | user.kt:2:11:2:11 | t | Test | | user.kt:2:11:2:16 | f(...) | Integer | | user.kt:2:13:2:16 | | int | diff --git a/java/ql/test-kotlin1/library-tests/annotation_classes/PrintAst.expected b/java/ql/test-kotlin1/library-tests/annotation_classes/PrintAst.expected index 0d42d2732c97..1f4b1f2011e5 100644 --- a/java/ql/test-kotlin1/library-tests/annotation_classes/PrintAst.expected +++ b/java/ql/test-kotlin1/library-tests/annotation_classes/PrintAst.expected @@ -44,13 +44,7 @@ def.kt: # 50| 1: [LocalVariableDeclStmt] var ...; # 50| 1: [LocalVariableDeclExpr] x # 50| 0: [IntegerLiteral] 10 -# 53| 3: [FieldDeclaration] int p; -#-----| -2: (Annotations) -# 56| 1: [Annotation] Annot0k -# 0| 1: [IntegerLiteral] 0 -# 53| -1: [TypeAccess] int -# 57| 0: [IntegerLiteral] 5 -# 57| 4: [Method] getP +# 57| 3: [Method] getP #-----| 1: (Annotations) # 54| 1: [Annotation] Annot0k # 0| 1: [IntegerLiteral] 0 @@ -59,6 +53,12 @@ def.kt: # 57| 0: [ReturnStmt] return ... # 57| 0: [VarAccess] DefKt.p # 57| -1: [TypeAccess] DefKt +# 57| 4: [FieldDeclaration] int p; +#-----| -2: (Annotations) +# 56| 1: [Annotation] Annot0k +# 0| 1: [IntegerLiteral] 0 +# 57| -1: [TypeAccess] int +# 57| 0: [IntegerLiteral] 5 # 57| 5: [Method] setP #-----| 1: (Annotations) # 55| 1: [Annotation] Annot0k @@ -72,7 +72,7 @@ def.kt: # 57| 0: [AssignExpr] ...=... # 57| 0: [VarAccess] DefKt.p # 57| -1: [TypeAccess] DefKt -# 57| 1: [VarAccess] +# 53| 1: [VarAccess] # 59| 6: [ExtensionMethod] myExtension # 59| 3: [TypeAccess] Unit #-----| 4: (Parameters) diff --git a/java/ql/test-kotlin1/library-tests/annotation_classes/classes.expected b/java/ql/test-kotlin1/library-tests/annotation_classes/classes.expected index 94b712305315..a2aa8803618c 100644 --- a/java/ql/test-kotlin1/library-tests/annotation_classes/classes.expected +++ b/java/ql/test-kotlin1/library-tests/annotation_classes/classes.expected @@ -32,9 +32,9 @@ annotations | def.kt:41:5:41:12 | Annot0k | def.kt:42:5:42:19 | Z | def.kt:5:1:21:60 | Annot0k | | def.kt:45:1:45:8 | Annot0k | def.kt:46:1:51:1 | fn | def.kt:5:1:21:60 | Annot0k | | def.kt:46:21:46:28 | Annot0k | def.kt:46:21:46:39 | a | def.kt:5:1:21:60 | Annot0k | -| def.kt:54:1:54:12 | Annot0k | def.kt:57:1:57:23 | getP | def.kt:5:1:21:60 | Annot0k | -| def.kt:55:1:55:12 | Annot0k | def.kt:57:1:57:23 | 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:5 | getP | def.kt:5:1:21:60 | Annot0k | +| def.kt:55:1:55:12 | Annot0k | def.kt:57:1:57:5 | setP | def.kt:5:1:21:60 | Annot0k | +| def.kt:56:1:56:14 | Annot0k | def.kt:57:1:57:23 | p | def.kt:5:1:21:60 | Annot0k | | def.kt:59:5:59:21 | Annot0k | def.kt:59:5:59:28 | | def.kt:5:1:21:60 | Annot0k | | use.java:10:5:10:21 | Annot0j | use.java:14:18:14:18 | Z | Annot0j.java:1:19:1:25 | Annot0j | | use.java:11:5:11:90 | Annot1j | use.java:14:18:14:18 | Z | Annot1j.java:1:19:1:25 | Annot1j | diff --git a/java/ql/test-kotlin1/library-tests/annotations/jvmName/test.expected b/java/ql/test-kotlin1/library-tests/annotations/jvmName/test.expected index 8517c2a70f26..f416038e3357 100644 --- a/java/ql/test-kotlin1/library-tests/annotations/jvmName/test.expected +++ b/java/ql/test-kotlin1/library-tests/annotations/jvmName/test.expected @@ -1,8 +1,8 @@ | Test.java:2:17:2:17 | m | m | m | | test.kt:4:9:4:18 | getX_prop | getX_prop | getX | | test.kt:6:5:6:19 | getX | getX | getX | -| test.kt:10:5:10:19 | changeY | changeY | setY | -| test.kt:10:5:10:19 | y | y | getY | +| test.kt:10:5:10:9 | changeY | changeY | setY | +| test.kt:10:5:10:9 | y | y | getY | | test.kt:13:5:13:15 | method | method | fn | | test.kt:17:5:17:14 | p | p | p | | test.kt:18:23:18:32 | w | w | q | diff --git a/java/ql/test-kotlin1/library-tests/classes/PrintAst.expected b/java/ql/test-kotlin1/library-tests/classes/PrintAst.expected index a69a4ad887b2..20f09d147062 100644 --- a/java/ql/test-kotlin1/library-tests/classes/PrintAst.expected +++ b/java/ql/test-kotlin1/library-tests/classes/PrintAst.expected @@ -658,7 +658,14 @@ generic_anonymous.kt: # 1| 0: [ReturnStmt] return ... # 1| 0: [VarAccess] this.t # 1| -1: [ThisAccess] this -# 3| 4: [FieldDeclaration] new Object(...) { ... } x; +# 3| 4: [Method] getX$private +# 3| 3: [TypeAccess] new Object(...) { ... } +# 3| 0: [TypeAccess] T +# 3| 5: [BlockStmt] { ... } +# 3| 0: [ReturnStmt] return ... +# 3| 0: [VarAccess] this.x +# 3| -1: [ThisAccess] this +# 3| 5: [FieldDeclaration] new Object(...) { ... } x; # 3| -1: [TypeAccess] new Object(...) { ... } # 3| 0: [TypeAccess] T # 3| 0: [StmtExpr] @@ -686,13 +693,6 @@ generic_anonymous.kt: # 3| 1: [ExprStmt] ; # 3| 0: [ClassInstanceExpr] new (...) # 3| -3: [TypeAccess] Object -# 3| 5: [Method] getX$private -# 3| 3: [TypeAccess] new Object(...) { ... } -# 3| 0: [TypeAccess] T -# 3| 5: [BlockStmt] { ... } -# 3| 0: [ReturnStmt] return ... -# 3| 0: [VarAccess] this.x -# 3| -1: [ThisAccess] this # 7| 6: [Method] get # 7| 3: [TypeAccess] T # 7| 5: [BlockStmt] { ... } diff --git a/java/ql/test-kotlin1/library-tests/classes/genericExprTypes.expected b/java/ql/test-kotlin1/library-tests/classes/genericExprTypes.expected index b350fd8d7bb9..88cbe352200d 100644 --- a/java/ql/test-kotlin1/library-tests/classes/genericExprTypes.expected +++ b/java/ql/test-kotlin1/library-tests/classes/genericExprTypes.expected @@ -7,19 +7,19 @@ | generic_anonymous.kt:1:26:1:33 | this | Generic | | generic_anonymous.kt:1:26:1:33 | this.t | T | | 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 | this | Generic | | 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:5:3 | T | T | | generic_anonymous.kt:3:11:5:3 | new Object(...) { ... } | new Object(...) { ... } | -| generic_anonymous.kt:3:11:5:3 | this | Generic | | generic_anonymous.kt:3:11:5:3 | this.x | new Object(...) { ... } | | generic_anonymous.kt:3:19:5:3 | | new Object(...) { ... } | | generic_anonymous.kt:3:19:5:3 | Object | Object | | generic_anonymous.kt:3:19:5:3 | new (...) | new Object(...) { ... } | +| generic_anonymous.kt:4:7:4:16 | T | T | | generic_anonymous.kt:4:7:4:20 | ...=... | T | | generic_anonymous.kt:4:7:4:20 | T | T | -| generic_anonymous.kt:4:7:4:20 | T | T | | generic_anonymous.kt:4:7:4:20 | member | T | | generic_anonymous.kt:4:7:4:20 | this | new Object(...) { ... } | | generic_anonymous.kt:4:7:4:20 | this.member | T | diff --git a/java/ql/test-kotlin1/library-tests/comments/comments.expected b/java/ql/test-kotlin1/library-tests/comments/comments.expected index 0b0d16dc3463..4fc28b2e2673 100644 --- a/java/ql/test-kotlin1/library-tests/comments/comments.expected +++ b/java/ql/test-kotlin1/library-tests/comments/comments.expected @@ -18,9 +18,9 @@ comments | comments.kt:95:1:95:163 | // Diagnostic Matches: % Couldn't get owner of KDoc. The comment is extracted without an owner. ...while extracting a file (comments.kt) at %comments.kt:1:1:96:0% | // Diagnostic Matches: % Couldn't get owner of KDoc. The comment is extracted without an owner. ...while extracting a file (comments.kt) at %comments.kt:1:1:96:0% | commentOwners | comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | comments.kt:12:1:31:1 | Group | -| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:5:17:46 | 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:46 | getMembers$private | +| 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:35:5:35:34 | /** Medium is in the middle */ | comments.kt:36:5:36:14 | Medium | | comments.kt:37:5:37:23 | /** This is high */ | comments.kt:38:5:38:11 | High | @@ -28,7 +28,7 @@ commentOwners | comments.kt:54:5:56:7 | /**\n * An init block comment\n */ | comments.kt:53:1:58:1 | InitBlock | | comments.kt:61:5:63:7 | /**\n * A prop comment\n */ | comments.kt:64:5:68:17 | prop | | comments.kt:65:9:67:11 | /**\n * An accessor comment\n */ | comments.kt:68:9:68:17 | getProp | -| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:76:10 | getL | +| comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:70:9 | getL | | comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:76:10 | l | | comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | comments.kt:70:5:76:10 | l | | comments.kt:79:9:81:11 | /**\n * A local function comment\n */ | comments.kt:82:9:82:24 | localFn | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStmts.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStmts.expected index a3c7b11eb217..dcf1eae75f42 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStmts.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStmts.expected @@ -9,30 +9,30 @@ | Test.kt:3:8:80:1 | Entry | 8 | Test.kt:3:8:80:1 | Exit | | Test.kt:4:2:79:2 | Entry | 0 | Test.kt:4:2:79:2 | Entry | | Test.kt:4:2:79:2 | Entry | 1 | Test.kt:4:13:79:2 | { ... } | -| Test.kt:4:2:79:2 | Entry | 2 | Test.kt:5:7:5:7 | var ...; | -| Test.kt:4:2:79:2 | Entry | 3 | Test.kt:5:7:5:7 | Before x | +| Test.kt:4:2:79:2 | Entry | 2 | Test.kt:5:3:5:16 | var ...; | +| Test.kt:4:2:79:2 | Entry | 3 | Test.kt:5:3:5:16 | Before x | | Test.kt:4:2:79:2 | Entry | 4 | Test.kt:5:16:5:16 | 0 | -| Test.kt:4:2:79:2 | Entry | 5 | Test.kt:5:7:5:7 | x | -| Test.kt:4:2:79:2 | Entry | 6 | Test.kt:5:7:5:7 | After x | -| Test.kt:4:2:79:2 | Entry | 7 | Test.kt:5:7:5:7 | After var ...; | -| Test.kt:4:2:79:2 | Entry | 8 | Test.kt:6:7:6:7 | var ...; | -| Test.kt:4:2:79:2 | Entry | 9 | Test.kt:6:7:6:7 | Before y | +| Test.kt:4:2:79:2 | Entry | 5 | Test.kt:5:3:5:16 | x | +| Test.kt:4:2:79:2 | Entry | 6 | Test.kt:5:3:5:16 | After x | +| Test.kt:4:2:79:2 | Entry | 7 | Test.kt:5:3:5:16 | After var ...; | +| Test.kt:4:2:79:2 | Entry | 8 | Test.kt:6:3:6:18 | var ...; | +| Test.kt:4:2:79:2 | Entry | 9 | Test.kt:6:3:6:18 | Before y | | Test.kt:4:2:79:2 | Entry | 10 | Test.kt:6:17:6:18 | 50 | -| Test.kt:4:2:79:2 | Entry | 11 | Test.kt:6:7:6:7 | y | -| Test.kt:4:2:79:2 | Entry | 12 | Test.kt:6:7:6:7 | After y | -| Test.kt:4:2:79:2 | Entry | 13 | Test.kt:6:7:6:7 | After var ...; | -| Test.kt:4:2:79:2 | Entry | 14 | Test.kt:7:7:7:7 | var ...; | -| Test.kt:4:2:79:2 | Entry | 15 | Test.kt:7:7:7:7 | Before z | +| Test.kt:4:2:79:2 | Entry | 11 | Test.kt:6:3:6:18 | y | +| Test.kt:4:2:79:2 | Entry | 12 | Test.kt:6:3:6:18 | After y | +| Test.kt:4:2:79:2 | Entry | 13 | Test.kt:6:3:6:18 | After var ...; | +| Test.kt:4:2:79:2 | Entry | 14 | Test.kt:7:3:7:16 | var ...; | +| Test.kt:4:2:79:2 | Entry | 15 | Test.kt:7:3:7:16 | Before z | | Test.kt:4:2:79:2 | Entry | 16 | Test.kt:7:16:7:16 | 0 | -| Test.kt:4:2:79:2 | Entry | 17 | Test.kt:7:7:7:7 | z | -| Test.kt:4:2:79:2 | Entry | 18 | Test.kt:7:7:7:7 | After z | -| Test.kt:4:2:79:2 | Entry | 19 | Test.kt:7:7:7:7 | After var ...; | -| Test.kt:4:2:79:2 | Entry | 20 | Test.kt:8:7:8:7 | var ...; | -| Test.kt:4:2:79:2 | Entry | 21 | Test.kt:8:7:8:7 | Before w | +| Test.kt:4:2:79:2 | Entry | 17 | Test.kt:7:3:7:16 | z | +| Test.kt:4:2:79:2 | Entry | 18 | Test.kt:7:3:7:16 | After z | +| Test.kt:4:2:79:2 | Entry | 19 | Test.kt:7:3:7:16 | After var ...; | +| Test.kt:4:2:79:2 | Entry | 20 | Test.kt:8:3:8:16 | var ...; | +| Test.kt:4:2:79:2 | Entry | 21 | Test.kt:8:3:8:16 | Before w | | Test.kt:4:2:79:2 | Entry | 22 | Test.kt:8:16:8:16 | 0 | -| Test.kt:4:2:79:2 | Entry | 23 | Test.kt:8:7:8:7 | w | -| Test.kt:4:2:79:2 | Entry | 24 | Test.kt:8:7:8:7 | After w | -| Test.kt:4:2:79:2 | Entry | 25 | Test.kt:8:7:8:7 | After var ...; | +| Test.kt:4:2:79:2 | Entry | 23 | Test.kt:8:3:8:16 | w | +| Test.kt:4:2:79:2 | Entry | 24 | Test.kt:8:3:8:16 | After w | +| Test.kt:4:2:79:2 | Entry | 25 | Test.kt:8:3:8:16 | After var ...; | | Test.kt:4:2:79:2 | Entry | 26 | Test.kt:11:3:16:3 | ; | | Test.kt:4:2:79:2 | Entry | 27 | Test.kt:11:3:16:3 | when ... | | Test.kt:4:2:79:2 | Entry | 28 | Test.kt:11:3:16:3 | ... -> ... | @@ -221,17 +221,17 @@ | Test.kt:82:1:89:1 | Entry | 1 | Test.kt:82:21:89:1 | { ... } | | Test.kt:82:1:89:1 | Entry | 2 | Test.kt:83:2:88:2 | try ... | | Test.kt:82:1:89:1 | Entry | 3 | Test.kt:83:6:86:2 | { ... } | -| Test.kt:82:1:89:1 | Entry | 4 | Test.kt:84:7:84:7 | var ...; | -| Test.kt:82:1:89:1 | Entry | 5 | Test.kt:84:7:84:7 | Before x | +| Test.kt:82:1:89:1 | Entry | 4 | Test.kt:84:3:84:18 | var ...; | +| Test.kt:82:1:89:1 | Entry | 5 | Test.kt:84:3:84:18 | Before x | | Test.kt:82:1:89:1 | Entry | 6 | Test.kt:84:11:84:18 | Before (...)... | | Test.kt:82:1:89:1 | Entry | 7 | Test.kt:84:11:84:11 | o | | Test.kt:82:1:89:1 | Entry | 8 | Test.kt:84:11:84:18 | (...)... | | Test.kt:82:1:89:1 | Exit | 0 | Test.kt:82:1:89:1 | Exit | | Test.kt:82:1:89:1 | Normal Exit | 0 | Test.kt:82:1:89:1 | Normal Exit | | Test.kt:84:11:84:18 | After (...)... | 0 | Test.kt:84:11:84:18 | After (...)... | -| Test.kt:84:11:84:18 | After (...)... | 1 | Test.kt:84:7:84:7 | x | -| Test.kt:84:11:84:18 | After (...)... | 2 | Test.kt:84:7:84:7 | After x | -| Test.kt:84:11:84:18 | After (...)... | 3 | Test.kt:84:7:84:7 | After var ...; | +| Test.kt:84:11:84:18 | After (...)... | 1 | Test.kt:84:3:84:18 | x | +| Test.kt:84:11:84:18 | After (...)... | 2 | Test.kt:84:3:84:18 | After x | +| Test.kt:84:11:84:18 | After (...)... | 3 | Test.kt:84:3:84:18 | After var ...; | | Test.kt:84:11:84:18 | After (...)... | 4 | Test.kt:85:3:85:10 | Before return ... | | Test.kt:84:11:84:18 | After (...)... | 5 | Test.kt:85:10:85:10 | 1 | | Test.kt:84:11:84:18 | After (...)... | 6 | Test.kt:85:3:85:10 | return ... | @@ -249,20 +249,20 @@ | Test.kt:91:1:98:1 | Entry | 1 | Test.kt:91:22:98:1 | { ... } | | Test.kt:91:1:98:1 | Entry | 2 | Test.kt:92:2:97:2 | try ... | | Test.kt:91:1:98:1 | Entry | 3 | Test.kt:92:6:95:2 | { ... } | -| Test.kt:91:1:98:1 | Entry | 4 | Test.kt:93:7:93:7 | var ...; | -| Test.kt:91:1:98:1 | Entry | 5 | Test.kt:93:7:93:7 | Before x | -| Test.kt:91:1:98:1 | Entry | 6 | Test.kt:93:12:93:13 | Before ...!! | +| Test.kt:91:1:98:1 | Entry | 4 | Test.kt:93:3:93:13 | var ...; | +| Test.kt:91:1:98:1 | Entry | 5 | Test.kt:93:3:93:13 | Before x | +| Test.kt:91:1:98:1 | Entry | 6 | Test.kt:93:11:93:13 | Before ...!! | | Test.kt:91:1:98:1 | Entry | 7 | Test.kt:93:11:93:11 | o | -| Test.kt:91:1:98:1 | Entry | 8 | Test.kt:93:12:93:13 | ...!! | +| Test.kt:91:1:98:1 | Entry | 8 | Test.kt:93:11:93:13 | ...!! | | Test.kt:91:1:98:1 | Exit | 0 | Test.kt:91:1:98:1 | Exit | | Test.kt:91:1:98:1 | Normal Exit | 0 | Test.kt:91:1:98:1 | Normal Exit | -| Test.kt:93:12:93:13 | After ...!! | 0 | Test.kt:93:12:93:13 | After ...!! | -| Test.kt:93:12:93:13 | After ...!! | 1 | Test.kt:93:7:93:7 | x | -| Test.kt:93:12:93:13 | After ...!! | 2 | Test.kt:93:7:93:7 | After x | -| Test.kt:93:12:93:13 | After ...!! | 3 | Test.kt:93:7:93:7 | After var ...; | -| Test.kt:93:12:93:13 | After ...!! | 4 | Test.kt:94:3:94:10 | Before return ... | -| Test.kt:93:12:93:13 | After ...!! | 5 | Test.kt:94:10:94:10 | 1 | -| Test.kt:93:12:93:13 | After ...!! | 6 | Test.kt:94:3:94:10 | return ... | +| Test.kt:93:11:93:13 | After ...!! | 0 | Test.kt:93:11:93:13 | After ...!! | +| Test.kt:93:11:93:13 | After ...!! | 1 | Test.kt:93:3:93:13 | x | +| Test.kt:93:11:93:13 | After ...!! | 2 | Test.kt:93:3:93:13 | After x | +| Test.kt:93:11:93:13 | After ...!! | 3 | Test.kt:93:3:93:13 | After var ...; | +| Test.kt:93:11:93:13 | After ...!! | 4 | Test.kt:94:3:94:10 | Before return ... | +| Test.kt:93:11:93:13 | After ...!! | 5 | Test.kt:94:10:94:10 | 1 | +| Test.kt:93:11:93:13 | After ...!! | 6 | Test.kt:94:3:94:10 | return ... | | Test.kt:95:4:97:2 | catch (...) | 0 | Test.kt:95:4:97:2 | catch (...) | | Test.kt:95:4:97:2 | catch (...) | 1 | Test.kt:95:11:95:33 | e | | Test.kt:95:11:95:33 | After e [match] | 0 | Test.kt:95:11:95:33 | After e [match] | @@ -315,7 +315,7 @@ | Test.kt:105:5:109:5 | After when ... | 2 | Test.kt:100:25:110:1 | After { ... } | | Test.kt:105:5:109:5 | After when ... | 3 | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:105:9:105:17 | After ... (value not-equals) ... [false] | 0 | Test.kt:105:9:105:17 | After ... (value not-equals) ... [false] | -| Test.kt:105:9:105:17 | After ... (value not-equals) ... [false] | 1 | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:105:9:105:17 | After ... (value not-equals) ... [false] | 1 | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:105:9:105:17 | After ... (value not-equals) ... [false] | 2 | Test.kt:107:16:107:24 | Before ... (value not-equals) ... | | Test.kt:105:9:105:17 | After ... (value not-equals) ... [false] | 3 | Test.kt:107:16:107:16 | y | | Test.kt:105:9:105:17 | After ... (value not-equals) ... [false] | 4 | Test.kt:107:21:107:24 | null | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.expected index 4e66ae0cd04f..54ffb7972eb1 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.expected @@ -30,7 +30,7 @@ | Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Exceptional Exit | | Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Exit | | Test.kt:82:21:89:1 | { ... } | Test.kt:82:1:89:1 | Normal Exit | -| Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | x | +| Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:34:88:2 | { ... } | | Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Exceptional Exit | @@ -38,7 +38,7 @@ | Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Exceptional Exit | | Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Exit | | Test.kt:91:22:98:1 | { ... } | Test.kt:91:1:98:1 | Normal Exit | -| Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | x | +| Test.kt:91:22:98:1 | { ... } | Test.kt:93:3:93:13 | x | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:36:97:2 | { ... } | | Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Exceptional Exit | @@ -49,14 +49,14 @@ | Test.kt:100:25:110:1 | { ... } | Test.kt:101:33:103:5 | { ... } | | Test.kt:100:25:110:1 | { ... } | Test.kt:105:5:109:5 | ; | | Test.kt:100:25:110:1 | { ... } | Test.kt:105:20:107:5 | { ... } | -| Test.kt:100:25:110:1 | { ... } | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:100:25:110:1 | { ... } | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:100:25:110:1 | { ... } | Test.kt:107:27:109:5 | { ... } | | Test.kt:101:22:101:22 | y | Test.kt:101:33:103:5 | { ... } | | Test.kt:105:5:109:5 | ; | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:105:5:109:5 | ; | Test.kt:105:20:107:5 | { ... } | -| Test.kt:105:5:109:5 | ; | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:105:5:109:5 | ; | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:105:5:109:5 | ; | Test.kt:107:27:109:5 | { ... } | -| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | +| Test.kt:107:12:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | | Test.kt:112:32:116:1 | { ... } | Test.kt:112:1:116:1 | Normal Exit | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:17:115:5 | { ... } | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.expected index 25b51acefc4a..d7cec393df10 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.expected @@ -16,17 +16,17 @@ | Test.kt:43:3:43:3 | ; | Test.kt:4:2:79:2 | Normal Exit | | Test.kt:82:1:89:1 | Exceptional Exit | Test.kt:82:1:89:1 | Exit | | Test.kt:82:1:89:1 | Normal Exit | Test.kt:82:1:89:1 | Exit | -| Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | x | +| Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | x | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) | -| Test.kt:84:7:84:7 | x | Test.kt:82:1:89:1 | Normal Exit | +| Test.kt:84:3:84:18 | x | Test.kt:82:1:89:1 | Normal Exit | | Test.kt:86:4:88:2 | catch (...) | Test.kt:82:1:89:1 | Exceptional Exit | | Test.kt:86:4:88:2 | catch (...) | Test.kt:86:34:88:2 | { ... } | | Test.kt:86:34:88:2 | { ... } | Test.kt:82:1:89:1 | Normal Exit | | Test.kt:91:1:98:1 | Exceptional Exit | Test.kt:91:1:98:1 | Exit | | Test.kt:91:1:98:1 | Normal Exit | Test.kt:91:1:98:1 | Exit | -| Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | x | +| Test.kt:91:22:98:1 | { ... } | Test.kt:93:3:93:13 | x | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) | -| Test.kt:93:7:93:7 | x | Test.kt:91:1:98:1 | Normal Exit | +| Test.kt:93:3:93:13 | x | Test.kt:91:1:98:1 | Normal Exit | | Test.kt:95:4:97:2 | catch (...) | Test.kt:91:1:98:1 | Exceptional Exit | | Test.kt:95:4:97:2 | catch (...) | Test.kt:95:36:97:2 | { ... } | | Test.kt:95:36:97:2 | { ... } | Test.kt:91:1:98:1 | Normal Exit | @@ -39,11 +39,11 @@ | Test.kt:101:22:101:30 | After ... (value equals) ... [false] | Test.kt:105:5:109:5 | ; | | Test.kt:101:33:103:5 | { ... } | Test.kt:100:1:110:1 | Exit | | Test.kt:105:5:109:5 | ; | Test.kt:105:20:107:5 | { ... } | -| Test.kt:105:5:109:5 | ; | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:105:5:109:5 | ; | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:105:20:107:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit | +| Test.kt:107:12:109:5 | ... -> ... | Test.kt:107:16:107:24 | After ... (value not-equals) ... [false] | +| Test.kt:107:12:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | | Test.kt:107:16:107:24 | After ... (value not-equals) ... [false] | Test.kt:100:1:110:1 | Normal Exit | -| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:16:107:24 | After ... (value not-equals) ... [false] | -| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | | Test.kt:107:27:109:5 | { ... } | Test.kt:100:1:110:1 | Normal Exit | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:9:113:9 | After x [false] | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:14:113:14 | y | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/getASuccessor.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/getASuccessor.expected index 291c07f68571..f1561a33aa94 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/getASuccessor.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/getASuccessor.expected @@ -6,19 +6,19 @@ | Test.kt:3:8:80:1 | { ... } | BlockStmt | Test.kt:3:8:80:1 | Normal Exit | Constructor | | Test.kt:4:2:79:2 | Entry | Method | Test.kt:4:13:79:2 | { ... } | BlockStmt | | Test.kt:4:2:79:2 | Normal Exit | Method | Test.kt:4:2:79:2 | Exit | Method | -| Test.kt:4:13:79:2 | { ... } | BlockStmt | Test.kt:5:7:5:7 | var ...; | LocalVariableDeclStmt | -| Test.kt:5:7:5:7 | var ...; | LocalVariableDeclStmt | Test.kt:5:16:5:16 | 0 | IntegerLiteral | -| Test.kt:5:7:5:7 | x | LocalVariableDeclExpr | Test.kt:6:7:6:7 | var ...; | LocalVariableDeclStmt | -| Test.kt:5:16:5:16 | 0 | IntegerLiteral | Test.kt:5:7:5:7 | x | LocalVariableDeclExpr | -| Test.kt:6:7:6:7 | var ...; | LocalVariableDeclStmt | Test.kt:6:17:6:18 | 50 | LongLiteral | -| Test.kt:6:7:6:7 | y | LocalVariableDeclExpr | Test.kt:7:7:7:7 | var ...; | LocalVariableDeclStmt | -| Test.kt:6:17:6:18 | 50 | LongLiteral | Test.kt:6:7:6:7 | y | LocalVariableDeclExpr | -| Test.kt:7:7:7:7 | var ...; | LocalVariableDeclStmt | Test.kt:7:16:7:16 | 0 | IntegerLiteral | -| Test.kt:7:7:7:7 | z | LocalVariableDeclExpr | Test.kt:8:7:8:7 | var ...; | LocalVariableDeclStmt | -| Test.kt:7:16:7:16 | 0 | IntegerLiteral | Test.kt:7:7:7:7 | z | LocalVariableDeclExpr | -| Test.kt:8:7:8:7 | var ...; | LocalVariableDeclStmt | Test.kt:8:16:8:16 | 0 | IntegerLiteral | -| Test.kt:8:7:8:7 | w | LocalVariableDeclExpr | Test.kt:11:3:16:3 | ; | ExprStmt | -| Test.kt:8:16:8:16 | 0 | IntegerLiteral | Test.kt:8:7:8:7 | w | LocalVariableDeclExpr | +| Test.kt:4:13:79:2 | { ... } | BlockStmt | Test.kt:5:3:5:16 | var ...; | LocalVariableDeclStmt | +| Test.kt:5:3:5:16 | var ...; | LocalVariableDeclStmt | Test.kt:5:16:5:16 | 0 | IntegerLiteral | +| Test.kt:5:3:5:16 | x | LocalVariableDeclExpr | Test.kt:6:3:6:18 | var ...; | LocalVariableDeclStmt | +| Test.kt:5:16:5:16 | 0 | IntegerLiteral | Test.kt:5:3:5:16 | x | LocalVariableDeclExpr | +| Test.kt:6:3:6:18 | var ...; | LocalVariableDeclStmt | Test.kt:6:17:6:18 | 50 | LongLiteral | +| Test.kt:6:3:6:18 | y | LocalVariableDeclExpr | Test.kt:7:3:7:16 | var ...; | LocalVariableDeclStmt | +| Test.kt:6:17:6:18 | 50 | LongLiteral | Test.kt:6:3:6:18 | y | LocalVariableDeclExpr | +| Test.kt:7:3:7:16 | var ...; | LocalVariableDeclStmt | Test.kt:7:16:7:16 | 0 | IntegerLiteral | +| Test.kt:7:3:7:16 | z | LocalVariableDeclExpr | Test.kt:8:3:8:16 | var ...; | LocalVariableDeclStmt | +| Test.kt:7:16:7:16 | 0 | IntegerLiteral | Test.kt:7:3:7:16 | z | LocalVariableDeclExpr | +| Test.kt:8:3:8:16 | var ...; | LocalVariableDeclStmt | Test.kt:8:16:8:16 | 0 | IntegerLiteral | +| Test.kt:8:3:8:16 | w | LocalVariableDeclExpr | Test.kt:11:3:16:3 | ; | ExprStmt | +| Test.kt:8:16:8:16 | 0 | IntegerLiteral | Test.kt:8:3:8:16 | w | LocalVariableDeclExpr | | Test.kt:11:3:16:3 | ... -> ... | WhenBranch | Test.kt:11:3:16:3 | true | BooleanLiteral | | Test.kt:11:3:16:3 | ... -> ... | WhenBranch | Test.kt:11:7:11:7 | x | VarAccess | | Test.kt:11:3:16:3 | ; | ExprStmt | Test.kt:11:3:16:3 | when ... | WhenExpr | @@ -128,11 +128,11 @@ | Test.kt:82:1:89:1 | Normal Exit | Method | Test.kt:82:1:89:1 | Exit | Method | | Test.kt:82:21:89:1 | { ... } | BlockStmt | Test.kt:83:2:88:2 | try ... | TryStmt | | Test.kt:83:2:88:2 | try ... | TryStmt | Test.kt:83:6:86:2 | { ... } | BlockStmt | -| Test.kt:83:6:86:2 | { ... } | BlockStmt | Test.kt:84:7:84:7 | var ...; | LocalVariableDeclStmt | -| Test.kt:84:7:84:7 | var ...; | LocalVariableDeclStmt | Test.kt:84:11:84:11 | o | VarAccess | -| Test.kt:84:7:84:7 | x | LocalVariableDeclExpr | Test.kt:85:10:85:10 | 1 | IntegerLiteral | +| Test.kt:83:6:86:2 | { ... } | BlockStmt | Test.kt:84:3:84:18 | var ...; | LocalVariableDeclStmt | +| Test.kt:84:3:84:18 | var ...; | LocalVariableDeclStmt | Test.kt:84:11:84:11 | o | VarAccess | +| Test.kt:84:3:84:18 | x | LocalVariableDeclExpr | Test.kt:85:10:85:10 | 1 | IntegerLiteral | | Test.kt:84:11:84:11 | o | VarAccess | Test.kt:84:11:84:18 | (...)... | CastExpr | -| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:84:7:84:7 | x | LocalVariableDeclExpr | +| Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:84:3:84:18 | x | LocalVariableDeclExpr | | Test.kt:84:11:84:18 | (...)... | CastExpr | Test.kt:86:4:88:2 | catch (...) | CatchClause | | Test.kt:85:3:85:10 | return ... | ReturnStmt | Test.kt:82:1:89:1 | Normal Exit | Method | | Test.kt:85:10:85:10 | 1 | IntegerLiteral | Test.kt:85:3:85:10 | return ... | ReturnStmt | @@ -147,12 +147,12 @@ | Test.kt:91:1:98:1 | Normal Exit | Method | Test.kt:91:1:98:1 | Exit | Method | | Test.kt:91:22:98:1 | { ... } | BlockStmt | Test.kt:92:2:97:2 | try ... | TryStmt | | Test.kt:92:2:97:2 | try ... | TryStmt | Test.kt:92:6:95:2 | { ... } | BlockStmt | -| Test.kt:92:6:95:2 | { ... } | BlockStmt | Test.kt:93:7:93:7 | var ...; | LocalVariableDeclStmt | -| Test.kt:93:7:93:7 | var ...; | LocalVariableDeclStmt | Test.kt:93:11:93:11 | o | VarAccess | -| Test.kt:93:7:93:7 | x | LocalVariableDeclExpr | Test.kt:94:10:94:10 | 1 | IntegerLiteral | -| Test.kt:93:11:93:11 | o | VarAccess | Test.kt:93:12:93:13 | ...!! | NotNullExpr | -| Test.kt:93:12:93:13 | ...!! | NotNullExpr | Test.kt:93:7:93:7 | x | LocalVariableDeclExpr | -| Test.kt:93:12:93:13 | ...!! | NotNullExpr | Test.kt:95:4:97:2 | catch (...) | CatchClause | +| Test.kt:92:6:95:2 | { ... } | BlockStmt | Test.kt:93:3:93:13 | var ...; | LocalVariableDeclStmt | +| Test.kt:93:3:93:13 | var ...; | LocalVariableDeclStmt | Test.kt:93:11:93:11 | o | VarAccess | +| Test.kt:93:3:93:13 | x | LocalVariableDeclExpr | Test.kt:94:10:94:10 | 1 | IntegerLiteral | +| Test.kt:93:11:93:11 | o | VarAccess | Test.kt:93:11:93:13 | ...!! | NotNullExpr | +| Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:93:3:93:13 | x | LocalVariableDeclExpr | +| Test.kt:93:11:93:13 | ...!! | NotNullExpr | Test.kt:95:4:97:2 | catch (...) | CatchClause | | Test.kt:94:3:94:10 | return ... | ReturnStmt | Test.kt:91:1:98:1 | Normal Exit | Method | | Test.kt:94:10:94:10 | 1 | IntegerLiteral | Test.kt:94:3:94:10 | return ... | ReturnStmt | | Test.kt:95:4:97:2 | catch (...) | CatchClause | Test.kt:95:11:95:33 | e | LocalVariableDeclExpr | @@ -184,17 +184,17 @@ | Test.kt:105:5:109:5 | when ... | WhenExpr | Test.kt:105:9:107:5 | ... -> ... | WhenBranch | | Test.kt:105:9:105:9 | x | VarAccess | Test.kt:105:14:105:17 | null | NullLiteral | | Test.kt:105:9:105:17 | ... (value not-equals) ... | ValueNEExpr | Test.kt:105:20:107:5 | { ... } | BlockStmt | -| Test.kt:105:9:105:17 | ... (value not-equals) ... | ValueNEExpr | Test.kt:107:16:109:5 | ... -> ... | WhenBranch | +| Test.kt:105:9:105:17 | ... (value not-equals) ... | ValueNEExpr | Test.kt:107:12:109:5 | ... -> ... | WhenBranch | | Test.kt:105:9:107:5 | ... -> ... | WhenBranch | Test.kt:105:9:105:9 | x | VarAccess | | Test.kt:105:14:105:17 | null | NullLiteral | Test.kt:105:9:105:17 | ... (value not-equals) ... | ValueNEExpr | | Test.kt:105:20:107:5 | { ... } | BlockStmt | Test.kt:106:9:106:29 | ; | ExprStmt | | Test.kt:106:9:106:29 | ; | ExprStmt | Test.kt:106:17:106:28 | "x not null" | StringLiteral | | Test.kt:106:9:106:29 | println(...) | MethodCall | Test.kt:100:1:110:1 | Normal Exit | Method | | Test.kt:106:17:106:28 | "x not null" | StringLiteral | Test.kt:106:9:106:29 | println(...) | MethodCall | +| Test.kt:107:12:109:5 | ... -> ... | WhenBranch | Test.kt:107:16:107:16 | y | VarAccess | | Test.kt:107:16:107:16 | y | VarAccess | Test.kt:107:21:107:24 | null | NullLiteral | | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:100:1:110:1 | Normal Exit | Method | | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | Test.kt:107:27:109:5 | { ... } | BlockStmt | -| Test.kt:107:16:109:5 | ... -> ... | WhenBranch | Test.kt:107:16:107:16 | y | VarAccess | | Test.kt:107:21:107:24 | null | NullLiteral | Test.kt:107:16:107:24 | ... (value not-equals) ... | ValueNEExpr | | Test.kt:107:27:109:5 | { ... } | BlockStmt | Test.kt:108:9:108:29 | ; | ExprStmt | | Test.kt:108:9:108:29 | ; | ExprStmt | Test.kt:108:17:108:28 | "y not null" | StringLiteral | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/strictDominance.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/strictDominance.expected index 13d018efabd2..cf15ec35dbf9 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/strictDominance.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/strictDominance.expected @@ -1,10 +1,10 @@ | Test.kt:3:1:80:1 | super(...) | Test.kt:3:8:80:1 | { ... } | | Test.kt:3:8:80:1 | { ... } | Test.kt:3:1:80:1 | super(...) | | Test.kt:3:8:80:1 | { ... } | Test.kt:3:8:80:1 | { ... } | -| Test.kt:4:13:79:2 | { ... } | Test.kt:5:7:5:7 | var ...; | -| Test.kt:4:13:79:2 | { ... } | Test.kt:6:7:6:7 | var ...; | -| Test.kt:4:13:79:2 | { ... } | Test.kt:7:7:7:7 | var ...; | -| Test.kt:4:13:79:2 | { ... } | Test.kt:8:7:8:7 | var ...; | +| Test.kt:4:13:79:2 | { ... } | Test.kt:5:3:5:16 | var ...; | +| Test.kt:4:13:79:2 | { ... } | Test.kt:6:3:6:18 | var ...; | +| Test.kt:4:13:79:2 | { ... } | Test.kt:7:3:7:16 | var ...; | +| Test.kt:4:13:79:2 | { ... } | Test.kt:8:3:8:16 | var ...; | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:4:13:79:2 | { ... } | Test.kt:11:3:16:3 | ; | @@ -38,144 +38,144 @@ | Test.kt:4:13:79:2 | { ... } | Test.kt:73:3:73:3 | ; | | Test.kt:4:13:79:2 | { ... } | Test.kt:77:3:77:3 | ; | | Test.kt:4:13:79:2 | { ... } | Test.kt:78:3:78:8 | return ... | -| Test.kt:5:7:5:7 | var ...; | Test.kt:6:7:6:7 | var ...; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:7:7:7:7 | var ...; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:8:7:8:7 | var ...; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:11:3:16:3 | ... -> ... | -| Test.kt:5:7:5:7 | var ...; | Test.kt:11:3:16:3 | ... -> ... | -| Test.kt:5:7:5:7 | var ...; | Test.kt:11:3:16:3 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:11:14:14:3 | { ... } | -| Test.kt:5:7:5:7 | var ...; | Test.kt:12:4:12:4 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:13:4:13:4 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:14:10:16:3 | { ... } | -| Test.kt:5:7:5:7 | var ...; | Test.kt:15:4:15:4 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:18:3:18:3 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:21:3:24:9 | ... -> ... | -| Test.kt:5:7:5:7 | var ...; | Test.kt:21:3:24:9 | ... -> ... | -| Test.kt:5:7:5:7 | var ...; | Test.kt:21:3:24:9 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:22:4:22:4 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:24:4:24:9 | return ... | -| Test.kt:5:7:5:7 | var ...; | Test.kt:27:3:27:3 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:30:3:33:3 | ... -> ... | -| Test.kt:5:7:5:7 | var ...; | Test.kt:30:3:33:3 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:30:15:33:3 | { ... } | -| Test.kt:5:7:5:7 | var ...; | Test.kt:31:4:31:4 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:32:4:32:4 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:35:3:35:3 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:38:3:41:3 | while (...) | -| Test.kt:5:7:5:7 | var ...; | Test.kt:38:16:41:3 | { ... } | -| Test.kt:5:7:5:7 | var ...; | Test.kt:39:4:39:4 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:40:4:40:4 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:40:4:40:6 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:40:4:40:6 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:40:4:40:6 | var ...; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:40:4:40:6 | { ... } | -| Test.kt:5:7:5:7 | var ...; | Test.kt:43:3:43:3 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:73:3:73:3 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:77:3:77:3 | ; | -| Test.kt:5:7:5:7 | var ...; | Test.kt:78:3:78:8 | return ... | -| Test.kt:6:7:6:7 | var ...; | Test.kt:7:7:7:7 | var ...; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:8:7:8:7 | var ...; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:11:3:16:3 | ... -> ... | -| Test.kt:6:7:6:7 | var ...; | Test.kt:11:3:16:3 | ... -> ... | -| Test.kt:6:7:6:7 | var ...; | Test.kt:11:3:16:3 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:11:14:14:3 | { ... } | -| Test.kt:6:7:6:7 | var ...; | Test.kt:12:4:12:4 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:13:4:13:4 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:14:10:16:3 | { ... } | -| Test.kt:6:7:6:7 | var ...; | Test.kt:15:4:15:4 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:18:3:18:3 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:21:3:24:9 | ... -> ... | -| Test.kt:6:7:6:7 | var ...; | Test.kt:21:3:24:9 | ... -> ... | -| Test.kt:6:7:6:7 | var ...; | Test.kt:21:3:24:9 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:22:4:22:4 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:24:4:24:9 | return ... | -| Test.kt:6:7:6:7 | var ...; | Test.kt:27:3:27:3 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:30:3:33:3 | ... -> ... | -| Test.kt:6:7:6:7 | var ...; | Test.kt:30:3:33:3 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:30:15:33:3 | { ... } | -| Test.kt:6:7:6:7 | var ...; | Test.kt:31:4:31:4 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:32:4:32:4 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:35:3:35:3 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:38:3:41:3 | while (...) | -| Test.kt:6:7:6:7 | var ...; | Test.kt:38:16:41:3 | { ... } | -| Test.kt:6:7:6:7 | var ...; | Test.kt:39:4:39:4 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:40:4:40:4 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:40:4:40:6 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:40:4:40:6 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:40:4:40:6 | var ...; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:40:4:40:6 | { ... } | -| Test.kt:6:7:6:7 | var ...; | Test.kt:43:3:43:3 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:73:3:73:3 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:77:3:77:3 | ; | -| Test.kt:6:7:6:7 | var ...; | Test.kt:78:3:78:8 | return ... | -| Test.kt:7:7:7:7 | var ...; | Test.kt:8:7:8:7 | var ...; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:11:3:16:3 | ... -> ... | -| Test.kt:7:7:7:7 | var ...; | Test.kt:11:3:16:3 | ... -> ... | -| Test.kt:7:7:7:7 | var ...; | Test.kt:11:3:16:3 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:11:14:14:3 | { ... } | -| Test.kt:7:7:7:7 | var ...; | Test.kt:12:4:12:4 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:13:4:13:4 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:14:10:16:3 | { ... } | -| Test.kt:7:7:7:7 | var ...; | Test.kt:15:4:15:4 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:18:3:18:3 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:21:3:24:9 | ... -> ... | -| Test.kt:7:7:7:7 | var ...; | Test.kt:21:3:24:9 | ... -> ... | -| Test.kt:7:7:7:7 | var ...; | Test.kt:21:3:24:9 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:22:4:22:4 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:24:4:24:9 | return ... | -| Test.kt:7:7:7:7 | var ...; | Test.kt:27:3:27:3 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:30:3:33:3 | ... -> ... | -| Test.kt:7:7:7:7 | var ...; | Test.kt:30:3:33:3 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:30:15:33:3 | { ... } | -| Test.kt:7:7:7:7 | var ...; | Test.kt:31:4:31:4 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:32:4:32:4 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:35:3:35:3 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:38:3:41:3 | while (...) | -| Test.kt:7:7:7:7 | var ...; | Test.kt:38:16:41:3 | { ... } | -| Test.kt:7:7:7:7 | var ...; | Test.kt:39:4:39:4 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:40:4:40:4 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:40:4:40:6 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:40:4:40:6 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:40:4:40:6 | var ...; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:40:4:40:6 | { ... } | -| Test.kt:7:7:7:7 | var ...; | Test.kt:43:3:43:3 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:73:3:73:3 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:77:3:77:3 | ; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:78:3:78:8 | return ... | -| Test.kt:8:7:8:7 | var ...; | Test.kt:11:3:16:3 | ... -> ... | -| Test.kt:8:7:8:7 | var ...; | Test.kt:11:3:16:3 | ... -> ... | -| Test.kt:8:7:8:7 | var ...; | Test.kt:11:3:16:3 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:11:14:14:3 | { ... } | -| Test.kt:8:7:8:7 | var ...; | Test.kt:12:4:12:4 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:13:4:13:4 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:14:10:16:3 | { ... } | -| Test.kt:8:7:8:7 | var ...; | Test.kt:15:4:15:4 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:18:3:18:3 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:21:3:24:9 | ... -> ... | -| Test.kt:8:7:8:7 | var ...; | Test.kt:21:3:24:9 | ... -> ... | -| Test.kt:8:7:8:7 | var ...; | Test.kt:21:3:24:9 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:22:4:22:4 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:24:4:24:9 | return ... | -| Test.kt:8:7:8:7 | var ...; | Test.kt:27:3:27:3 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:30:3:33:3 | ... -> ... | -| Test.kt:8:7:8:7 | var ...; | Test.kt:30:3:33:3 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:30:15:33:3 | { ... } | -| Test.kt:8:7:8:7 | var ...; | Test.kt:31:4:31:4 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:32:4:32:4 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:35:3:35:3 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:38:3:41:3 | while (...) | -| Test.kt:8:7:8:7 | var ...; | Test.kt:38:16:41:3 | { ... } | -| Test.kt:8:7:8:7 | var ...; | Test.kt:39:4:39:4 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:40:4:40:4 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:40:4:40:6 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:40:4:40:6 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:40:4:40:6 | var ...; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:40:4:40:6 | { ... } | -| Test.kt:8:7:8:7 | var ...; | Test.kt:43:3:43:3 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:73:3:73:3 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:77:3:77:3 | ; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:78:3:78:8 | return ... | +| Test.kt:5:3:5:16 | var ...; | Test.kt:6:3:6:18 | var ...; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:7:3:7:16 | var ...; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:8:3:8:16 | var ...; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:11:3:16:3 | ... -> ... | +| Test.kt:5:3:5:16 | var ...; | Test.kt:11:3:16:3 | ... -> ... | +| Test.kt:5:3:5:16 | var ...; | Test.kt:11:3:16:3 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:11:14:14:3 | { ... } | +| Test.kt:5:3:5:16 | var ...; | Test.kt:12:4:12:4 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:13:4:13:4 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:14:10:16:3 | { ... } | +| Test.kt:5:3:5:16 | var ...; | Test.kt:15:4:15:4 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:18:3:18:3 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:21:3:24:9 | ... -> ... | +| Test.kt:5:3:5:16 | var ...; | Test.kt:21:3:24:9 | ... -> ... | +| Test.kt:5:3:5:16 | var ...; | Test.kt:21:3:24:9 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:22:4:22:4 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:24:4:24:9 | return ... | +| Test.kt:5:3:5:16 | var ...; | Test.kt:27:3:27:3 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:30:3:33:3 | ... -> ... | +| Test.kt:5:3:5:16 | var ...; | Test.kt:30:3:33:3 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:30:15:33:3 | { ... } | +| Test.kt:5:3:5:16 | var ...; | Test.kt:31:4:31:4 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:32:4:32:4 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:35:3:35:3 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:38:3:41:3 | while (...) | +| Test.kt:5:3:5:16 | var ...; | Test.kt:38:16:41:3 | { ... } | +| Test.kt:5:3:5:16 | var ...; | Test.kt:39:4:39:4 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:40:4:40:4 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:40:4:40:6 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:40:4:40:6 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:40:4:40:6 | var ...; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:40:4:40:6 | { ... } | +| Test.kt:5:3:5:16 | var ...; | Test.kt:43:3:43:3 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:73:3:73:3 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:77:3:77:3 | ; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:78:3:78:8 | return ... | +| Test.kt:6:3:6:18 | var ...; | Test.kt:7:3:7:16 | var ...; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:8:3:8:16 | var ...; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:11:3:16:3 | ... -> ... | +| Test.kt:6:3:6:18 | var ...; | Test.kt:11:3:16:3 | ... -> ... | +| Test.kt:6:3:6:18 | var ...; | Test.kt:11:3:16:3 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:11:14:14:3 | { ... } | +| Test.kt:6:3:6:18 | var ...; | Test.kt:12:4:12:4 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:13:4:13:4 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:14:10:16:3 | { ... } | +| Test.kt:6:3:6:18 | var ...; | Test.kt:15:4:15:4 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:18:3:18:3 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:21:3:24:9 | ... -> ... | +| Test.kt:6:3:6:18 | var ...; | Test.kt:21:3:24:9 | ... -> ... | +| Test.kt:6:3:6:18 | var ...; | Test.kt:21:3:24:9 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:22:4:22:4 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:24:4:24:9 | return ... | +| Test.kt:6:3:6:18 | var ...; | Test.kt:27:3:27:3 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:30:3:33:3 | ... -> ... | +| Test.kt:6:3:6:18 | var ...; | Test.kt:30:3:33:3 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:30:15:33:3 | { ... } | +| Test.kt:6:3:6:18 | var ...; | Test.kt:31:4:31:4 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:32:4:32:4 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:35:3:35:3 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:38:3:41:3 | while (...) | +| Test.kt:6:3:6:18 | var ...; | Test.kt:38:16:41:3 | { ... } | +| Test.kt:6:3:6:18 | var ...; | Test.kt:39:4:39:4 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:40:4:40:4 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:40:4:40:6 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:40:4:40:6 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:40:4:40:6 | var ...; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:40:4:40:6 | { ... } | +| Test.kt:6:3:6:18 | var ...; | Test.kt:43:3:43:3 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:73:3:73:3 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:77:3:77:3 | ; | +| Test.kt:6:3:6:18 | var ...; | Test.kt:78:3:78:8 | return ... | +| Test.kt:7:3:7:16 | var ...; | Test.kt:8:3:8:16 | var ...; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:11:3:16:3 | ... -> ... | +| Test.kt:7:3:7:16 | var ...; | Test.kt:11:3:16:3 | ... -> ... | +| Test.kt:7:3:7:16 | var ...; | Test.kt:11:3:16:3 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:11:14:14:3 | { ... } | +| Test.kt:7:3:7:16 | var ...; | Test.kt:12:4:12:4 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:13:4:13:4 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:14:10:16:3 | { ... } | +| Test.kt:7:3:7:16 | var ...; | Test.kt:15:4:15:4 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:18:3:18:3 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:21:3:24:9 | ... -> ... | +| Test.kt:7:3:7:16 | var ...; | Test.kt:21:3:24:9 | ... -> ... | +| Test.kt:7:3:7:16 | var ...; | Test.kt:21:3:24:9 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:22:4:22:4 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:24:4:24:9 | return ... | +| Test.kt:7:3:7:16 | var ...; | Test.kt:27:3:27:3 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:30:3:33:3 | ... -> ... | +| Test.kt:7:3:7:16 | var ...; | Test.kt:30:3:33:3 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:30:15:33:3 | { ... } | +| Test.kt:7:3:7:16 | var ...; | Test.kt:31:4:31:4 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:32:4:32:4 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:35:3:35:3 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:38:3:41:3 | while (...) | +| Test.kt:7:3:7:16 | var ...; | Test.kt:38:16:41:3 | { ... } | +| Test.kt:7:3:7:16 | var ...; | Test.kt:39:4:39:4 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:40:4:40:4 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:40:4:40:6 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:40:4:40:6 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:40:4:40:6 | var ...; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:40:4:40:6 | { ... } | +| Test.kt:7:3:7:16 | var ...; | Test.kt:43:3:43:3 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:73:3:73:3 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:77:3:77:3 | ; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:78:3:78:8 | return ... | +| Test.kt:8:3:8:16 | var ...; | Test.kt:11:3:16:3 | ... -> ... | +| Test.kt:8:3:8:16 | var ...; | Test.kt:11:3:16:3 | ... -> ... | +| Test.kt:8:3:8:16 | var ...; | Test.kt:11:3:16:3 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:11:14:14:3 | { ... } | +| Test.kt:8:3:8:16 | var ...; | Test.kt:12:4:12:4 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:13:4:13:4 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:14:10:16:3 | { ... } | +| Test.kt:8:3:8:16 | var ...; | Test.kt:15:4:15:4 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:18:3:18:3 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:21:3:24:9 | ... -> ... | +| Test.kt:8:3:8:16 | var ...; | Test.kt:21:3:24:9 | ... -> ... | +| Test.kt:8:3:8:16 | var ...; | Test.kt:21:3:24:9 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:22:4:22:4 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:24:4:24:9 | return ... | +| Test.kt:8:3:8:16 | var ...; | Test.kt:27:3:27:3 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:30:3:33:3 | ... -> ... | +| Test.kt:8:3:8:16 | var ...; | Test.kt:30:3:33:3 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:30:15:33:3 | { ... } | +| Test.kt:8:3:8:16 | var ...; | Test.kt:31:4:31:4 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:32:4:32:4 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:35:3:35:3 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:38:3:41:3 | while (...) | +| Test.kt:8:3:8:16 | var ...; | Test.kt:38:16:41:3 | { ... } | +| Test.kt:8:3:8:16 | var ...; | Test.kt:39:4:39:4 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:40:4:40:4 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:40:4:40:6 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:40:4:40:6 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:40:4:40:6 | var ...; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:40:4:40:6 | { ... } | +| Test.kt:8:3:8:16 | var ...; | Test.kt:43:3:43:3 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:73:3:73:3 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:77:3:77:3 | ; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:78:3:78:8 | return ... | | Test.kt:11:3:16:3 | ... -> ... | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:11:3:16:3 | ... -> ... | Test.kt:11:14:14:3 | { ... } | | Test.kt:11:3:16:3 | ... -> ... | Test.kt:12:4:12:4 | ; | @@ -440,51 +440,51 @@ | Test.kt:77:3:77:3 | ; | Test.kt:78:3:78:8 | return ... | | Test.kt:82:21:89:1 | { ... } | Test.kt:83:2:88:2 | try ... | | Test.kt:82:21:89:1 | { ... } | Test.kt:83:6:86:2 | { ... } | -| Test.kt:82:21:89:1 | { ... } | Test.kt:84:7:84:7 | var ...; | +| Test.kt:82:21:89:1 | { ... } | Test.kt:84:3:84:18 | var ...; | | Test.kt:82:21:89:1 | { ... } | Test.kt:85:3:85:10 | return ... | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:4:88:2 | catch (...) | | Test.kt:82:21:89:1 | { ... } | Test.kt:86:34:88:2 | { ... } | | Test.kt:82:21:89:1 | { ... } | Test.kt:87:3:87:10 | return ... | | Test.kt:83:2:88:2 | try ... | Test.kt:83:6:86:2 | { ... } | -| Test.kt:83:2:88:2 | try ... | Test.kt:84:7:84:7 | var ...; | +| Test.kt:83:2:88:2 | try ... | Test.kt:84:3:84:18 | var ...; | | Test.kt:83:2:88:2 | try ... | Test.kt:85:3:85:10 | return ... | | Test.kt:83:2:88:2 | try ... | Test.kt:86:4:88:2 | catch (...) | | Test.kt:83:2:88:2 | try ... | Test.kt:86:34:88:2 | { ... } | | Test.kt:83:2:88:2 | try ... | Test.kt:87:3:87:10 | return ... | -| Test.kt:83:6:86:2 | { ... } | Test.kt:84:7:84:7 | var ...; | +| Test.kt:83:6:86:2 | { ... } | Test.kt:84:3:84:18 | var ...; | | Test.kt:83:6:86:2 | { ... } | Test.kt:85:3:85:10 | return ... | | Test.kt:83:6:86:2 | { ... } | Test.kt:86:4:88:2 | catch (...) | | Test.kt:83:6:86:2 | { ... } | Test.kt:86:34:88:2 | { ... } | | Test.kt:83:6:86:2 | { ... } | Test.kt:87:3:87:10 | return ... | -| Test.kt:84:7:84:7 | var ...; | Test.kt:85:3:85:10 | return ... | -| Test.kt:84:7:84:7 | var ...; | Test.kt:86:4:88:2 | catch (...) | -| Test.kt:84:7:84:7 | var ...; | Test.kt:86:34:88:2 | { ... } | -| Test.kt:84:7:84:7 | var ...; | Test.kt:87:3:87:10 | return ... | +| Test.kt:84:3:84:18 | var ...; | Test.kt:85:3:85:10 | return ... | +| Test.kt:84:3:84:18 | var ...; | Test.kt:86:4:88:2 | catch (...) | +| Test.kt:84:3:84:18 | var ...; | Test.kt:86:34:88:2 | { ... } | +| Test.kt:84:3:84:18 | var ...; | Test.kt:87:3:87:10 | return ... | | Test.kt:86:4:88:2 | catch (...) | Test.kt:86:34:88:2 | { ... } | | Test.kt:86:4:88:2 | catch (...) | Test.kt:87:3:87:10 | return ... | | Test.kt:86:34:88:2 | { ... } | Test.kt:87:3:87:10 | return ... | | Test.kt:91:22:98:1 | { ... } | Test.kt:92:2:97:2 | try ... | | Test.kt:91:22:98:1 | { ... } | Test.kt:92:6:95:2 | { ... } | -| Test.kt:91:22:98:1 | { ... } | Test.kt:93:7:93:7 | var ...; | +| Test.kt:91:22:98:1 | { ... } | Test.kt:93:3:93:13 | var ...; | | Test.kt:91:22:98:1 | { ... } | Test.kt:94:3:94:10 | return ... | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:4:97:2 | catch (...) | | Test.kt:91:22:98:1 | { ... } | Test.kt:95:36:97:2 | { ... } | | Test.kt:91:22:98:1 | { ... } | Test.kt:96:3:96:10 | return ... | | Test.kt:92:2:97:2 | try ... | Test.kt:92:6:95:2 | { ... } | -| Test.kt:92:2:97:2 | try ... | Test.kt:93:7:93:7 | var ...; | +| Test.kt:92:2:97:2 | try ... | Test.kt:93:3:93:13 | var ...; | | Test.kt:92:2:97:2 | try ... | Test.kt:94:3:94:10 | return ... | | Test.kt:92:2:97:2 | try ... | Test.kt:95:4:97:2 | catch (...) | | Test.kt:92:2:97:2 | try ... | Test.kt:95:36:97:2 | { ... } | | Test.kt:92:2:97:2 | try ... | Test.kt:96:3:96:10 | return ... | -| Test.kt:92:6:95:2 | { ... } | Test.kt:93:7:93:7 | var ...; | +| Test.kt:92:6:95:2 | { ... } | Test.kt:93:3:93:13 | var ...; | | Test.kt:92:6:95:2 | { ... } | Test.kt:94:3:94:10 | return ... | | Test.kt:92:6:95:2 | { ... } | Test.kt:95:4:97:2 | catch (...) | | Test.kt:92:6:95:2 | { ... } | Test.kt:95:36:97:2 | { ... } | | Test.kt:92:6:95:2 | { ... } | Test.kt:96:3:96:10 | return ... | -| Test.kt:93:7:93:7 | var ...; | Test.kt:94:3:94:10 | return ... | -| Test.kt:93:7:93:7 | var ...; | Test.kt:95:4:97:2 | catch (...) | -| Test.kt:93:7:93:7 | var ...; | Test.kt:95:36:97:2 | { ... } | -| Test.kt:93:7:93:7 | var ...; | Test.kt:96:3:96:10 | return ... | +| Test.kt:93:3:93:13 | var ...; | Test.kt:94:3:94:10 | return ... | +| Test.kt:93:3:93:13 | var ...; | Test.kt:95:4:97:2 | catch (...) | +| Test.kt:93:3:93:13 | var ...; | Test.kt:95:36:97:2 | { ... } | +| Test.kt:93:3:93:13 | var ...; | Test.kt:96:3:96:10 | return ... | | Test.kt:95:4:97:2 | catch (...) | Test.kt:95:36:97:2 | { ... } | | Test.kt:95:4:97:2 | catch (...) | Test.kt:96:3:96:10 | return ... | | Test.kt:95:36:97:2 | { ... } | Test.kt:96:3:96:10 | return ... | @@ -496,7 +496,7 @@ | Test.kt:100:25:110:1 | { ... } | Test.kt:105:9:107:5 | ... -> ... | | Test.kt:100:25:110:1 | { ... } | Test.kt:105:20:107:5 | { ... } | | Test.kt:100:25:110:1 | { ... } | Test.kt:106:9:106:29 | ; | -| Test.kt:100:25:110:1 | { ... } | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:100:25:110:1 | { ... } | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:100:25:110:1 | { ... } | Test.kt:107:27:109:5 | { ... } | | Test.kt:100:25:110:1 | { ... } | Test.kt:108:9:108:29 | ; | | Test.kt:101:5:103:5 | ... -> ... | Test.kt:101:33:103:5 | { ... } | @@ -505,7 +505,7 @@ | Test.kt:101:5:103:5 | ... -> ... | Test.kt:105:9:107:5 | ... -> ... | | Test.kt:101:5:103:5 | ... -> ... | Test.kt:105:20:107:5 | { ... } | | Test.kt:101:5:103:5 | ... -> ... | Test.kt:106:9:106:29 | ; | -| Test.kt:101:5:103:5 | ... -> ... | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:101:5:103:5 | ... -> ... | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:101:5:103:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | | Test.kt:101:5:103:5 | ... -> ... | Test.kt:108:9:108:29 | ; | | Test.kt:101:5:103:5 | ; | Test.kt:101:5:103:5 | ... -> ... | @@ -515,24 +515,24 @@ | Test.kt:101:5:103:5 | ; | Test.kt:105:9:107:5 | ... -> ... | | Test.kt:101:5:103:5 | ; | Test.kt:105:20:107:5 | { ... } | | Test.kt:101:5:103:5 | ; | Test.kt:106:9:106:29 | ; | -| Test.kt:101:5:103:5 | ; | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:101:5:103:5 | ; | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:101:5:103:5 | ; | Test.kt:107:27:109:5 | { ... } | | Test.kt:101:5:103:5 | ; | Test.kt:108:9:108:29 | ; | | Test.kt:101:33:103:5 | { ... } | Test.kt:102:9:102:25 | throw ... | | Test.kt:105:5:109:5 | ; | Test.kt:105:9:107:5 | ... -> ... | | Test.kt:105:5:109:5 | ; | Test.kt:105:20:107:5 | { ... } | | Test.kt:105:5:109:5 | ; | Test.kt:106:9:106:29 | ; | -| Test.kt:105:5:109:5 | ; | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:105:5:109:5 | ; | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:105:5:109:5 | ; | Test.kt:107:27:109:5 | { ... } | | Test.kt:105:5:109:5 | ; | Test.kt:108:9:108:29 | ; | | Test.kt:105:9:107:5 | ... -> ... | Test.kt:105:20:107:5 | { ... } | | Test.kt:105:9:107:5 | ... -> ... | Test.kt:106:9:106:29 | ; | -| Test.kt:105:9:107:5 | ... -> ... | Test.kt:107:16:109:5 | ... -> ... | +| Test.kt:105:9:107:5 | ... -> ... | Test.kt:107:12:109:5 | ... -> ... | | Test.kt:105:9:107:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | | Test.kt:105:9:107:5 | ... -> ... | Test.kt:108:9:108:29 | ; | | Test.kt:105:20:107:5 | { ... } | Test.kt:106:9:106:29 | ; | -| Test.kt:107:16:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | -| Test.kt:107:16:109:5 | ... -> ... | Test.kt:108:9:108:29 | ; | +| Test.kt:107:12:109:5 | ... -> ... | Test.kt:107:27:109:5 | { ... } | +| Test.kt:107:12:109:5 | ... -> ... | Test.kt:108:9:108:29 | ; | | Test.kt:107:27:109:5 | { ... } | Test.kt:108:9:108:29 | ; | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:5:115:5 | ... -> ... | | Test.kt:112:32:116:1 | { ... } | Test.kt:113:5:115:5 | ; | diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/strictPostDominance.expected b/java/ql/test-kotlin1/library-tests/controlflow/basic/strictPostDominance.expected index 625fde1c41e5..fa0d8af74356 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/strictPostDominance.expected +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/strictPostDominance.expected @@ -1,27 +1,27 @@ | Test.kt:3:1:80:1 | super(...) | Test.kt:3:8:80:1 | { ... } | | Test.kt:3:8:80:1 | { ... } | Test.kt:3:1:80:1 | super(...) | | Test.kt:3:8:80:1 | { ... } | Test.kt:3:8:80:1 | { ... } | -| Test.kt:5:7:5:7 | var ...; | Test.kt:4:13:79:2 | { ... } | -| Test.kt:6:7:6:7 | var ...; | Test.kt:4:13:79:2 | { ... } | -| Test.kt:6:7:6:7 | var ...; | Test.kt:5:7:5:7 | var ...; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:4:13:79:2 | { ... } | -| Test.kt:7:7:7:7 | var ...; | Test.kt:5:7:5:7 | var ...; | -| Test.kt:7:7:7:7 | var ...; | Test.kt:6:7:6:7 | var ...; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:4:13:79:2 | { ... } | -| Test.kt:8:7:8:7 | var ...; | Test.kt:5:7:5:7 | var ...; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:6:7:6:7 | var ...; | -| Test.kt:8:7:8:7 | var ...; | Test.kt:7:7:7:7 | var ...; | +| Test.kt:5:3:5:16 | var ...; | Test.kt:4:13:79:2 | { ... } | +| Test.kt:6:3:6:18 | var ...; | Test.kt:4:13:79:2 | { ... } | +| Test.kt:6:3:6:18 | var ...; | Test.kt:5:3:5:16 | var ...; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:4:13:79:2 | { ... } | +| Test.kt:7:3:7:16 | var ...; | Test.kt:5:3:5:16 | var ...; | +| Test.kt:7:3:7:16 | var ...; | Test.kt:6:3:6:18 | var ...; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:4:13:79:2 | { ... } | +| Test.kt:8:3:8:16 | var ...; | Test.kt:5:3:5:16 | var ...; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:6:3:6:18 | var ...; | +| Test.kt:8:3:8:16 | var ...; | Test.kt:7:3:7:16 | var ...; | | Test.kt:11:3:16:3 | ... -> ... | Test.kt:4:13:79:2 | { ... } | -| Test.kt:11:3:16:3 | ... -> ... | Test.kt:5:7:5:7 | var ...; | -| Test.kt:11:3:16:3 | ... -> ... | Test.kt:6:7:6:7 | var ...; | -| Test.kt:11:3:16:3 | ... -> ... | Test.kt:7:7:7:7 | var ...; | -| Test.kt:11:3:16:3 | ... -> ... | Test.kt:8:7:8:7 | var ...; | +| Test.kt:11:3:16:3 | ... -> ... | Test.kt:5:3:5:16 | var ...; | +| Test.kt:11:3:16:3 | ... -> ... | Test.kt:6:3:6:18 | var ...; | +| Test.kt:11:3:16:3 | ... -> ... | Test.kt:7:3:7:16 | var ...; | +| Test.kt:11:3:16:3 | ... -> ... | Test.kt:8:3:8:16 | var ...; | | Test.kt:11:3:16:3 | ... -> ... | Test.kt:11:3:16:3 | ; | | Test.kt:11:3:16:3 | ; | Test.kt:4:13:79:2 | { ... } | -| Test.kt:11:3:16:3 | ; | Test.kt:5:7:5:7 | var ...; | -| Test.kt:11:3:16:3 | ; | Test.kt:6:7:6:7 | var ...; | -| Test.kt:11:3:16:3 | ; | Test.kt:7:7:7:7 | var ...; | -| Test.kt:11:3:16:3 | ; | Test.kt:8:7:8:7 | var ...; | +| Test.kt:11:3:16:3 | ; | Test.kt:5:3:5:16 | var ...; | +| Test.kt:11:3:16:3 | ; | Test.kt:6:3:6:18 | var ...; | +| Test.kt:11:3:16:3 | ; | Test.kt:7:3:7:16 | var ...; | +| Test.kt:11:3:16:3 | ; | Test.kt:8:3:8:16 | var ...; | | Test.kt:12:4:12:4 | ; | Test.kt:11:14:14:3 | { ... } | | Test.kt:13:4:13:4 | ; | Test.kt:11:14:14:3 | { ... } | | Test.kt:13:4:13:4 | ; | Test.kt:12:4:12:4 | ; | @@ -29,10 +29,10 @@ | Test.kt:15:4:15:4 | ; | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:15:4:15:4 | ; | Test.kt:14:10:16:3 | { ... } | | Test.kt:18:3:18:3 | ; | Test.kt:4:13:79:2 | { ... } | -| Test.kt:18:3:18:3 | ; | Test.kt:5:7:5:7 | var ...; | -| Test.kt:18:3:18:3 | ; | Test.kt:6:7:6:7 | var ...; | -| Test.kt:18:3:18:3 | ; | Test.kt:7:7:7:7 | var ...; | -| Test.kt:18:3:18:3 | ; | Test.kt:8:7:8:7 | var ...; | +| Test.kt:18:3:18:3 | ; | Test.kt:5:3:5:16 | var ...; | +| Test.kt:18:3:18:3 | ; | Test.kt:6:3:6:18 | var ...; | +| Test.kt:18:3:18:3 | ; | Test.kt:7:3:7:16 | var ...; | +| Test.kt:18:3:18:3 | ; | Test.kt:8:3:8:16 | var ...; | | Test.kt:18:3:18:3 | ; | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:18:3:18:3 | ; | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:18:3:18:3 | ; | Test.kt:11:3:16:3 | ; | @@ -42,10 +42,10 @@ | Test.kt:18:3:18:3 | ; | Test.kt:14:10:16:3 | { ... } | | Test.kt:18:3:18:3 | ; | Test.kt:15:4:15:4 | ; | | Test.kt:21:3:24:9 | ... -> ... | Test.kt:4:13:79:2 | { ... } | -| Test.kt:21:3:24:9 | ... -> ... | Test.kt:5:7:5:7 | var ...; | -| Test.kt:21:3:24:9 | ... -> ... | Test.kt:6:7:6:7 | var ...; | -| Test.kt:21:3:24:9 | ... -> ... | Test.kt:7:7:7:7 | var ...; | -| Test.kt:21:3:24:9 | ... -> ... | Test.kt:8:7:8:7 | var ...; | +| Test.kt:21:3:24:9 | ... -> ... | Test.kt:5:3:5:16 | var ...; | +| Test.kt:21:3:24:9 | ... -> ... | Test.kt:6:3:6:18 | var ...; | +| Test.kt:21:3:24:9 | ... -> ... | Test.kt:7:3:7:16 | var ...; | +| Test.kt:21:3:24:9 | ... -> ... | Test.kt:8:3:8:16 | var ...; | | Test.kt:21:3:24:9 | ... -> ... | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:21:3:24:9 | ... -> ... | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:21:3:24:9 | ... -> ... | Test.kt:11:3:16:3 | ; | @@ -57,10 +57,10 @@ | Test.kt:21:3:24:9 | ... -> ... | Test.kt:18:3:18:3 | ; | | Test.kt:21:3:24:9 | ... -> ... | Test.kt:21:3:24:9 | ; | | Test.kt:21:3:24:9 | ; | Test.kt:4:13:79:2 | { ... } | -| Test.kt:21:3:24:9 | ; | Test.kt:5:7:5:7 | var ...; | -| Test.kt:21:3:24:9 | ; | Test.kt:6:7:6:7 | var ...; | -| Test.kt:21:3:24:9 | ; | Test.kt:7:7:7:7 | var ...; | -| Test.kt:21:3:24:9 | ; | Test.kt:8:7:8:7 | var ...; | +| Test.kt:21:3:24:9 | ; | Test.kt:5:3:5:16 | var ...; | +| Test.kt:21:3:24:9 | ; | Test.kt:6:3:6:18 | var ...; | +| Test.kt:21:3:24:9 | ; | Test.kt:7:3:7:16 | var ...; | +| Test.kt:21:3:24:9 | ; | Test.kt:8:3:8:16 | var ...; | | Test.kt:21:3:24:9 | ; | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:21:3:24:9 | ; | Test.kt:11:3:16:3 | ... -> ... | | Test.kt:21:3:24:9 | ; | Test.kt:11:3:16:3 | ; | @@ -189,18 +189,18 @@ | Test.kt:83:2:88:2 | try ... | Test.kt:82:21:89:1 | { ... } | | Test.kt:83:6:86:2 | { ... } | Test.kt:82:21:89:1 | { ... } | | Test.kt:83:6:86:2 | { ... } | Test.kt:83:2:88:2 | try ... | -| Test.kt:84:7:84:7 | var ...; | Test.kt:82:21:89:1 | { ... } | -| Test.kt:84:7:84:7 | var ...; | Test.kt:83:2:88:2 | try ... | -| Test.kt:84:7:84:7 | var ...; | Test.kt:83:6:86:2 | { ... } | +| Test.kt:84:3:84:18 | var ...; | Test.kt:82:21:89:1 | { ... } | +| Test.kt:84:3:84:18 | var ...; | Test.kt:83:2:88:2 | try ... | +| Test.kt:84:3:84:18 | var ...; | Test.kt:83:6:86:2 | { ... } | | Test.kt:86:34:88:2 | { ... } | Test.kt:86:4:88:2 | catch (...) | | Test.kt:87:3:87:10 | return ... | Test.kt:86:4:88:2 | catch (...) | | Test.kt:87:3:87:10 | return ... | Test.kt:86:34:88:2 | { ... } | | Test.kt:92:2:97:2 | try ... | Test.kt:91:22:98:1 | { ... } | | Test.kt:92:6:95:2 | { ... } | Test.kt:91:22:98:1 | { ... } | | Test.kt:92:6:95:2 | { ... } | Test.kt:92:2:97:2 | try ... | -| Test.kt:93:7:93:7 | var ...; | Test.kt:91:22:98:1 | { ... } | -| Test.kt:93:7:93:7 | var ...; | Test.kt:92:2:97:2 | try ... | -| Test.kt:93:7:93:7 | var ...; | Test.kt:92:6:95:2 | { ... } | +| Test.kt:93:3:93:13 | var ...; | Test.kt:91:22:98:1 | { ... } | +| Test.kt:93:3:93:13 | var ...; | Test.kt:92:2:97:2 | try ... | +| Test.kt:93:3:93:13 | var ...; | Test.kt:92:6:95:2 | { ... } | | Test.kt:95:36:97:2 | { ... } | Test.kt:95:4:97:2 | catch (...) | | Test.kt:96:3:96:10 | return ... | Test.kt:95:4:97:2 | catch (...) | | Test.kt:96:3:96:10 | return ... | Test.kt:95:36:97:2 | { ... } | diff --git a/java/ql/test-kotlin1/library-tests/exprs/binop.expected b/java/ql/test-kotlin1/library-tests/exprs/binop.expected index f69701028d51..c0d798a2679f 100644 --- a/java/ql/test-kotlin1/library-tests/exprs/binop.expected +++ b/java/ql/test-kotlin1/library-tests/exprs/binop.expected @@ -96,8 +96,8 @@ | exprs.kt:141:12:141:20 | ... + ... | exprs.kt:141:12:141:14 | 123 | exprs.kt:141:18:141:20 | 456 | | exprs.kt:167:8:167:16 | ... (value not-equals) ... | exprs.kt:167:8:167:8 | r | exprs.kt:167:13:167:16 | null | | exprs.kt:196:31:196:37 | ... + ... | exprs.kt:196:31:196:32 | getA1(...) | exprs.kt:196:36:196:37 | a2 | -| exprs.kt:211:20:211:29 | ... + ... | exprs.kt:211:20:211:21 | ...!! | exprs.kt:211:28:211:28 | 5 | -| exprs.kt:212:19:212:25 | ... + ... | exprs.kt:212:20:212:21 | ...!! | exprs.kt:212:25:212:25 | 5 | +| exprs.kt:211:20:211:29 | ... + ... | exprs.kt:211:19:211:21 | ...!! | exprs.kt:211:28:211:28 | 5 | +| exprs.kt:212:19:212:25 | ... + ... | exprs.kt:212:19:212:21 | ...!! | exprs.kt:212:25:212:25 | 5 | | exprs.kt:230:12:230:47 | ... (value equals) ... | exprs.kt:230:12:230:27 | notNullPrimitive | exprs.kt:230:32:230:47 | notNullPrimitive | | exprs.kt:231:12:231:48 | ... (value equals) ... | exprs.kt:231:12:231:27 | notNullPrimitive | exprs.kt:231:32:231:48 | nullablePrimitive | | exprs.kt:232:12:232:49 | ... (value equals) ... | exprs.kt:232:12:232:28 | nullablePrimitive | exprs.kt:232:33:232:49 | nullablePrimitive | diff --git a/java/ql/test-kotlin1/library-tests/exprs/delegatedProperties.expected b/java/ql/test-kotlin1/library-tests/exprs/delegatedProperties.expected index 7141b6d15312..a0c7fdf7d319 100644 --- a/java/ql/test-kotlin1/library-tests/exprs/delegatedProperties.expected +++ b/java/ql/test-kotlin1/library-tests/exprs/delegatedProperties.expected @@ -1,10 +1,10 @@ delegatedProperties -| delegatedProperties.kt:6:9:9:9 | prop1 | prop1 | local | delegatedProperties.kt:6:24:9:9 | Lazy prop1$delegate | delegatedProperties.kt:6:27:9:9 | lazy(...) | -| delegatedProperties.kt:19:9:19:51 | varResource1 | varResource1 | local | delegatedProperties.kt:19:31:19:51 | ResourceDelegate varResource1$delegate | delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) | -| delegatedProperties.kt:23:9:23:31 | name | name | local | delegatedProperties.kt:23:26:23:31 | Map name$delegate | delegatedProperties.kt:23:29:23:31 | map | -| delegatedProperties.kt:33:9:33:76 | readOnly | readOnly | local | delegatedProperties.kt:33:27:33:47 | ReadWriteProperty readOnly$delegate | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | -| delegatedProperties.kt:34:9:34:48 | readWrite | readWrite | local | delegatedProperties.kt:34:28:34:48 | ReadWriteProperty readWrite$delegate | delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) | -| delegatedProperties.kt:39:9:39:51 | varResource2 | varResource2 | local | delegatedProperties.kt:39:31:39:51 | ResourceDelegate varResource2$delegate | delegatedProperties.kt:39:31:39:51 | provideDelegate(...) | +| delegatedProperties.kt:6:9:9:9 | prop1 | prop1 | local | delegatedProperties.kt:6:9:9:9 | Lazy prop1$delegate | delegatedProperties.kt:6:27:9:9 | lazy(...) | +| delegatedProperties.kt:19:9:19:51 | varResource1 | varResource1 | local | delegatedProperties.kt:19:9:19:51 | ResourceDelegate varResource1$delegate | delegatedProperties.kt:19:34:19:51 | new ResourceDelegate(...) | +| delegatedProperties.kt:23:9:23:31 | name | name | local | delegatedProperties.kt:23:9:23:31 | Map name$delegate | delegatedProperties.kt:23:29:23:31 | map | +| delegatedProperties.kt:33:9:33:76 | readOnly | readOnly | local | delegatedProperties.kt:33:9:33:76 | ReadWriteProperty readOnly$delegate | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | +| delegatedProperties.kt:34:9:34:48 | readWrite | readWrite | local | delegatedProperties.kt:34:9:34:48 | ReadWriteProperty readWrite$delegate | delegatedProperties.kt:34:31:34:48 | resourceDelegate(...) | +| delegatedProperties.kt:39:9:39:51 | varResource2 | varResource2 | local | delegatedProperties.kt:39:9:39:51 | ResourceDelegate varResource2$delegate | delegatedProperties.kt:39:31:39:51 | provideDelegate(...) | | delegatedProperties.kt:42:5:42:47 | varResource0 | varResource0 | non-local | delegatedProperties.kt:42:27:42:47 | varResource0$delegate | delegatedProperties.kt:42:30:42:47 | new ResourceDelegate(...) | | delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedToMember1 | non-local | delegatedProperties.kt:66:33:66:50 | delegatedToMember1$delegate | delegatedProperties.kt:66:36:66:50 | ...::... | | delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedToMember2 | non-local | delegatedProperties.kt:67:33:67:53 | delegatedToMember2$delegate | delegatedProperties.kt:67:36:67:53 | ...::... | @@ -15,7 +15,7 @@ delegatedProperties | delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | delegatedToAnotherClass1 | non-local | delegatedProperties.kt:75:39:75:78 | delegatedToAnotherClass1$delegate | delegatedProperties.kt:75:42:75:78 | ...::... | | delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedToTopLevel | non-local | delegatedProperties.kt:77:34:77:49 | delegatedToTopLevel$delegate | delegatedProperties.kt:77:37:77:49 | ...::... | | delegatedProperties.kt:79:5:79:38 | max | max | non-local | delegatedProperties.kt:79:18:79:38 | max$delegate | delegatedProperties.kt:79:21:79:38 | ...::... | -| delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedToMember3 | local | delegatedProperties.kt:82:37:82:54 | KMutableProperty0 delegatedToMember3$delegate | delegatedProperties.kt:82:40:82:54 | ...::... | +| delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedToMember3 | local | delegatedProperties.kt:82:9:82:54 | KMutableProperty0 delegatedToMember3$delegate | delegatedProperties.kt:82:40:82:54 | ...::... | | delegatedProperties.kt:87:1:87:46 | extDelegated | extDelegated | non-local | delegatedProperties.kt:87:31:87:46 | extDelegated$delegateMyClass | delegatedProperties.kt:87:34:87:46 | ...::... | delegatedPropertyTypes | delegatedProperties.kt:6:9:9:9 | prop1 | file://:0:0:0:0 | int | file:///Lazy.class:0:0:0:0 | Lazy | diff --git a/java/ql/test-kotlin1/library-tests/exprs/exprs.expected b/java/ql/test-kotlin1/library-tests/exprs/exprs.expected index 83fbd974893e..30538c37c04d 100644 --- a/java/ql/test-kotlin1/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin1/library-tests/exprs/exprs.expected @@ -28,6 +28,7 @@ | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:87:31:87:46 | getExtDelegated | ExtensionReceiverAccess | | delegatedProperties.kt:1:9:1:12 | this | delegatedProperties.kt:87:31:87:46 | setExtDelegated | ExtensionReceiverAccess | | delegatedProperties.kt:5:5:12:5 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:6:9:9:9 | prop1$delegate | delegatedProperties.kt:5:5:12:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:6:24:9:9 | ...::... | delegatedProperties.kt:6:24:9:9 | | PropertyRefExpr | | delegatedProperties.kt:6:24:9:9 | (...) | delegatedProperties.kt:6:24:9:9 | get | MethodCall | | delegatedProperties.kt:6:24:9:9 | Integer | delegatedProperties.kt:6:24:9:9 | | TypeAccess | @@ -39,7 +40,6 @@ | delegatedProperties.kt:6:24:9:9 | getValue(...) | delegatedProperties.kt:6:24:9:9 | | MethodCall | | delegatedProperties.kt:6:24:9:9 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:6:24:9:9 | new (...) | delegatedProperties.kt:6:24:9:9 | get | ClassInstanceExpr | -| delegatedProperties.kt:6:24:9:9 | prop1$delegate | delegatedProperties.kt:5:5:12:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:6:24:9:9 | prop1$delegate | delegatedProperties.kt:6:24:9:9 | | VarAccess | | delegatedProperties.kt:6:24:9:9 | this | delegatedProperties.kt:6:24:9:9 | invoke | ThisAccess | | delegatedProperties.kt:6:27:9:9 | Integer | delegatedProperties.kt:5:5:12:5 | fn | TypeAccess | @@ -68,6 +68,7 @@ | delegatedProperties.kt:18:12:18:33 | Map | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:18:12:18:33 | Object | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:18:12:18:33 | String | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:19:9:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:19:31:19:51 | ...::... | delegatedProperties.kt:19:31:19:51 | | PropertyRefExpr | | delegatedProperties.kt:19:31:19:51 | ...::... | delegatedProperties.kt:19:31:19:51 | | PropertyRefExpr | | delegatedProperties.kt:19:31:19:51 | (...) | delegatedProperties.kt:19:31:19:51 | get | MethodCall | @@ -97,7 +98,6 @@ | delegatedProperties.kt:19:31:19:51 | setValue(...) | delegatedProperties.kt:19:31:19:51 | | MethodCall | | delegatedProperties.kt:19:31:19:51 | this | delegatedProperties.kt:19:31:19:51 | invoke | ThisAccess | | delegatedProperties.kt:19:31:19:51 | this | delegatedProperties.kt:19:31:19:51 | invoke | ThisAccess | -| delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:19:31:19:51 | | VarAccess | | delegatedProperties.kt:19:31:19:51 | varResource1$delegate | delegatedProperties.kt:19:31:19:51 | | VarAccess | | delegatedProperties.kt:19:34:19:51 | ResourceDelegate | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | @@ -112,6 +112,7 @@ | delegatedProperties.kt:21:9:21:20 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:21:9:21:20 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:21:24:21:24 | 2 | delegatedProperties.kt:18:5:40:5 | fn | IntegerLiteral | +| delegatedProperties.kt:23:9:23:31 | name$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:23:26:23:31 | ...::... | delegatedProperties.kt:23:26:23:31 | | PropertyRefExpr | | delegatedProperties.kt:23:26:23:31 | (...) | delegatedProperties.kt:23:26:23:31 | get | MethodCall | | delegatedProperties.kt:23:26:23:31 | KProperty0 | delegatedProperties.kt:23:26:23:31 | | TypeAccess | @@ -123,7 +124,6 @@ | delegatedProperties.kt:23:26:23:31 | String | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:23:26:23:31 | get(...) | delegatedProperties.kt:23:26:23:31 | invoke | MethodCall | | delegatedProperties.kt:23:26:23:31 | getValue(...) | delegatedProperties.kt:23:26:23:31 | | MethodCall | -| delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:23:26:23:31 | name$delegate | delegatedProperties.kt:23:26:23:31 | | VarAccess | | delegatedProperties.kt:23:26:23:31 | new (...) | delegatedProperties.kt:23:26:23:31 | get | ClassInstanceExpr | | delegatedProperties.kt:23:26:23:31 | this | delegatedProperties.kt:23:26:23:31 | invoke | ThisAccess | @@ -134,18 +134,18 @@ | delegatedProperties.kt:25:64:31:9 | | delegatedProperties.kt:25:9:31:9 | resourceDelegate | StmtExpr | | delegatedProperties.kt:25:64:31:9 | ReadWriteProperty | delegatedProperties.kt:25:9:31:9 | resourceDelegate | TypeAccess | | delegatedProperties.kt:25:64:31:9 | new (...) | delegatedProperties.kt:25:9:31:9 | resourceDelegate | ClassInstanceExpr | +| delegatedProperties.kt:26:13:26:24 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:26:13:26:24 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:26:13:26:24 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:25:64:31:9 | | KtInitializerAssignExpr | -| delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:26:13:26:28 | setCurValue | AssignExpr | -| delegatedProperties.kt:26:13:26:28 | | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess | -| delegatedProperties.kt:26:13:26:28 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:26:13:26:24 | setCurValue | AssignExpr | +| delegatedProperties.kt:26:13:26:28 | | delegatedProperties.kt:26:13:26:24 | setCurValue | VarAccess | | delegatedProperties.kt:26:13:26:28 | curValue | delegatedProperties.kt:25:64:31:9 | | VarAccess | | delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:28 | getCurValue | ThisAccess | -| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:28 | setCurValue | ThisAccess | -| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:28 | getCurValue | VarAccess | -| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess | +| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:24 | getCurValue | ThisAccess | +| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:24 | setCurValue | ThisAccess | +| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:24 | getCurValue | VarAccess | +| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:24 | setCurValue | VarAccess | | delegatedProperties.kt:26:28:26:28 | 0 | delegatedProperties.kt:25:64:31:9 | | IntegerLiteral | | delegatedProperties.kt:27:22:27:88 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:27:35:27:47 | Object | file://:0:0:0:0 | | TypeAccess | @@ -161,6 +161,7 @@ | delegatedProperties.kt:29:17:29:24 | setCurValue(...) | delegatedProperties.kt:28:22:30:13 | setValue | MethodCall | | delegatedProperties.kt:29:17:29:24 | 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 | readOnly$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:33:27:33:47 | ...::... | delegatedProperties.kt:33:27:33:47 | | PropertyRefExpr | | delegatedProperties.kt:33:27:33:47 | (...) | delegatedProperties.kt:33:27:33:47 | get | MethodCall | | delegatedProperties.kt:33:27:33:47 | Integer | delegatedProperties.kt:33:27:33:47 | | TypeAccess | @@ -170,12 +171,12 @@ | delegatedProperties.kt:33:27:33:47 | getValue(...) | delegatedProperties.kt:33:27:33:47 | | MethodCall | | delegatedProperties.kt:33:27:33:47 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:33:27:33:47 | new (...) | delegatedProperties.kt:33:27:33:47 | get | ClassInstanceExpr | -| delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:33:27:33:47 | readOnly$delegate | delegatedProperties.kt:33:27:33:47 | | VarAccess | | delegatedProperties.kt:33:27:33:47 | this | delegatedProperties.kt:33:27:33:47 | invoke | ThisAccess | | delegatedProperties.kt:33:30:33:47 | Object | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:33:30:33:47 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:33:30:33:47 | resourceDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | +| delegatedProperties.kt:34:9:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:34:28:34:48 | ...::... | delegatedProperties.kt:34:28:34:48 | | PropertyRefExpr | | delegatedProperties.kt:34:28:34:48 | ...::... | delegatedProperties.kt:34:28:34:48 | | PropertyRefExpr | | delegatedProperties.kt:34:28:34:48 | (...) | delegatedProperties.kt:34:28:34:48 | get | MethodCall | @@ -202,7 +203,6 @@ | delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | get | ClassInstanceExpr | | delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | set | ClassInstanceExpr | | delegatedProperties.kt:34:28:34:48 | new (...) | delegatedProperties.kt:34:28:34:48 | set | ClassInstanceExpr | -| delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:34:28:34:48 | | VarAccess | | delegatedProperties.kt:34:28:34:48 | readWrite$delegate | delegatedProperties.kt:34:28:34:48 | | VarAccess | | delegatedProperties.kt:34:28:34:48 | setValue(...) | delegatedProperties.kt:34:28:34:48 | | MethodCall | @@ -219,6 +219,7 @@ | delegatedProperties.kt:37:9:37:20 | setVarResource0(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | | delegatedProperties.kt:37:9:37:20 | this | delegatedProperties.kt:18:5:40:5 | fn | ThisAccess | | delegatedProperties.kt:37:24:37:24 | 3 | delegatedProperties.kt:18:5:40:5 | fn | IntegerLiteral | +| delegatedProperties.kt:39:9:39:51 | varResource2$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:39:31:39:51 | ...::... | delegatedProperties.kt:18:5:40:5 | fn | PropertyRefExpr | | delegatedProperties.kt:39:31:39:51 | ...::... | delegatedProperties.kt:39:31:39:51 | | PropertyRefExpr | | delegatedProperties.kt:39:31:39:51 | (...) | delegatedProperties.kt:39:31:39:51 | get | MethodCall | @@ -238,7 +239,6 @@ | delegatedProperties.kt:39:31:39:51 | provideDelegate(...) | delegatedProperties.kt:18:5:40:5 | fn | MethodCall | | delegatedProperties.kt:39:31:39:51 | this | delegatedProperties.kt:39:31:39:51 | invoke | ThisAccess | | delegatedProperties.kt:39:31:39:51 | this | delegatedProperties.kt:39:31:39:51 | invoke | ThisAccess | -| delegatedProperties.kt:39:31:39:51 | varResource2$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:39:31:39:51 | varResource2$delegate | delegatedProperties.kt:39:31:39:51 | | VarAccess | | delegatedProperties.kt:39:34:39:51 | DelegateProvider | delegatedProperties.kt:18:5:40:5 | fn | TypeAccess | | delegatedProperties.kt:39:34:39:51 | new DelegateProvider(...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | @@ -297,18 +297,18 @@ | delegatedProperties.kt:54:51:54:68 | KProperty | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:56:16:56:33 | ResourceDelegate | delegatedProperties.kt:54:14:57:5 | provideDelegate | TypeAccess | | delegatedProperties.kt:56:16:56:33 | new ResourceDelegate(...) | delegatedProperties.kt:54:14:57:5 | provideDelegate | ClassInstanceExpr | +| delegatedProperties.kt:60:1:60:15 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:15 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:15 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:0:0:0:0 | | KtInitializerAssignExpr | -| delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | AssignExpr | -| delegatedProperties.kt:60:1:60:24 | | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | VarAccess | +| delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:60:1:60:15 | setTopLevelInt | AssignExpr | +| delegatedProperties.kt:60:1:60:24 | | delegatedProperties.kt:60:1:60:15 | setTopLevelInt | VarAccess | | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:24 | getTopLevelInt | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | TypeAccess | +| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:15 | getTopLevelInt | TypeAccess | +| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:15 | setTopLevelInt | TypeAccess | | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:0:0:0:0 | | VarAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:24 | getTopLevelInt | VarAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | VarAccess | -| delegatedProperties.kt:60:1:60:24 | Unit | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:15 | getTopLevelInt | VarAccess | +| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:15 | setTopLevelInt | VarAccess | | delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:24:60:24 | 0 | delegatedProperties.kt:0:0:0:0 | | IntegerLiteral | | delegatedProperties.kt:62:25:62:48 | ...=... | delegatedProperties.kt:62:24:62:49 | ClassWithDelegate | KtInitializerAssignExpr | @@ -767,6 +767,7 @@ | delegatedProperties.kt:79:21:79:38 | get(...) | delegatedProperties.kt:79:21:79:38 | invoke | MethodCall | | delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | invoke | ThisAccess | | delegatedProperties.kt:81:5:84:5 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:82:9:82:54 | delegatedToMember3$delegate | delegatedProperties.kt:81:5:84:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:82:37:82:54 | ...::... | delegatedProperties.kt:82:37:82:54 | | PropertyRefExpr | | delegatedProperties.kt:82:37:82:54 | ...::... | delegatedProperties.kt:82:37:82:54 | | PropertyRefExpr | | delegatedProperties.kt:82:37:82:54 | (...) | delegatedProperties.kt:82:37:82:54 | get | MethodCall | @@ -788,7 +789,6 @@ | delegatedProperties.kt:82:37:82:54 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:82:37:82:54 | a0 | delegatedProperties.kt:82:37:82:54 | set | VarAccess | | delegatedProperties.kt:82:37:82:54 | a0 | delegatedProperties.kt:82:37:82:54 | set | VarAccess | -| delegatedProperties.kt:82:37:82:54 | delegatedToMember3$delegate | delegatedProperties.kt:81:5:84:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:82:37:82:54 | delegatedToMember3$delegate | delegatedProperties.kt:82:37:82:54 | | VarAccess | | delegatedProperties.kt:82:37:82:54 | delegatedToMember3$delegate | delegatedProperties.kt:82:37:82:54 | | VarAccess | | delegatedProperties.kt:82:37:82:54 | get(...) | delegatedProperties.kt:82:37:82:54 | invoke | MethodCall | @@ -908,468 +908,468 @@ | exprs.kt:8:32:8:41 | double | file://:0:0:0:0 | | TypeAccess | | exprs.kt:9:20:9:28 | float | file://:0:0:0:0 | | TypeAccess | | exprs.kt:9:31:9:39 | float | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:11:9:11:10 | i1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:11:5:11:14 | i1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:11:14:11:14 | 1 | exprs.kt:4:1:142:1 | topLevelMethod | IntegerLiteral | -| exprs.kt:12:9:12:10 | i2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:12:5:12:18 | i2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:12:14:12:14 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:12:14:12:18 | ... + ... | exprs.kt:4:1:142:1 | topLevelMethod | AddExpr | | exprs.kt:12:18:12:18 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:13:9:13:10 | i3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:13:5:13:18 | i3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:13:14:13:14 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:13:14:13:18 | ... - ... | exprs.kt:4:1:142:1 | topLevelMethod | SubExpr | | exprs.kt:13:18:13:18 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:14:9:14:10 | i4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:14:5:14:18 | i4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:14:14:14:14 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:14:14:14:18 | ... / ... | exprs.kt:4:1:142:1 | topLevelMethod | DivExpr | | exprs.kt:14:18:14:18 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:15:9:15:10 | i5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:15:5:15:18 | i5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:15:14:15:14 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:15:14:15:18 | ... % ... | exprs.kt:4:1:142:1 | topLevelMethod | RemExpr | | exprs.kt:15:18:15:18 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:16:9:16:10 | i6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:16:5:16:20 | i6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:16:14:16:14 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:16:14:16:20 | ... << ... | exprs.kt:4:1:142:1 | topLevelMethod | LeftShiftExpr | | exprs.kt:16:20:16:20 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:17:9:17:10 | i7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:17:5:17:20 | i7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:17:14:17:14 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:17:14:17:20 | ... >> ... | exprs.kt:4:1:142:1 | topLevelMethod | RightShiftExpr | | exprs.kt:17:20:17:20 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:18:9:18:10 | i8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:18:5:18:21 | i8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:18:14:18:14 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:18:14:18:21 | ... >>> ... | exprs.kt:4:1:142:1 | topLevelMethod | UnsignedRightShiftExpr | | exprs.kt:18:21:18:21 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:19:9:19:10 | i9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:19:5:19:20 | i9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:19:14:19:14 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:19:14:19:20 | ... & ... | exprs.kt:4:1:142:1 | topLevelMethod | AndBitwiseExpr | | exprs.kt:19:20:19:20 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:20:9:20:11 | i10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:20:5:20:20 | i10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:20:15:20:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:20:15:20:20 | ... \| ... | exprs.kt:4:1:142:1 | topLevelMethod | OrBitwiseExpr | | exprs.kt:20:20:20:20 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:21:9:21:11 | i11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:21:5:21:21 | i11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:21:15:21:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:21:15:21:21 | ... ^ ... | exprs.kt:4:1:142:1 | topLevelMethod | XorBitwiseExpr | | exprs.kt:21:21:21:21 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:22:9:22:11 | i12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:22:5:22:21 | i12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:22:15:22:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:22:15:22:21 | ~... | exprs.kt:4:1:142:1 | topLevelMethod | BitNotExpr | -| exprs.kt:23:9:23:11 | i13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:23:5:23:20 | i13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:23:15:23:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:23:15:23:20 | ... (value equals) ... | exprs.kt:4:1:142:1 | topLevelMethod | ValueEQExpr | | exprs.kt:23:20:23:20 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:24:9:24:11 | i14 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:24:5:24:20 | i14 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:24:15:24:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:24:15:24:20 | ... (value not-equals) ... | exprs.kt:4:1:142:1 | topLevelMethod | ValueNEExpr | | exprs.kt:24:20:24:20 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:25:9:25:11 | i15 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:25:5:25:19 | i15 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:25:15:25:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:25:15:25:19 | ... < ... | exprs.kt:4:1:142:1 | topLevelMethod | LTExpr | | exprs.kt:25:19:25:19 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:26:9:26:11 | i16 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:26:5:26:20 | i16 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:26:15:26:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:26:15:26:20 | ... <= ... | exprs.kt:4:1:142:1 | topLevelMethod | LEExpr | | exprs.kt:26:20:26:20 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:27:9:27:11 | i17 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:27:5:27:19 | i17 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:27:15:27:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:27:15:27:19 | ... > ... | exprs.kt:4:1:142:1 | topLevelMethod | GTExpr | | exprs.kt:27:19:27:19 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:28:9:28:11 | i18 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:28:5:28:20 | i18 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:28:15:28:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:28:15:28:20 | ... >= ... | exprs.kt:4:1:142:1 | topLevelMethod | GEExpr | | exprs.kt:28:20:28:20 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:29:9:29:11 | i19 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:29:5:29:21 | i19 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:29:15:29:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:29:15:29:21 | ... == ... | exprs.kt:4:1:142:1 | topLevelMethod | EQExpr | | exprs.kt:29:21:29:21 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:30:9:30:11 | i20 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:30:5:30:21 | i20 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:30:15:30:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:30:15:30:21 | ... != ... | exprs.kt:4:1:142:1 | topLevelMethod | NEExpr | | exprs.kt:30:21:30:21 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:31:9:31:11 | i21 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:31:5:31:25 | i21 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:31:15:31:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:31:15:31:25 | contains(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:31:20:31:20 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:31:20:31:25 | rangeTo(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:31:25:31:25 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:32:9:32:11 | i22 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:32:5:32:26 | i22 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:32:15:32:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:32:15:32:26 | !... | exprs.kt:4:1:142:1 | topLevelMethod | LogNotExpr | | exprs.kt:32:15:32:26 | contains(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:32:21:32:21 | x | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:32:21:32:26 | rangeTo(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:32:26:32:26 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:34:9:34:11 | by1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:34:5:34:17 | by1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:34:15:34:17 | 1.0 | exprs.kt:4:1:142:1 | topLevelMethod | DoubleLiteral | -| exprs.kt:35:9:35:11 | by2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:35:5:35:23 | by2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:35:15:35:17 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:35:15:35:23 | ... + ... | exprs.kt:4:1:142:1 | topLevelMethod | AddExpr | | exprs.kt:35:21:35:23 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:36:9:36:11 | by3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:36:5:36:23 | by3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:36:15:36:17 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:36:15:36:23 | ... - ... | exprs.kt:4:1:142:1 | topLevelMethod | SubExpr | | exprs.kt:36:21:36:23 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:37:9:37:11 | by4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:37:5:37:23 | by4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:37:15:37:17 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:37:15:37:23 | ... / ... | exprs.kt:4:1:142:1 | topLevelMethod | DivExpr | | exprs.kt:37:21:37:23 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:38:9:38:11 | by5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:38:5:38:23 | by5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:38:15:38:17 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:38:15:38:23 | ... % ... | exprs.kt:4:1:142:1 | topLevelMethod | RemExpr | | exprs.kt:38:21:38:23 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:39:9:39:11 | by6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:39:5:39:24 | by6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:39:15:39:17 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:39:15:39:17 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:39:15:39:24 | ... (value equals) ... | exprs.kt:4:1:142:1 | topLevelMethod | ValueEQExpr | | exprs.kt:39:22:39:24 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:39:22:39:24 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | -| exprs.kt:40:9:40:11 | by7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:40:5:40:24 | by7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:40:15:40:17 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:40:15:40:17 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:40:15:40:24 | ... (value not-equals) ... | exprs.kt:4:1:142:1 | topLevelMethod | ValueNEExpr | | exprs.kt:40:22:40:24 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:40:22:40:24 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | -| exprs.kt:41:9:41:11 | by8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:41:5:41:23 | by8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:41:15:41:17 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:41:15:41:17 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:41:15:41:23 | ... < ... | exprs.kt:4:1:142:1 | topLevelMethod | LTExpr | | exprs.kt:41:21:41:23 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:41:21:41:23 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | -| exprs.kt:42:9:42:11 | by9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:42:5:42:24 | by9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:42:15:42:17 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:42:15:42:17 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:42:15:42:24 | ... <= ... | exprs.kt:4:1:142:1 | topLevelMethod | LEExpr | | exprs.kt:42:22:42:24 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:42:22:42:24 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | -| exprs.kt:43:9:43:12 | by10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:43:5:43:24 | by10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:43:16:43:18 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:43:16:43:18 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:43:16:43:24 | ... > ... | exprs.kt:4:1:142:1 | topLevelMethod | GTExpr | | exprs.kt:43:22:43:24 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:43:22:43:24 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | -| exprs.kt:44:9:44:12 | by11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:44:5:44:25 | by11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:44:16:44:18 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:44:16:44:18 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:44:16:44:25 | ... >= ... | exprs.kt:4:1:142:1 | topLevelMethod | GEExpr | | exprs.kt:44:23:44:25 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:44:23:44:25 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | -| exprs.kt:45:9:45:12 | by12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:45:5:45:26 | by12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:45:16:45:18 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:45:16:45:26 | ... == ... | exprs.kt:4:1:142:1 | topLevelMethod | EQExpr | | exprs.kt:45:24:45:26 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:46:9:46:12 | by13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:46:5:46:26 | by13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:46:16:46:18 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:46:16:46:26 | ... != ... | exprs.kt:4:1:142:1 | topLevelMethod | NEExpr | | exprs.kt:46:24:46:26 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:47:9:47:12 | by14 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:47:5:47:25 | by14 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:47:16:47:18 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:47:16:47:25 | ... \| ... | exprs.kt:4:1:142:1 | topLevelMethod | OrBitwiseExpr | | exprs.kt:47:23:47:25 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:48:9:48:12 | by15 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:48:5:48:26 | by15 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:48:16:48:18 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:48:16:48:26 | ... & ... | exprs.kt:4:1:142:1 | topLevelMethod | AndBitwiseExpr | | exprs.kt:48:24:48:26 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:49:9:49:12 | by16 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:49:5:49:26 | by16 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:49:16:49:18 | byx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:49:16:49:26 | ... ^ ... | exprs.kt:4:1:142:1 | topLevelMethod | XorBitwiseExpr | | exprs.kt:49:24:49:26 | byy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:51:9:51:10 | s1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:51:5:51:16 | s1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:51:14:51:16 | 1.0 | exprs.kt:4:1:142:1 | topLevelMethod | DoubleLiteral | -| exprs.kt:52:9:52:10 | s2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:52:5:52:20 | s2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:52:14:52:15 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:52:14:52:20 | ... + ... | exprs.kt:4:1:142:1 | topLevelMethod | AddExpr | | exprs.kt:52:19:52:20 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:53:9:53:10 | s3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:53:5:53:20 | s3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:53:14:53:15 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:53:14:53:20 | ... - ... | exprs.kt:4:1:142:1 | topLevelMethod | SubExpr | | exprs.kt:53:19:53:20 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:54:9:54:10 | s4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:54:5:54:20 | s4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:54:14:54:15 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:54:14:54:20 | ... / ... | exprs.kt:4:1:142:1 | topLevelMethod | DivExpr | | exprs.kt:54:19:54:20 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:55:9:55:10 | s5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:55:5:55:20 | s5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:55:14:55:15 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:55:14:55:20 | ... % ... | exprs.kt:4:1:142:1 | topLevelMethod | RemExpr | | exprs.kt:55:19:55:20 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:56:9:56:10 | s6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:56:5:56:21 | s6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:56:14:56:15 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:56:14:56:15 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:56:14:56:21 | ... (value equals) ... | exprs.kt:4:1:142:1 | topLevelMethod | ValueEQExpr | | exprs.kt:56:20:56:21 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:56:20:56:21 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:57:9:57:10 | s7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:57:5:57:21 | s7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:57:14:57:15 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:57:14:57:15 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:57:14:57:21 | ... (value not-equals) ... | exprs.kt:4:1:142:1 | topLevelMethod | ValueNEExpr | | exprs.kt:57:20:57:21 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:57:20:57:21 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:58:9:58:10 | s8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:58:5:58:20 | s8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:58:14:58:15 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:58:14:58:15 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:58:14:58:20 | ... < ... | exprs.kt:4:1:142:1 | topLevelMethod | LTExpr | | exprs.kt:58:19:58:20 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:58:19:58:20 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:59:9:59:10 | s9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:59:5:59:21 | s9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:59:14:59:15 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:59:14:59:15 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:59:14:59:21 | ... <= ... | exprs.kt:4:1:142:1 | topLevelMethod | LEExpr | | exprs.kt:59:20:59:21 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:59:20:59:21 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:60:9:60:11 | s10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:60:5:60:21 | s10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:60:15:60:16 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:60:15:60:16 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:60:15:60:21 | ... > ... | exprs.kt:4:1:142:1 | topLevelMethod | GTExpr | | exprs.kt:60:20:60:21 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:60:20:60:21 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:61:9:61:11 | s11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:61:5:61:22 | s11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:61:15:61:16 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:61:15:61:16 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:61:15:61:22 | ... >= ... | exprs.kt:4:1:142:1 | topLevelMethod | GEExpr | | exprs.kt:61:21:61:22 | intValue(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:61:21:61:22 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:62:9:62:11 | s12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:62:5:62:23 | s12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:62:15:62:16 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:62:15:62:23 | ... == ... | exprs.kt:4:1:142:1 | topLevelMethod | EQExpr | | exprs.kt:62:22:62:23 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:63:9:63:11 | s13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:63:5:63:23 | s13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:63:15:63:16 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:63:15:63:23 | ... != ... | exprs.kt:4:1:142:1 | topLevelMethod | NEExpr | | exprs.kt:63:22:63:23 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:64:9:64:11 | s14 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:64:5:64:22 | s14 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:64:15:64:16 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:64:15:64:22 | ... \| ... | exprs.kt:4:1:142:1 | topLevelMethod | OrBitwiseExpr | | exprs.kt:64:21:64:22 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:65:9:65:11 | s15 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:65:5:65:23 | s15 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:65:15:65:16 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:65:15:65:23 | ... & ... | exprs.kt:4:1:142:1 | topLevelMethod | AndBitwiseExpr | | exprs.kt:65:22:65:23 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:66:9:66:11 | s16 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:66:5:66:23 | s16 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:66:15:66:16 | sx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:66:15:66:23 | ... ^ ... | exprs.kt:4:1:142:1 | topLevelMethod | XorBitwiseExpr | | exprs.kt:66:22:66:23 | sy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:68:9:68:10 | l1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:68:5:68:16 | l1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:68:14:68:16 | 1.0 | exprs.kt:4:1:142:1 | topLevelMethod | DoubleLiteral | -| exprs.kt:69:9:69:10 | l2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:69:5:69:20 | l2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:69:14:69:15 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:69:14:69:20 | ... + ... | exprs.kt:4:1:142:1 | topLevelMethod | AddExpr | | exprs.kt:69:19:69:20 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:70:9:70:10 | l3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:70:5:70:20 | l3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:70:14:70:15 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:70:14:70:20 | ... - ... | exprs.kt:4:1:142:1 | topLevelMethod | SubExpr | | exprs.kt:70:19:70:20 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:71:9:71:10 | l4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:71:5:71:20 | l4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:71:14:71:15 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:71:14:71:20 | ... / ... | exprs.kt:4:1:142:1 | topLevelMethod | DivExpr | | exprs.kt:71:19:71:20 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:72:9:72:10 | l5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:72:5:72:20 | l5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:72:14:72:15 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:72:14:72:20 | ... % ... | exprs.kt:4:1:142:1 | topLevelMethod | RemExpr | | exprs.kt:72:19:72:20 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:73:9:73:10 | l6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:73:5:73:21 | l6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:73:14:73:15 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:73:14:73:21 | ... << ... | exprs.kt:4:1:142:1 | topLevelMethod | LeftShiftExpr | | exprs.kt:73:21:73:21 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:74:9:74:10 | l7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:74:5:74:21 | l7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:74:14:74:15 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:74:14:74:21 | ... >> ... | exprs.kt:4:1:142:1 | topLevelMethod | RightShiftExpr | | exprs.kt:74:21:74:21 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:75:9:75:10 | l8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:75:5:75:22 | l8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:75:14:75:15 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:75:14:75:22 | ... >>> ... | exprs.kt:4:1:142:1 | topLevelMethod | UnsignedRightShiftExpr | | exprs.kt:75:22:75:22 | y | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:76:9:76:10 | l9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:76:5:76:22 | l9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:76:14:76:15 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:76:14:76:22 | ... & ... | exprs.kt:4:1:142:1 | topLevelMethod | AndBitwiseExpr | | exprs.kt:76:21:76:22 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:77:9:77:11 | l10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:77:5:77:22 | l10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:77:15:77:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:77:15:77:22 | ... \| ... | exprs.kt:4:1:142:1 | topLevelMethod | OrBitwiseExpr | | exprs.kt:77:21:77:22 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:78:9:78:11 | l11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:78:5:78:23 | l11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:78:15:78:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:78:15:78:23 | ... ^ ... | exprs.kt:4:1:142:1 | topLevelMethod | XorBitwiseExpr | | exprs.kt:78:22:78:23 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:79:9:79:11 | l12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:79:5:79:22 | l12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:79:15:79:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:79:15:79:22 | ~... | exprs.kt:4:1:142:1 | topLevelMethod | BitNotExpr | -| exprs.kt:80:9:80:11 | l13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:80:5:80:22 | l13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:80:15:80:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:80:15:80:22 | ... (value equals) ... | exprs.kt:4:1:142:1 | topLevelMethod | ValueEQExpr | | exprs.kt:80:21:80:22 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:81:9:81:11 | l14 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:81:5:81:22 | l14 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:81:15:81:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:81:15:81:22 | ... (value not-equals) ... | exprs.kt:4:1:142:1 | topLevelMethod | ValueNEExpr | | exprs.kt:81:21:81:22 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:82:9:82:11 | l15 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:82:5:82:21 | l15 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:82:15:82:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:82:15:82:21 | ... < ... | exprs.kt:4:1:142:1 | topLevelMethod | LTExpr | | exprs.kt:82:20:82:21 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:83:9:83:11 | l16 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:83:5:83:22 | l16 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:83:15:83:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:83:15:83:22 | ... <= ... | exprs.kt:4:1:142:1 | topLevelMethod | LEExpr | | exprs.kt:83:21:83:22 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:84:9:84:11 | l17 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:84:5:84:21 | l17 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:84:15:84:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:84:15:84:21 | ... > ... | exprs.kt:4:1:142:1 | topLevelMethod | GTExpr | | exprs.kt:84:20:84:21 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:85:9:85:11 | l18 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:85:5:85:22 | l18 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:85:15:85:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:85:15:85:22 | ... >= ... | exprs.kt:4:1:142:1 | topLevelMethod | GEExpr | | exprs.kt:85:21:85:22 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:86:9:86:11 | l19 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:86:5:86:23 | l19 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:86:15:86:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:86:15:86:23 | ... == ... | exprs.kt:4:1:142:1 | topLevelMethod | EQExpr | | exprs.kt:86:22:86:23 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:87:9:87:11 | l20 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:87:5:87:23 | l20 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:87:15:87:16 | lx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:87:15:87:23 | ... != ... | exprs.kt:4:1:142:1 | topLevelMethod | NEExpr | | exprs.kt:87:22:87:23 | ly | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:89:9:89:10 | d1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:89:5:89:16 | d1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:89:14:89:16 | 1.0 | exprs.kt:4:1:142:1 | topLevelMethod | DoubleLiteral | -| exprs.kt:90:9:90:10 | d2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:90:5:90:20 | d2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:90:14:90:15 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:90:14:90:20 | ... + ... | exprs.kt:4:1:142:1 | topLevelMethod | AddExpr | | exprs.kt:90:19:90:20 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:91:9:91:10 | d3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:91:5:91:20 | d3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:91:14:91:15 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:91:14:91:20 | ... - ... | exprs.kt:4:1:142:1 | topLevelMethod | SubExpr | | exprs.kt:91:19:91:20 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:92:9:92:10 | d4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:92:5:92:20 | d4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:92:14:92:15 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:92:14:92:20 | ... / ... | exprs.kt:4:1:142:1 | topLevelMethod | DivExpr | | exprs.kt:92:19:92:20 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:93:9:93:10 | d5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:93:5:93:20 | d5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:93:14:93:15 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:93:14:93:20 | ... % ... | exprs.kt:4:1:142:1 | topLevelMethod | RemExpr | | exprs.kt:93:19:93:20 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:94:9:94:10 | d6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:94:5:94:21 | d6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:94:14:94:15 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:94:14:94:21 | ... == ... | exprs.kt:4:1:142:1 | topLevelMethod | EQExpr | | exprs.kt:94:20:94:21 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:95:9:95:10 | d7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:95:5:95:21 | d7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:95:14:95:15 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:95:14:95:21 | ... != ... | exprs.kt:4:1:142:1 | topLevelMethod | NEExpr | | exprs.kt:95:20:95:21 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:96:9:96:10 | d8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:96:5:96:20 | d8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:96:14:96:15 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:96:14:96:20 | ... < ... | exprs.kt:4:1:142:1 | topLevelMethod | LTExpr | | exprs.kt:96:19:96:20 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:97:9:97:10 | d9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:97:5:97:21 | d9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:97:14:97:15 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:97:14:97:21 | ... <= ... | exprs.kt:4:1:142:1 | topLevelMethod | LEExpr | | exprs.kt:97:20:97:21 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:98:9:98:11 | d10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:98:5:98:21 | d10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:98:15:98:16 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:98:15:98:21 | ... > ... | exprs.kt:4:1:142:1 | topLevelMethod | GTExpr | | exprs.kt:98:20:98:21 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:99:9:99:11 | d11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:99:5:99:22 | d11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:99:15:99:16 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:99:15:99:22 | ... >= ... | exprs.kt:4:1:142:1 | topLevelMethod | GEExpr | | exprs.kt:99:21:99:22 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:100:9:100:11 | d12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:100:5:100:23 | d12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:100:15:100:16 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:100:15:100:23 | ... == ... | exprs.kt:4:1:142:1 | topLevelMethod | EQExpr | | exprs.kt:100:22:100:23 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:101:9:101:11 | d13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:101:5:101:23 | d13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:101:15:101:16 | dx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:101:15:101:23 | ... != ... | exprs.kt:4:1:142:1 | topLevelMethod | NEExpr | | exprs.kt:101:22:101:23 | dy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:103:9:103:10 | f1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:103:5:103:16 | f1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:103:14:103:16 | 1.0 | exprs.kt:4:1:142:1 | topLevelMethod | DoubleLiteral | -| exprs.kt:104:9:104:10 | f2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:104:5:104:20 | f2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:104:14:104:15 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:104:14:104:20 | ... + ... | exprs.kt:4:1:142:1 | topLevelMethod | AddExpr | | exprs.kt:104:19:104:20 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:105:9:105:10 | f3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:105:5:105:20 | f3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:105:14:105:15 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:105:14:105:20 | ... - ... | exprs.kt:4:1:142:1 | topLevelMethod | SubExpr | | exprs.kt:105:19:105:20 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:106:9:106:10 | f4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:106:5:106:20 | f4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:106:14:106:15 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:106:14:106:20 | ... / ... | exprs.kt:4:1:142:1 | topLevelMethod | DivExpr | | exprs.kt:106:19:106:20 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:107:9:107:10 | f5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:107:5:107:20 | f5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:107:14:107:15 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:107:14:107:20 | ... % ... | exprs.kt:4:1:142:1 | topLevelMethod | RemExpr | | exprs.kt:107:19:107:20 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:108:9:108:10 | f6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:108:5:108:21 | f6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:108:14:108:15 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:108:14:108:21 | ... == ... | exprs.kt:4:1:142:1 | topLevelMethod | EQExpr | | exprs.kt:108:20:108:21 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:109:9:109:10 | f7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:109:5:109:21 | f7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:109:14:109:15 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:109:14:109:21 | ... != ... | exprs.kt:4:1:142:1 | topLevelMethod | NEExpr | | exprs.kt:109:20:109:21 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:110:9:110:10 | f8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:110:5:110:20 | f8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:110:14:110:15 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:110:14:110:20 | ... < ... | exprs.kt:4:1:142:1 | topLevelMethod | LTExpr | | exprs.kt:110:19:110:20 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:111:9:111:10 | f9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:111:5:111:21 | f9 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:111:14:111:15 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:111:14:111:21 | ... <= ... | exprs.kt:4:1:142:1 | topLevelMethod | LEExpr | | exprs.kt:111:20:111:21 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:112:9:112:11 | f10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:112:5:112:21 | f10 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:112:15:112:16 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:112:15:112:21 | ... > ... | exprs.kt:4:1:142:1 | topLevelMethod | GTExpr | | exprs.kt:112:20:112:21 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:113:9:113:11 | f11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:113:5:113:22 | f11 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:113:15:113:16 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:113:15:113:22 | ... >= ... | exprs.kt:4:1:142:1 | topLevelMethod | GEExpr | | exprs.kt:113:21:113:22 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:114:9:114:11 | f12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:114:5:114:23 | f12 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:114:15:114:16 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:114:15:114:23 | ... == ... | exprs.kt:4:1:142:1 | topLevelMethod | EQExpr | | exprs.kt:114:22:114:23 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:115:9:115:11 | f13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:115:5:115:23 | f13 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:115:15:115:16 | fx | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:115:15:115:23 | ... != ... | exprs.kt:4:1:142:1 | topLevelMethod | NEExpr | | exprs.kt:115:22:115:23 | fy | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:117:9:117:10 | b1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:117:5:117:17 | b1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:117:14:117:17 | true | exprs.kt:4:1:142:1 | topLevelMethod | BooleanLiteral | -| exprs.kt:118:9:118:10 | b2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:118:5:118:18 | b2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:118:14:118:18 | false | exprs.kt:4:1:142:1 | topLevelMethod | BooleanLiteral | -| exprs.kt:119:9:119:10 | b3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:119:5:119:21 | b3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:119:14:119:15 | b1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:119:14:119:21 | ... && ... | exprs.kt:4:1:142:1 | topLevelMethod | AndLogicalExpr | | exprs.kt:119:20:119:21 | b2 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:120:9:120:10 | b4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:120:5:120:21 | b4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:120:14:120:15 | b1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:120:14:120:21 | ... \|\| ... | exprs.kt:4:1:142:1 | topLevelMethod | OrLogicalExpr | | exprs.kt:120:20:120:21 | b2 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:121:9:121:10 | b5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:121:5:121:16 | b5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:121:14:121:16 | !... | exprs.kt:4:1:142:1 | topLevelMethod | LogNotExpr | | exprs.kt:121:15:121:16 | b1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:123:9:123:9 | c | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:123:5:123:15 | c | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:123:13:123:15 | x | exprs.kt:4:1:142:1 | topLevelMethod | CharacterLiteral | -| exprs.kt:124:9:124:11 | str | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:124:5:124:26 | str | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:124:15:124:26 | "string lit" | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | -| exprs.kt:125:9:125:20 | strWithQuote | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:125:5:125:38 | strWithQuote | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:125:24:125:38 | "string \\" lit" | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | -| exprs.kt:126:9:126:10 | b6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:126:5:126:22 | b6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:126:14:126:15 | i1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:126:14:126:22 | ...instanceof... | exprs.kt:4:1:142:1 | topLevelMethod | InstanceOfExpr | | exprs.kt:126:14:126:22 | int | exprs.kt:4:1:142:1 | topLevelMethod | TypeAccess | -| exprs.kt:127:9:127:10 | b7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:127:5:127:23 | b7 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:127:14:127:15 | i1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:127:14:127:23 | ... !is ... | exprs.kt:4:1:142:1 | topLevelMethod | NotInstanceOfExpr | | exprs.kt:127:14:127:23 | int | exprs.kt:4:1:142:1 | topLevelMethod | TypeAccess | -| exprs.kt:128:9:128:10 | b8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:128:5:128:26 | b8 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:128:14:128:15 | b7 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:128:14:128:26 | (...)... | exprs.kt:4:1:142:1 | topLevelMethod | CastExpr | | exprs.kt:128:14:128:26 | boolean | exprs.kt:4:1:142:1 | topLevelMethod | TypeAccess | -| exprs.kt:129:9:129:12 | str1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:129:5:129:35 | str1 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:129:24:129:35 | "string lit" | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | -| exprs.kt:130:9:130:12 | str2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:130:5:130:36 | str2 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:130:25:130:36 | "string lit" | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | -| exprs.kt:131:9:131:12 | str3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:131:5:131:28 | str3 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:131:25:131:28 | null | exprs.kt:4:1:142:1 | topLevelMethod | NullLiteral | -| exprs.kt:132:9:132:12 | str4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:132:5:132:48 | str4 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:132:24:132:48 | "..." | exprs.kt:4:1:142:1 | topLevelMethod | StringTemplateExpr | | exprs.kt:132:25:132:28 | "foo " | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | | exprs.kt:132:30:132:33 | str1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:132:34:132:38 | " bar " | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | | exprs.kt:132:40:132:43 | str2 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:132:44:132:47 | " baz" | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | -| exprs.kt:133:9:133:12 | str5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:133:5:133:66 | str5 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:133:24:133:66 | "..." | exprs.kt:4:1:142:1 | topLevelMethod | StringTemplateExpr | | exprs.kt:133:25:133:28 | "foo " | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | | exprs.kt:133:31:133:34 | str1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | @@ -1381,11 +1381,11 @@ | exprs.kt:133:50:133:60 | stringPlus(...) | exprs.kt:4:1:142:1 | topLevelMethod | MethodCall | | exprs.kt:133:57:133:60 | str1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:133:62:133:65 | " baz" | exprs.kt:4:1:142:1 | topLevelMethod | StringLiteral | -| exprs.kt:134:9:134:12 | str6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:134:5:134:26 | str6 | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:134:16:134:19 | str1 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:134:16:134:26 | ... + ... | exprs.kt:4:1:142:1 | topLevelMethod | AddExpr | | exprs.kt:134:23:134:26 | str2 | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | -| exprs.kt:136:9:136:16 | variable | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | +| exprs.kt:136:5:136:21 | variable | exprs.kt:4:1:142:1 | topLevelMethod | LocalVariableDeclExpr | | exprs.kt:136:20:136:21 | 10 | exprs.kt:4:1:142:1 | topLevelMethod | IntegerLiteral | | exprs.kt:137:12:137:19 | variable | exprs.kt:4:1:142:1 | topLevelMethod | VarAccess | | exprs.kt:137:12:137:23 | ... > ... | exprs.kt:4:1:142:1 | topLevelMethod | GTExpr | @@ -1404,7 +1404,7 @@ | exprs.kt:141:12:141:20 | ... + ... | exprs.kt:4:1:142:1 | topLevelMethod | AddExpr | | exprs.kt:141:18:141:20 | 456 | exprs.kt:4:1:142:1 | topLevelMethod | IntegerLiteral | | exprs.kt:144:1:146:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:145:9:145:9 | d | exprs.kt:144:1:146:1 | getClass | LocalVariableDeclExpr | +| exprs.kt:145:5:145:23 | d | exprs.kt:144:1:146:1 | getClass | LocalVariableDeclExpr | | exprs.kt:145:13:145:16 | true | exprs.kt:144:1:146:1 | getClass | BooleanLiteral | | exprs.kt:145:13:145:23 | ::class | exprs.kt:144:1:146:1 | getClass | ClassExpr | | exprs.kt:148:9:148:18 | ...=... | exprs.kt:148:8:148:19 | C | KtInitializerAssignExpr | @@ -1426,11 +1426,11 @@ | exprs.kt:157:8:157:8 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | | exprs.kt:157:8:157:21 | ...instanceof... | exprs.kt:156:1:163:1 | typeTests | InstanceOfExpr | | exprs.kt:157:8:157:21 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | -| exprs.kt:158:13:158:14 | x1 | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | +| exprs.kt:158:9:158:29 | x1 | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | | exprs.kt:158:29:158:29 | | exprs.kt:156:1:163:1 | typeTests | ImplicitCastExpr | | exprs.kt:158:29:158:29 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | | exprs.kt:158:29:158:29 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | -| exprs.kt:160:9:160:10 | y1 | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | +| exprs.kt:160:5:160:60 | y1 | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | | exprs.kt:160:25:160:60 | true | exprs.kt:156:1:163:1 | typeTests | BooleanLiteral | | exprs.kt:160:25:160:60 | when ... | exprs.kt:156:1:163:1 | typeTests | WhenExpr | | exprs.kt:160:29:160:29 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | @@ -1441,7 +1441,7 @@ | exprs.kt:160:45:160:49 | Subclass1 | exprs.kt:156:1:163:1 | typeTests | TypeAccess | | exprs.kt:160:47:160:47 | x | exprs.kt:156:1:163:1 | typeTests | VarAccess | | exprs.kt:160:58:160:58 | y | exprs.kt:156:1:163:1 | typeTests | VarAccess | -| exprs.kt:161:9:161:9 | q | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | +| exprs.kt:161:5:161:13 | q | exprs.kt:156:1:163:1 | typeTests | LocalVariableDeclExpr | | exprs.kt:161:13:161:13 | 1 | exprs.kt:156:1:163:1 | typeTests | IntegerLiteral | | exprs.kt:162:5:162:48 | true | exprs.kt:156:1:163:1 | typeTests | BooleanLiteral | | exprs.kt:162:5:162:48 | when ... | exprs.kt:156:1:163:1 | typeTests | WhenExpr | @@ -1456,18 +1456,18 @@ | exprs.kt:162:46:162:46 | 3 | exprs.kt:156:1:163:1 | typeTests | IntegerLiteral | | exprs.kt:165:1:172:1 | Unit | file://:0:0:0:0 | | TypeAccess | | exprs.kt:165:9:165:18 | Polygon | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:166:9:166:9 | r | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | +| exprs.kt:166:5:166:25 | r | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | | exprs.kt:166:13:166:13 | p | exprs.kt:165:1:172:1 | foo | VarAccess | | exprs.kt:166:13:166:25 | getBounds(...) | exprs.kt:165:1:172:1 | foo | MethodCall | | exprs.kt:167:5:171:5 | when ... | exprs.kt:165:1:172:1 | foo | WhenExpr | | exprs.kt:167:8:167:8 | r | exprs.kt:165:1:172:1 | foo | VarAccess | | 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:13:168:14 | r2 | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | +| exprs.kt:168:9:168:29 | r2 | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | | exprs.kt:168:29:168:29 | | exprs.kt:165:1:172:1 | foo | ImplicitNotNullExpr | | 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:13:169:18 | height | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | +| 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 | | exprs.kt:169:25:169:30 | r2.height | exprs.kt:165:1:172:1 | foo | VarAccess | | exprs.kt:170:9:170:10 | r2 | exprs.kt:165:1:172:1 | foo | VarAccess | @@ -1538,31 +1538,31 @@ | exprs.kt:181:5:181:18 | new Color(...) | exprs.kt:0:0:0:0 | | ClassInstanceExpr | | exprs.kt:181:10:181:17 | 255 | exprs.kt:0:0:0:0 | | IntegerLiteral | | exprs.kt:184:1:187:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:185:9:185:13 | south | exprs.kt:184:1:187:1 | enums | LocalVariableDeclExpr | +| exprs.kt:185:5:185:31 | south | exprs.kt:184:1:187:1 | enums | LocalVariableDeclExpr | | exprs.kt:185:27:185:31 | Direction | exprs.kt:184:1:187:1 | enums | TypeAccess | | exprs.kt:185:27:185:31 | Direction.SOUTH | exprs.kt:184:1:187:1 | enums | VarAccess | -| exprs.kt:186:9:186:13 | green | exprs.kt:184:1:187:1 | enums | LocalVariableDeclExpr | +| exprs.kt:186:5:186:27 | green | exprs.kt:184:1:187:1 | enums | LocalVariableDeclExpr | | exprs.kt:186:23:186:27 | Color | exprs.kt:184:1:187:1 | enums | TypeAccess | | exprs.kt:186:23:186:27 | Color.GREEN | exprs.kt:184:1:187:1 | enums | VarAccess | +| exprs.kt:192:5:192:10 | int | file://:0:0:0:0 | | TypeAccess | | exprs.kt:192:5:192:14 | ...=... | exprs.kt:191:1:199:1 | Class1 | KtInitializerAssignExpr | | exprs.kt:192:5:192:14 | a1 | exprs.kt:191:1:199:1 | Class1 | VarAccess | | exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:192:5:192:14 | this | exprs.kt:192:5:192:14 | getA1 | ThisAccess | -| exprs.kt:192:5:192:14 | this.a1 | exprs.kt:192:5:192:14 | getA1 | VarAccess | +| exprs.kt:192:5:192:14 | this | exprs.kt:192:5:192:10 | getA1 | ThisAccess | +| exprs.kt:192:5:192:14 | this.a1 | exprs.kt:192:5:192:10 | getA1 | VarAccess | | exprs.kt:192:14:192:14 | 1 | exprs.kt:191:1:199:1 | Class1 | IntegerLiteral | | exprs.kt:193:13:198:5 | Object | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:194:13:194:14 | a2 | exprs.kt:193:13:198:5 | getObject | LocalVariableDeclExpr | +| 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 | | exprs.kt:193:13:198:5 | getObject | StmtExpr | | exprs.kt:195:16:197:9 | Interface1 | exprs.kt:193:13:198:5 | getObject | TypeAccess | | exprs.kt:195:16:197:9 | new (...) | exprs.kt:193:13:198:5 | getObject | ClassInstanceExpr | +| exprs.kt:196:13:196:18 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:196:13:196:49 | ...=... | exprs.kt:195:16:197:9 | | KtInitializerAssignExpr | | exprs.kt:196:13:196:49 | String | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:196:13:196:49 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:196:13:196:49 | a3 | exprs.kt:195:16:197:9 | | VarAccess | -| exprs.kt:196:13:196:49 | this | exprs.kt:196:13:196:49 | getA3 | ThisAccess | -| exprs.kt:196:13:196:49 | this.a3 | exprs.kt:196:13:196:49 | getA3 | VarAccess | +| exprs.kt:196:13:196:49 | this | exprs.kt:196:13:196:18 | getA3 | ThisAccess | +| exprs.kt:196:13:196:49 | this.a3 | exprs.kt:196:13:196:18 | getA3 | VarAccess | | exprs.kt:196:31:196:32 | getA1(...) | exprs.kt:195:16:197:9 | | MethodCall | | exprs.kt:196:31:196:32 | this | exprs.kt:195:16:197:9 | | ThisAccess | | exprs.kt:196:31:196:37 | ... + ... | exprs.kt:195:16:197:9 | | AddExpr | @@ -1570,47 +1570,47 @@ | exprs.kt:196:36:196:37 | a2 | exprs.kt:195:16:197:9 | | VarAccess | | exprs.kt:201:1:203:1 | Unit | file://:0:0:0:0 | | TypeAccess | | exprs.kt:201:22:201:28 | Object | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:202:9:202:9 | y | exprs.kt:201:1:203:1 | notNullAssertion | LocalVariableDeclExpr | +| exprs.kt:202:5:202:20 | y | exprs.kt:201:1:203:1 | notNullAssertion | LocalVariableDeclExpr | | exprs.kt:202:18:202:18 | x | exprs.kt:201:1:203:1 | notNullAssertion | VarAccess | -| exprs.kt:202:19:202:20 | ...!! | exprs.kt:201:1:203:1 | notNullAssertion | NotNullExpr | +| exprs.kt:202:18:202:20 | ...!! | exprs.kt:201:1:203:1 | notNullAssertion | NotNullExpr | | exprs.kt:206:5:217:5 | Unit | file://:0:0:0:0 | | TypeAccess | | exprs.kt:206:11:206:18 | Object | file://:0:0:0:0 | | TypeAccess | | exprs.kt:206:21:206:30 | String | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:208:13:208:13 | a | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:208:9:208:29 | a | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | exprs.kt:208:17:208:18 | aa | exprs.kt:206:5:217:5 | x | VarAccess | | exprs.kt:208:17:208:29 | String | exprs.kt:206:5:217:5 | x | TypeAccess | | exprs.kt:208:17:208:29 | valueOf(...) | exprs.kt:206:5:217:5 | x | MethodCall | -| exprs.kt:209:13:209:14 | b0 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:209:9:209:27 | b0 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | exprs.kt:209:19:209:19 | s | exprs.kt:206:5:217:5 | x | VarAccess | | exprs.kt:209:19:209:27 | Intrinsics | exprs.kt:206:5:217:5 | x | TypeAccess | | exprs.kt:209:19:209:27 | stringPlus(...) | exprs.kt:206:5:217:5 | x | MethodCall | | exprs.kt:209:26:209:26 | 5 | exprs.kt:206:5:217:5 | x | IntegerLiteral | -| exprs.kt:210:13:210:14 | b1 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:210:9:210:23 | b1 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | exprs.kt:210:19:210:19 | s | exprs.kt:206:5:217:5 | x | VarAccess | | exprs.kt:210:19:210:23 | Intrinsics | exprs.kt:206:5:217:5 | x | TypeAccess | | exprs.kt:210:19:210:23 | stringPlus(...) | exprs.kt:206:5:217:5 | x | MethodCall | | exprs.kt:210:23:210:23 | 5 | exprs.kt:206:5:217:5 | x | IntegerLiteral | -| exprs.kt:211:13:211:14 | b2 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:211:9:211:29 | b2 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | exprs.kt:211:19:211:19 | s | exprs.kt:206:5:217:5 | x | VarAccess | -| exprs.kt:211:20:211:21 | ...!! | exprs.kt:206:5:217:5 | x | NotNullExpr | +| exprs.kt:211:19:211:21 | ...!! | exprs.kt:206:5:217:5 | x | NotNullExpr | | exprs.kt:211:20: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:13:212:14 | b3 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:212:9:212:25 | b3 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | 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 | -| exprs.kt:212:20:212:21 | ...!! | exprs.kt:206:5:217:5 | x | NotNullExpr | | exprs.kt:212:25:212:25 | 5 | exprs.kt:206:5:217:5 | x | IntegerLiteral | -| exprs.kt:213:13:213:14 | c0 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:213:9:213:36 | c0 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | exprs.kt:213:18:213:36 | Color | exprs.kt:206:5:217:5 | x | TypeAccess | | exprs.kt:213:18:213:36 | values(...) | exprs.kt:206:5:217:5 | x | MethodCall | -| exprs.kt:214:13:214:14 | c1 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:214:9:214:31 | c1 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | exprs.kt:214:24:214:31 | Color | exprs.kt:206:5:217:5 | x | TypeAccess | | exprs.kt:214:24:214:31 | values(...) | exprs.kt:206:5:217:5 | x | MethodCall | -| exprs.kt:215:13:215:14 | d0 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:215:9:215:44 | d0 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | exprs.kt:215:18:215:44 | Color | exprs.kt:206:5:217:5 | x | TypeAccess | | exprs.kt:215:18:215:44 | valueOf(...) | exprs.kt:206:5:217:5 | x | MethodCall | | exprs.kt:215:37:215:43 | "GREEN" | exprs.kt:206:5:217:5 | x | StringLiteral | -| exprs.kt:216:13:216:14 | d1 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:216:9:216:39 | d1 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | | exprs.kt:216:24:216:39 | Color | exprs.kt:206:5:217:5 | x | TypeAccess | | exprs.kt:216:24:216:39 | valueOf(...) | exprs.kt:206:5:217:5 | x | MethodCall | | exprs.kt:216:32:216:38 | "GREEN" | exprs.kt:206:5:217:5 | x | StringLiteral | @@ -1618,7 +1618,7 @@ | exprs.kt:221:5:221:10 | StandardKt | exprs.kt:220:1:222:1 | todo | TypeAccess | | exprs.kt:221:5:221:10 | TODO(...) | exprs.kt:220:1:222:1 | todo | MethodCall | | exprs.kt:225:1:227:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:226:9:226:9 | x | exprs.kt:225:1:227:1 | fnClassRef | LocalVariableDeclExpr | +| exprs.kt:226:5:226:29 | x | exprs.kt:225:1:227:1 | fnClassRef | LocalVariableDeclExpr | | exprs.kt:226:13:226:29 | SomeClass1 | exprs.kt:225:1:227:1 | fnClassRef | TypeAccess | | exprs.kt:226:13:226:29 | SomeClass1.class | exprs.kt:225:1:227:1 | fnClassRef | TypeLiteral | | exprs.kt:229:1:250:1 | Unit | file://:0:0:0:0 | | TypeAccess | @@ -1626,83 +1626,83 @@ | exprs.kt:229:42:229:64 | Integer | file://:0:0:0:0 | | TypeAccess | | exprs.kt:229:67:229:88 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:229:91:229:114 | String | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:230:7:230:8 | b1 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:230:3:230:47 | b1 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:230:12:230:27 | notNullPrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:230:12:230:47 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:230:32:230:47 | notNullPrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:231:7:231:8 | b2 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:231:3:231:48 | b2 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:231:12:231:27 | notNullPrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:231:12:231:48 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:231:32:231:48 | nullablePrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:232:7:232:8 | b3 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:232:3:232:49 | b3 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:232:12:232:28 | nullablePrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:232:12:232:49 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:232:33:232:49 | nullablePrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:233:7:233:8 | b4 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:233:3:233:43 | b4 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:233:12:233:25 | notNullReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:233:12:233:43 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:233:30:233:43 | notNullReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:234:7:234:8 | b5 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:234:3:234:44 | b5 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:234:12:234:25 | notNullReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:234:12:234:44 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:234:30:234:44 | nullableReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:235:7:235:8 | b6 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:235:3:235:45 | b6 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:235:12:235:26 | nullableReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:235:12:235:45 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:235:31:235:45 | nullableReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:236:7:236:8 | b7 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:236:3:236:47 | b7 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:236:12:236:27 | notNullPrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:236:12:236:47 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:236:32:236:47 | notNullPrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:237:7:237:8 | b8 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:237:3:237:48 | b8 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:237:12:237:27 | notNullPrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:237:12:237:48 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:237:32:237:48 | nullablePrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:238:7:238:8 | b9 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:238:3:238:49 | b9 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:238:12:238:28 | nullablePrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:238:12:238:49 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:238:33:238:49 | nullablePrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:239:7:239:9 | b10 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:239:3:239:44 | b10 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:239:13:239:26 | notNullReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:239:13:239:44 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:239:31:239:44 | notNullReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:240:7:240:9 | b11 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:240:3:240:45 | b11 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:240:13:240:26 | notNullReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:240:13:240:45 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:240:31:240:45 | nullableReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:241:7:241:9 | b12 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:241:3:241:46 | b12 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:241:13:241:27 | nullableReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:241:13:241:46 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:241:32:241:46 | nullableReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | -| exprs.kt:242:7:242:9 | b13 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:242:3:242:36 | b13 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:242:13:242:28 | notNullPrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:242:13:242:36 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:242:33:242:36 | null | exprs.kt:229:1:250:1 | equalityTests | NullLiteral | -| exprs.kt:243:7:243:9 | b14 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:243:3:243:37 | b14 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:243:13:243:29 | nullablePrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:243:13:243:37 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:243:34:243:37 | null | exprs.kt:229:1:250:1 | equalityTests | NullLiteral | -| exprs.kt:244:7:244:9 | b15 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:244:3:244:34 | b15 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:244:13:244:26 | notNullReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:244:13:244:34 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:244:31:244:34 | null | exprs.kt:229:1:250:1 | equalityTests | NullLiteral | -| exprs.kt:245:7:245:9 | b16 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:245:3:245:35 | b16 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:245:13:245:27 | nullableReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:245:13:245:35 | ... (value equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueEQExpr | | exprs.kt:245:32:245:35 | null | exprs.kt:229:1:250:1 | equalityTests | NullLiteral | -| exprs.kt:246:7:246:9 | b17 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:246:3:246:36 | b17 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:246:13:246:28 | notNullPrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:246:13:246:36 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:246:33:246:36 | null | exprs.kt:229:1:250:1 | equalityTests | NullLiteral | -| exprs.kt:247:7:247:9 | b18 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:247:3:247:37 | b18 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:247:13:247:29 | nullablePrimitive | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:247:13:247:37 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:247:34:247:37 | null | exprs.kt:229:1:250:1 | equalityTests | NullLiteral | -| exprs.kt:248:7:248:9 | b19 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:248:3:248:34 | b19 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:248:13:248:26 | notNullReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:248:13:248:34 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:248:31:248:34 | null | exprs.kt:229:1:250:1 | equalityTests | NullLiteral | -| exprs.kt:249:7:249:9 | b20 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | +| exprs.kt:249:3:249:35 | b20 | exprs.kt:229:1:250:1 | equalityTests | LocalVariableDeclExpr | | exprs.kt:249:13:249:27 | nullableReftype | exprs.kt:229:1:250:1 | equalityTests | VarAccess | | exprs.kt:249:13:249:35 | ... (value not-equals) ... | exprs.kt:229:1:250:1 | equalityTests | ValueNEExpr | | exprs.kt:249:32:249:35 | null | exprs.kt:229:1:250:1 | equalityTests | NullLiteral | @@ -1719,28 +1719,28 @@ | exprs.kt:256:30:256:39 | double | file://:0:0:0:0 | | TypeAccess | | exprs.kt:257:18:257:26 | float | file://:0:0:0:0 | | TypeAccess | | exprs.kt:257:29:257:37 | float | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:259:7:259:7 | i | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | +| exprs.kt:259:3:259:15 | i | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | | exprs.kt:259:11:259:11 | x | exprs.kt:252:1:265:1 | mulOperators | VarAccess | | exprs.kt:259:11:259:15 | ... * ... | exprs.kt:252:1:265:1 | mulOperators | MulExpr | | exprs.kt:259:15:259:15 | y | exprs.kt:252:1:265:1 | mulOperators | VarAccess | -| exprs.kt:260:7:260:7 | b | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | +| exprs.kt:260:3:260:19 | b | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | | exprs.kt:260:11:260:13 | byx | exprs.kt:252:1:265:1 | mulOperators | VarAccess | | exprs.kt:260:11:260:19 | ... * ... | exprs.kt:252:1:265:1 | mulOperators | MulExpr | | exprs.kt:260:17:260:19 | byy | exprs.kt:252:1:265:1 | mulOperators | VarAccess | -| exprs.kt:261:7:261:7 | l | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | +| exprs.kt:261:3:261:17 | l | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | | exprs.kt:261:11:261:12 | lx | exprs.kt:252:1:265:1 | mulOperators | VarAccess | | exprs.kt:261:11:261:17 | ... * ... | exprs.kt:252:1:265:1 | mulOperators | MulExpr | | exprs.kt:261:16:261:17 | ly | exprs.kt:252:1:265:1 | mulOperators | VarAccess | -| exprs.kt:262:7:262:7 | d | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | +| exprs.kt:262:3:262:17 | d | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | | exprs.kt:262:11:262:12 | dx | exprs.kt:252:1:265:1 | mulOperators | VarAccess | | exprs.kt:262:11:262:17 | ... * ... | exprs.kt:252:1:265:1 | mulOperators | MulExpr | | exprs.kt:262:16:262:17 | dy | exprs.kt:252:1:265:1 | mulOperators | VarAccess | -| exprs.kt:263:7:263:7 | f | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | +| exprs.kt:263:3:263:17 | f | exprs.kt:252:1:265:1 | mulOperators | LocalVariableDeclExpr | | exprs.kt:263:11:263:12 | fx | exprs.kt:252:1:265:1 | mulOperators | VarAccess | | exprs.kt:263:11:263:17 | ... * ... | exprs.kt:252:1:265:1 | mulOperators | MulExpr | | exprs.kt:263:16:263:17 | fy | exprs.kt:252:1:265:1 | mulOperators | VarAccess | | exprs.kt:267:1:276:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:269:7:269:13 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | LocalVariableDeclExpr | +| exprs.kt:269:3:269:17 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | LocalVariableDeclExpr | | exprs.kt:269:17:269:17 | 0 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral | | exprs.kt:270:3:270:9 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | | exprs.kt:270:3:270:14 | ...+=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignAddExpr | @@ -1793,9 +1793,9 @@ | exprs.kt:289:5:289:6 | | exprs.kt:285:1:346:1 | unaryExprs | ImplicitCoercionToUnitExpr | | exprs.kt:289:5:289:6 | Unit | exprs.kt:285:1:346:1 | unaryExprs | TypeAccess | | exprs.kt:289:6:289:6 | d | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | -| exprs.kt:290:9:290:10 | i0 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | +| exprs.kt:290:5:290:14 | i0 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | | exprs.kt:290:14:290:14 | 1 | exprs.kt:285:1:346:1 | unaryExprs | IntegerLiteral | -| exprs.kt:291:9:291:10 | i1 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | +| exprs.kt:291:5:291:14 | i1 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | | exprs.kt:291:14:291:14 | 1 | exprs.kt:285:1:346:1 | unaryExprs | IntegerLiteral | | exprs.kt:292:5:292:6 | i0 | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | | exprs.kt:292:5:292:6 | i0 | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | @@ -1861,9 +1861,9 @@ | exprs.kt:303:5:303:6 | | exprs.kt:285:1:346:1 | unaryExprs | ImplicitCoercionToUnitExpr | | exprs.kt:303:5:303:6 | Unit | exprs.kt:285:1:346:1 | unaryExprs | TypeAccess | | exprs.kt:303:6:303:6 | b | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | -| exprs.kt:304:9:304:10 | b0 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | +| exprs.kt:304:5:304:20 | b0 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | | exprs.kt:304:20:304:20 | 1 | exprs.kt:285:1:346:1 | unaryExprs | IntegerLiteral | -| exprs.kt:305:9:305:10 | b1 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | +| exprs.kt:305:5:305:20 | b1 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | | exprs.kt:305:20:305:20 | 1 | exprs.kt:285:1:346:1 | unaryExprs | IntegerLiteral | | exprs.kt:306:5:306:6 | b0 | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | | exprs.kt:306:5:306:6 | b0 | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | @@ -1929,9 +1929,9 @@ | exprs.kt:317:5:317:6 | | exprs.kt:285:1:346:1 | unaryExprs | ImplicitCoercionToUnitExpr | | exprs.kt:317:5:317:6 | Unit | exprs.kt:285:1:346:1 | unaryExprs | TypeAccess | | exprs.kt:317:6:317:6 | s | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | -| exprs.kt:318:9:318:10 | s0 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | +| exprs.kt:318:5:318:21 | s0 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | | exprs.kt:318:21:318:21 | 1 | exprs.kt:285:1:346:1 | unaryExprs | IntegerLiteral | -| exprs.kt:319:9:319:10 | s1 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | +| exprs.kt:319:5:319:21 | s1 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | | exprs.kt:319:21:319:21 | 1 | exprs.kt:285:1:346:1 | unaryExprs | IntegerLiteral | | exprs.kt:320:5:320:6 | s0 | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | | exprs.kt:320:5:320:6 | s0 | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | @@ -1997,9 +1997,9 @@ | exprs.kt:331:5:331:6 | | exprs.kt:285:1:346:1 | unaryExprs | ImplicitCoercionToUnitExpr | | exprs.kt:331:5:331:6 | Unit | exprs.kt:285:1:346:1 | unaryExprs | TypeAccess | | exprs.kt:331:6:331:6 | l | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | -| exprs.kt:332:9:332:10 | l0 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | +| exprs.kt:332:5:332:20 | l0 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | | exprs.kt:332:20:332:20 | 1 | exprs.kt:285:1:346:1 | unaryExprs | LongLiteral | -| exprs.kt:333:9:333:10 | l1 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | +| exprs.kt:333:5:333:20 | l1 | exprs.kt:285:1:346:1 | unaryExprs | LocalVariableDeclExpr | | exprs.kt:333:20:333:20 | 1 | exprs.kt:285:1:346:1 | unaryExprs | LongLiteral | | exprs.kt:334:5:334:6 | l0 | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | | exprs.kt:334:5:334:6 | l0 | exprs.kt:285:1:346:1 | unaryExprs | VarAccess | @@ -3258,7 +3258,7 @@ | funcExprs.kt:77:20:77:55 | Integer | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:77:20:77:55 | String | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:82:9:96:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| funcExprs.kt:83:9:83:10 | l1 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr | +| 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 | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:83:31:83:51 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | @@ -3272,7 +3272,7 @@ | funcExprs.kt:84:8:84:16 | | 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:9:86:10 | l2 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr | +| 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 | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:86:39:86:59 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | @@ -3286,7 +3286,7 @@ | funcExprs.kt:87:8:87:16 | | 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:9:89:10 | l3 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr | +| 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 | @@ -3463,7 +3463,7 @@ | 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:9:93:10 | l4 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr | +| 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 | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | @@ -3544,7 +3544,7 @@ | kFunctionInvoke.kt:7:1:10:1 | Unit | file://:0:0:0:0 | | TypeAccess | | kFunctionInvoke.kt:7:12:7:15 | A | file://:0:0:0:0 | | TypeAccess | | kFunctionInvoke.kt:7:18:7:26 | String | file://:0:0:0:0 | | TypeAccess | -| kFunctionInvoke.kt:8:9:8:14 | toCall | kFunctionInvoke.kt:7:1:10:1 | useRef | LocalVariableDeclExpr | +| kFunctionInvoke.kt:8:5:8:47 | toCall | kFunctionInvoke.kt:7:1:10:1 | useRef | LocalVariableDeclExpr | | kFunctionInvoke.kt:8:44:8:44 | a | kFunctionInvoke.kt:7:1:10:1 | useRef | VarAccess | | kFunctionInvoke.kt:8:44:8:47 | 1 | kFunctionInvoke.kt:8:44:8:47 | | IntegerLiteral | | kFunctionInvoke.kt:8:44:8:47 | ...::... | kFunctionInvoke.kt:7:1:10:1 | useRef | MemberRefExpr | @@ -3564,7 +3564,7 @@ | kFunctionInvoke.kt:9:5:9:13 | invoke(...) | kFunctionInvoke.kt:7:1:10:1 | useRef | MethodCall | | kFunctionInvoke.kt:9:12:9:12 | s | kFunctionInvoke.kt:7:1:10:1 | useRef | VarAccess | | localFunctionCalls.kt:3:1:12:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| localFunctionCalls.kt:4:9:4:9 | x | localFunctionCalls.kt:3:1:12:1 | x | LocalVariableDeclExpr | +| localFunctionCalls.kt:4:5:4:13 | x | localFunctionCalls.kt:3:1:12:1 | x | LocalVariableDeclExpr | | localFunctionCalls.kt:4:13:4:13 | 5 | localFunctionCalls.kt:3:1:12:1 | x | IntegerLiteral | | localFunctionCalls.kt:5:5:5:29 | int | file://:0:0:0:0 | | TypeAccess | | localFunctionCalls.kt:5:15:5:20 | int | file://:0:0:0:0 | | TypeAccess | @@ -3611,7 +3611,7 @@ | localFunctionCalls.kt:11:18:11:19 | 42 | localFunctionCalls.kt:3:1:12:1 | x | IntegerLiteral | | samConversion.kt:1:1:14:1 | Unit | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:1:10:1:19 | boolean | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:2:9:2:14 | isEven | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | +| samConversion.kt:2:5:2:45 | isEven | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | | samConversion.kt:2:18:2:45 | (...)... | samConversion.kt:1:1:14:1 | main | CastExpr | | samConversion.kt:2:18:2:45 | ...=... | samConversion.kt:2:18:2:45 | | AssignExpr | | samConversion.kt:2:18:2:45 | | samConversion.kt:2:18:2:45 | | VarAccess | @@ -3639,7 +3639,7 @@ | samConversion.kt:2:33:2:43 | ... (value equals) ... | samConversion.kt:2:31:2:45 | invoke | ValueEQExpr | | samConversion.kt:2:38:2:38 | 2 | samConversion.kt:2:31:2:45 | invoke | IntegerLiteral | | samConversion.kt:2:43:2:43 | 0 | samConversion.kt:2:31:2:45 | invoke | IntegerLiteral | -| samConversion.kt:4:9:4:10 | i0 | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | +| samConversion.kt:4:5:4:42 | i0 | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | | samConversion.kt:4:14:4:42 | (...)... | samConversion.kt:1:1:14:1 | main | CastExpr | | samConversion.kt:4:14:4:42 | ...=... | samConversion.kt:4:14:4:42 | | AssignExpr | | samConversion.kt:4:14:4:42 | | samConversion.kt:4:14:4:42 | | VarAccess | @@ -3668,7 +3668,7 @@ | samConversion.kt:4:29:4:29 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:4:32:4:32 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:4:37:4:40 | INSTANCE | samConversion.kt:4:27:4:42 | invoke | VarAccess | -| samConversion.kt:5:9:5:10 | i1 | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | +| samConversion.kt:5:5:5:32 | i1 | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | | samConversion.kt:5:14:5:32 | (...)... | samConversion.kt:1:1:14:1 | main | CastExpr | | samConversion.kt:5:14:5:32 | ...=... | samConversion.kt:5:14:5:32 | | AssignExpr | | samConversion.kt:5:14:5:32 | | samConversion.kt:5:14:5:32 | | VarAccess | @@ -3698,7 +3698,7 @@ | samConversion.kt:5:27:5:31 | a0 | samConversion.kt:5:27:5:31 | invoke | VarAccess | | samConversion.kt:5:27:5:31 | a1 | samConversion.kt:5:27:5:31 | invoke | VarAccess | | samConversion.kt:5:27:5:31 | fn2(...) | samConversion.kt:5:27:5:31 | invoke | MethodCall | -| samConversion.kt:7:9:7:9 | i | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | +| samConversion.kt:7:5:7:46 | i | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | | samConversion.kt:7:13:7:46 | (...)... | samConversion.kt:1:1:14:1 | main | CastExpr | | samConversion.kt:7:13:7:46 | ...=... | samConversion.kt:7:13:7:46 | | AssignExpr | | samConversion.kt:7:13:7:46 | | samConversion.kt:7:13:7:46 | | VarAccess | @@ -3729,7 +3729,7 @@ | samConversion.kt:7:36:7:39 | this | samConversion.kt:7:29:7:46 | invoke | ExtensionReceiverAccess | | samConversion.kt:7:36:7:45 | ... (value equals) ... | samConversion.kt:7:29:7:46 | invoke | ValueEQExpr | | samConversion.kt:7:44:7:45 | "" | samConversion.kt:7:29:7:46 | invoke | StringLiteral | -| samConversion.kt:9:9:9:9 | x | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | +| samConversion.kt:9:5:13:6 | x | samConversion.kt:1:1:14:1 | main | LocalVariableDeclExpr | | samConversion.kt:9:13:13:6 | (...)... | samConversion.kt:1:1:14:1 | main | CastExpr | | samConversion.kt:9:13:13:6 | ...=... | samConversion.kt:9:13:13:6 | | AssignExpr | | samConversion.kt:9:13:13:6 | | samConversion.kt:9:13:13:6 | | VarAccess | @@ -3833,7 +3833,7 @@ | samConversion.kt:38:49:38:52 | true | samConversion.kt:36:1:38:52 | ff | BooleanLiteral | | samConversion.kt:40:1:47:1 | Unit | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:40:8:40:19 | boolean | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:41:9:41:9 | a | samConversion.kt:40:1:47:1 | fn | LocalVariableDeclExpr | +| samConversion.kt:41:5:41:16 | a | samConversion.kt:40:1:47:1 | fn | LocalVariableDeclExpr | | samConversion.kt:41:13:41:16 | 0 | samConversion.kt:41:13:41:16 | invoke | IntegerLiteral | | samConversion.kt:41:13:41:16 | 1 | samConversion.kt:41:13:41:16 | invoke | IntegerLiteral | | samConversion.kt:41:13:41:16 | 2 | samConversion.kt:41:13:41:16 | invoke | IntegerLiteral | @@ -3955,7 +3955,7 @@ | samConversion.kt:41:13:41:16 | int | samConversion.kt:41:13:41:16 | invoke | TypeAccess | | samConversion.kt:41:13:41:16 | int | samConversion.kt:41:13:41:16 | invoke | TypeAccess | | samConversion.kt:41:13:41:16 | int | samConversion.kt:41:13:41:16 | invoke | TypeAccess | -| samConversion.kt:42:9:42:9 | b | samConversion.kt:40:1:47:1 | fn | LocalVariableDeclExpr | +| samConversion.kt:42:5:42:32 | b | samConversion.kt:40:1:47:1 | fn | LocalVariableDeclExpr | | samConversion.kt:42:13:42:32 | 23 | samConversion.kt:42:13:42:32 | accept | IntegerLiteral | | samConversion.kt:42:13:42:32 | (...)... | samConversion.kt:40:1:47:1 | fn | CastExpr | | samConversion.kt:42:13:42:32 | ...=... | samConversion.kt:42:13:42:32 | | AssignExpr | @@ -4020,7 +4020,7 @@ | samConversion.kt:42:13:42:32 | this. | samConversion.kt:42:13:42:32 | | VarAccess | | samConversion.kt:42:13:42:32 | {...} | samConversion.kt:42:13:42:32 | accept | ArrayInit | | samConversion.kt:42:31:42:31 | a | samConversion.kt:40:1:47:1 | fn | VarAccess | -| samConversion.kt:43:9:43:9 | c | samConversion.kt:40:1:47:1 | fn | LocalVariableDeclExpr | +| samConversion.kt:43:5:45:68 | c | samConversion.kt:40:1:47:1 | fn | LocalVariableDeclExpr | | samConversion.kt:43:13:45:68 | 23 | samConversion.kt:43:13:45:68 | accept | IntegerLiteral | | samConversion.kt:43:13:45:68 | (...)... | samConversion.kt:40:1:47:1 | fn | CastExpr | | samConversion.kt:43:13:45:68 | ...=... | samConversion.kt:43:13:45:68 | | AssignExpr | @@ -4229,7 +4229,7 @@ | samConversion.kt:45:42:45:49 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:45:52:45:59 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:45:64:45:67 | true | samConversion.kt:43:31:45:68 | invoke | BooleanLiteral | -| samConversion.kt:46:9:46:9 | d | samConversion.kt:40:1:47:1 | fn | LocalVariableDeclExpr | +| samConversion.kt:46:5:46:44 | d | samConversion.kt:40:1:47:1 | fn | LocalVariableDeclExpr | | samConversion.kt:46:13:46:44 | (...)... | samConversion.kt:40:1:47:1 | fn | CastExpr | | samConversion.kt:46:13:46:44 | ...=... | samConversion.kt:46:13:46:44 | | AssignExpr | | samConversion.kt:46:13:46:44 | | samConversion.kt:46:13:46:44 | | VarAccess | @@ -4261,7 +4261,7 @@ | samConversion.kt:54:21:54:26 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:54:29:54:34 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:57:9:60:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:58:9:58:10 | i0 | samConversion.kt:57:9:60:1 | test | LocalVariableDeclExpr | +| 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 | | samConversion.kt:58:14:58:45 | | VarAccess | @@ -4294,11 +4294,11 @@ | 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 | | TypeAccess | | samConversion.kt:63:5:63:13 | ...=... | samConversion.kt:62:1:64:1 | PropertyRefsTest | KtInitializerAssignExpr | | samConversion.kt:63:5:63:13 | int | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:63:5:63:13 | int | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:63:5:63:13 | this | samConversion.kt:63:5:63:13 | getX | ThisAccess | -| samConversion.kt:63:5:63:13 | this.x | samConversion.kt:63:5:63:13 | getX | VarAccess | +| samConversion.kt:63:5:63:13 | this | samConversion.kt:63:5:63:9 | getX | ThisAccess | +| samConversion.kt:63:5:63:13 | this.x | samConversion.kt:63:5:63:9 | getX | VarAccess | | samConversion.kt:63:5:63:13 | x | samConversion.kt:62:1:64:1 | PropertyRefsTest | VarAccess | | samConversion.kt:63:13:63:13 | 1 | samConversion.kt:62:1:64:1 | PropertyRefsTest | IntegerLiteral | | samConversion.kt:67:5:67:37 | int | file://:0:0:0:0 | | TypeAccess | @@ -4306,7 +4306,7 @@ | samConversion.kt:71:5:71:16 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:74:1:77:1 | Unit | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:74:22:74:42 | PropertyRefsTest | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:75:9:75:13 | test1 | samConversion.kt:74:1:77:1 | propertyRefsTest | LocalVariableDeclExpr | +| samConversion.kt:75:5:75:33 | test1 | samConversion.kt:74:1:77:1 | propertyRefsTest | LocalVariableDeclExpr | | samConversion.kt:75:17:75:33 | (...)... | samConversion.kt:74:1:77:1 | propertyRefsTest | CastExpr | | samConversion.kt:75:17:75:33 | ...=... | samConversion.kt:75:17:75:33 | | AssignExpr | | samConversion.kt:75:17:75:33 | | samConversion.kt:75:17:75:33 | | VarAccess | @@ -4334,7 +4334,7 @@ | samConversion.kt:75:27:75:32 | this | samConversion.kt:75:27:75:32 | invoke | ThisAccess | | samConversion.kt:75:27:75:32 | this. | samConversion.kt:75:27:75:32 | | VarAccess | | samConversion.kt:75:27:75:32 | this. | samConversion.kt:75:27:75:32 | get | VarAccess | -| samConversion.kt:76:9:76:13 | test2 | samConversion.kt:74:1:77:1 | propertyRefsTest | LocalVariableDeclExpr | +| samConversion.kt:76:5:76:55 | test2 | samConversion.kt:74:1:77:1 | propertyRefsTest | LocalVariableDeclExpr | | samConversion.kt:76:17:76:55 | (...)... | samConversion.kt:74:1:77:1 | propertyRefsTest | CastExpr | | samConversion.kt:76:17:76:55 | ...=... | samConversion.kt:76:17:76:55 | | AssignExpr | | samConversion.kt:76:17:76:55 | | samConversion.kt:76:17:76:55 | | VarAccess | diff --git a/java/ql/test-kotlin1/library-tests/exprs/funcExprs.expected b/java/ql/test-kotlin1/library-tests/exprs/funcExprs.expected index b79725a80e33..4de14de09b6d 100644 --- a/java/ql/test-kotlin1/library-tests/exprs/funcExprs.expected +++ b/java/ql/test-kotlin1/library-tests/exprs/funcExprs.expected @@ -86,8 +86,8 @@ anon_class_member_modifiers | delegatedProperties.kt:19:31:19:51 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:19:31:19:51 | set | override, public | | delegatedProperties.kt:23:26:23:31 | new KProperty0(...) { ... } | delegatedProperties.kt:23:26:23:31 | get | override, public | | delegatedProperties.kt:23:26:23:31 | new KProperty0(...) { ... } | delegatedProperties.kt:23:26:23:31 | invoke | override, public | -| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:28 | getCurValue | final, public | -| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:28 | setCurValue | final, public | +| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:24 | getCurValue | final, public | +| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:24 | setCurValue | final, public | | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:27:22:27:88 | getValue | override, public | | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:28:22:30:13 | setValue | override, public | | delegatedProperties.kt:33:27:33:47 | new KProperty0(...) { ... } | delegatedProperties.kt:33:27:33:47 | get | override, public | @@ -187,7 +187,7 @@ anon_class_member_modifiers | delegatedProperties.kt:87:34:87:46 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:87:34:87:46 | get | override, public | | delegatedProperties.kt:87:34:87:46 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:87:34:87:46 | invoke | override, public | | delegatedProperties.kt:87:34:87:46 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:87:34:87:46 | set | override, public | -| exprs.kt:195:16:197:9 | new Interface1(...) { ... } | exprs.kt:196:13:196:49 | getA3 | final, public | +| exprs.kt:195:16:197:9 | new Interface1(...) { ... } | exprs.kt:196:13:196:18 | getA3 | final, public | | funcExprs.kt:22:26:22:33 | new Function0(...) { ... } | funcExprs.kt:22:26:22:33 | invoke | final, override, public | | funcExprs.kt:23:26:23:33 | new Function0(...) { ... } | funcExprs.kt:23:26:23:33 | invoke | final, override, public | | funcExprs.kt:24:26:24:33 | new Function0(...) { ... } | funcExprs.kt:24:26:24:33 | invoke | final, override, public | diff --git a/java/ql/test-kotlin1/library-tests/exprs/unaryOp.expected b/java/ql/test-kotlin1/library-tests/exprs/unaryOp.expected index 03b5d64a7f43..487226320cc2 100644 --- a/java/ql/test-kotlin1/library-tests/exprs/unaryOp.expected +++ b/java/ql/test-kotlin1/library-tests/exprs/unaryOp.expected @@ -2,9 +2,9 @@ | exprs.kt:32:15:32:26 | !... | exprs.kt:32:15:32:26 | contains(...) | | exprs.kt:79:15:79:22 | ~... | exprs.kt:79:15:79:16 | lx | | exprs.kt:121:14:121:16 | !... | exprs.kt:121:15:121:16 | b1 | -| exprs.kt:202:19:202:20 | ...!! | exprs.kt:202:18:202:18 | x | -| exprs.kt:211:20:211:21 | ...!! | exprs.kt:211:19:211:19 | s | -| exprs.kt:212:20:212:21 | ...!! | exprs.kt:212:19:212:19 | s | +| exprs.kt:202:18:202:20 | ...!! | exprs.kt:202:18:202:18 | x | +| exprs.kt:211:19:211:21 | ...!! | exprs.kt:211:19:211:19 | s | +| exprs.kt:212:19:212:21 | ...!! | exprs.kt:212:19:212:19 | s | | exprs.kt:286:5:286:6 | -... | exprs.kt:286:6:286:6 | i | | exprs.kt:287:5:287:6 | +... | exprs.kt:287:6:287:6 | i | | exprs.kt:288:5:288:6 | -... | exprs.kt:288:6:288:6 | d | diff --git a/java/ql/test-kotlin1/library-tests/generated-throws/generated-throws.kt b/java/ql/test-kotlin1/library-tests/generated-throws/generated-throws.kt index 4bbcec0dd214..a3e1dc12a607 100644 --- a/java/ql/test-kotlin1/library-tests/generated-throws/generated-throws.kt +++ b/java/ql/test-kotlin1/library-tests/generated-throws/generated-throws.kt @@ -4,7 +4,6 @@ interface Bar: Foo {} interface Baz: Foo {} private fun someFun(v: Foo) { - // This doesn't generate a throw statement in Kotlin 1 mode when (v) { is Bar -> {} is Baz -> {} diff --git a/java/ql/test-kotlin1/library-tests/generic-instance-methods/test.expected b/java/ql/test-kotlin1/library-tests/generic-instance-methods/test.expected index da928788a8a3..c3180eb41629 100644 --- a/java/ql/test-kotlin1/library-tests/generic-instance-methods/test.expected +++ b/java/ql/test-kotlin1/library-tests/generic-instance-methods/test.expected @@ -6,8 +6,8 @@ calls | Test.java:26:5:26:35 | setter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | setter | Generic2.class:0:0:0:0 | Generic2 | | Test.java:27:5:27:24 | getter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | getter | Generic2.class:0:0:0:0 | Generic2 | | test.kt:5:32:5:46 | identity(...) | test.kt:5:3:5:46 | identity2 | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | test.kt:1:1:13:1 | Generic | -| test.kt:7:21:7:26 | getStored(...) | test.kt:7:3:7:26 | getter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | test.kt:1:1:13:1 | Generic | -| test.kt:8:26:8:31 | setStored(...) | test.kt:8:3:8:41 | setter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | test.kt:1:1:13:1 | Generic | +| test.kt:7:21:7:26 | getStored(...) | test.kt:7:3:7:26 | getter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | test.kt:1:1:13:1 | Generic | +| test.kt:8:26:8:31 | setStored(...) | test.kt:8:3:8:41 | setter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | test.kt:1:1:13:1 | Generic | | test.kt:11:44:11:70 | privateid(...) | test.kt:11:3:11:70 | callPrivateId | test.kt:1:1:13:1 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | | test.kt:18:3:18:35 | identity(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | | test.kt:19:3:19:36 | identity2(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | @@ -53,30 +53,30 @@ refTypes | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | setter(java.lang.Object) | T | void | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | | Test.java:14:14:14:17 | Test | Test.java:16:22:16:25 | user | user() | No parameters | void | Test.java:14:14:14:17 | Test | Test.java:16:22:16:25 | user | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.Void) | Void | String | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.Void) | Void | String | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | test.kt:3:3:3:12 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | test.kt:3:3:3:12 | setStored | setStored(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.String) | String | Object | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | Object | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | test.kt:3:3:3:12 | getStored | getStored() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | test.kt:3:3:3:12 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | privateid(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:10:11:10:41 | privateid | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | test.kt:3:3:3:12 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | test.kt:3:3:3:12 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | test.kt:0:0:0:0 | TestKt | test.kt:15:1:28:1 | user | user() | No parameters | void | test.kt:0:0:0:0 | TestKt | test.kt:15:1:28:1 | user | -| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | getStored() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | -| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | setStored(java.lang.Object) | T | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | +| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | getStored() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | +| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | setStored(java.lang.Object) | T | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | identity2(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | identity(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | getter() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | diff --git a/java/ql/test-kotlin1/library-tests/generic-selective-extraction/test.expected b/java/ql/test-kotlin1/library-tests/generic-selective-extraction/test.expected index d4b4a4bbff4d..c3e3708c377c 100644 --- a/java/ql/test-kotlin1/library-tests/generic-selective-extraction/test.expected +++ b/java/ql/test-kotlin1/library-tests/generic-selective-extraction/test.expected @@ -12,12 +12,12 @@ | Test.java:13:7:13:10 | User | Test.java:13:7:13:10 | User | | Test.java:13:7:13:10 | User | Test.java:15:22:15:25 | test | | Test.kt:1:1:8:1 | TestKt | Test.kt:1:1:8:1 | TestKt | +| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:11 | getField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:11 | setField | | Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | field | -| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | getField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | setField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:25 | rawField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:25 | getRawField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:25 | setRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:14 | getRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:14 | setRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:25 | rawField | | Test.kt:1:1:8:1 | TestKt | Test.kt:6:3:6:22 | method | | Test.kt:10:1:10:20 | FieldUsedKt | Test.kt:10:1:10:20 | FieldUsedKt | | Test.kt:11:1:11:23 | RawFieldUsedKt | Test.kt:11:1:11:23 | RawFieldUsedKt | @@ -26,27 +26,27 @@ | Test.kt:14:1:14:22 | NeitherUsedKt | Test.kt:14:1:14:22 | NeitherUsedKt | | Test.kt:16:1:27:1 | UserKt | Test.kt:16:1:27:1 | UserKt | | Test.kt:16:1:27:1 | UserKt | Test.kt:18:3:25:3 | test | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | getField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | setField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | getRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | setRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | getField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | getRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | method | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | setField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | setRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | getField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | setField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | getRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | setRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | getField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | getRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | method | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | setField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | setRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | getField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | setField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | getRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | setRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | getField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | getRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | method | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | setField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | setRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | getField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:3:3:3:11 | setField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | getRawField | +| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | Test.kt:5:3:5:14 | setRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | getField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | getRawField | | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | method | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | setField | -| file:///!unknown-binary-location/TestKt.class:0:0:0:0 | TestKt | file:///!unknown-binary-location/TestKt.class:0:0:0:0 | setRawField | diff --git a/java/ql/test-kotlin1/library-tests/internal-public-alias/test.expected b/java/ql/test-kotlin1/library-tests/internal-public-alias/test.expected index 77a06cf73103..db1728f23352 100644 --- a/java/ql/test-kotlin1/library-tests/internal-public-alias/test.expected +++ b/java/ql/test-kotlin1/library-tests/internal-public-alias/test.expected @@ -1,6 +1,6 @@ | User.java:3:21:3:24 | test | -| test.kt:3:12:3:30 | getInternalVal$main | +| test.kt:3:12:3:26 | getInternalVal$main | | test.kt:6:3:6:36 | getInternalVal | -| test.kt:8:12:8:30 | getInternalVar$main | -| test.kt:8:12:8:30 | setInternalVar$main | +| test.kt:8:12:8:26 | getInternalVar$main | +| test.kt:8:12:8:26 | setInternalVar$main | | test.kt:10:12:10:32 | internalFun$main | diff --git a/java/ql/test-kotlin1/library-tests/jvmstatic-annotation/test.expected b/java/ql/test-kotlin1/library-tests/jvmstatic-annotation/test.expected index 3f56ec47f8f8..59eed7c37f32 100644 --- a/java/ql/test-kotlin1/library-tests/jvmstatic-annotation/test.expected +++ b/java/ql/test-kotlin1/library-tests/jvmstatic-annotation/test.expected @@ -10,8 +10,8 @@ staticMembers | test.kt:9:1:29:1 | HasCompanion | test.kt:25:18:25:60 | setPropWithStaticSetter | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:31:1:47:1 | INSTANCE | Field | | test.kt:31:1:47:1 | NonCompanion | test.kt:33:14:33:69 | staticMethod | Method | -| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:41 | getStaticProp | Method | -| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:41 | setStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:27 | getStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:27 | setStaticProp | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:40:16:40:43 | getPropWithStaticGetter | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:45:16:45:58 | setPropWithStaticSetter | Method | #select diff --git a/java/ql/test-kotlin1/library-tests/lateinit/test.expected b/java/ql/test-kotlin1/library-tests/lateinit/test.expected index 4a54d9d28585..7e8f9740458d 100644 --- a/java/ql/test-kotlin1/library-tests/lateinit/test.expected +++ b/java/ql/test-kotlin1/library-tests/lateinit/test.expected @@ -1,8 +1,8 @@ | test.kt:4:15:4:26 | println(...) | file:///ConsoleKt.class:0:0:0:0 | println | -| test.kt:9:9:9:13 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private | +| test.kt:9:9:9:13 | getTest0$private(...) | test.kt:2:22:2:30 | getTest0$private | | test.kt:9:9:9:17 | f(...) | test.kt:4:5:4:26 | f | | test.kt:10:13:10:23 | get(...) | test.kt:10:13:10:23 | get | -| test.kt:10:13:10:23 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private | -| test.kt:10:13:10:23 | setTest0$private(...) | test.kt:2:22:2:40 | setTest0$private | +| test.kt:10:13:10:23 | getTest0$private(...) | test.kt:2:22:2:30 | getTest0$private | +| test.kt:10:13:10:23 | setTest0$private(...) | test.kt:2:22:2:30 | setTest0$private | | test.kt:10:13:10:37 | isInitialized(...) | file:///LateinitKt.class:0:0:0:0 | isInitialized | | test.kt:14:9:14:17 | f(...) | test.kt:4:5:4:26 | f | diff --git a/java/ql/test-kotlin1/library-tests/methods/exprs.expected b/java/ql/test-kotlin1/library-tests/methods/exprs.expected index ae7381efc737..c75e43ad3e67 100644 --- a/java/ql/test-kotlin1/library-tests/methods/exprs.expected +++ b/java/ql/test-kotlin1/library-tests/methods/exprs.expected @@ -1,3 +1,6 @@ +| clinit.kt:3:1:3:15 | Unit | TypeAccess | +| clinit.kt:3:1:3:15 | int | TypeAccess | +| clinit.kt:3:1:3:15 | int | TypeAccess | | clinit.kt:3:1:3:24 | ...=... | AssignExpr | | clinit.kt:3:1:3:24 | ...=... | KtInitializerAssignExpr | | clinit.kt:3:1:3:24 | | VarAccess | @@ -7,9 +10,6 @@ | clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess | | clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess | | clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess | -| clinit.kt:3:1:3:24 | Unit | TypeAccess | -| clinit.kt:3:1:3:24 | int | TypeAccess | -| clinit.kt:3:1:3:24 | int | TypeAccess | | clinit.kt:3:1:3:24 | int | TypeAccess | | clinit.kt:3:24:3:24 | 0 | IntegerLiteral | | dataClass.kt:0:0:0:0 | 0 | IntegerLiteral | @@ -341,7 +341,7 @@ | methods4.kt:7:5:7:34 | Unit | TypeAccess | | methods4.kt:7:11:7:29 | InsideNestedTest | TypeAccess | | methods5.kt:3:1:11:1 | Unit | TypeAccess | -| methods5.kt:4:7:4:7 | x | LocalVariableDeclExpr | +| methods5.kt:4:3:4:11 | x | LocalVariableDeclExpr | | methods5.kt:4:11:4:11 | 5 | IntegerLiteral | | methods5.kt:5:3:5:27 | int | TypeAccess | | methods5.kt:5:13:5:18 | int | TypeAccess | diff --git a/java/ql/test-kotlin1/library-tests/methods/methods.expected b/java/ql/test-kotlin1/library-tests/methods/methods.expected index 2ad5c95b4b77..3412de8cdfb8 100644 --- a/java/ql/test-kotlin1/library-tests/methods/methods.expected +++ b/java/ql/test-kotlin1/library-tests/methods/methods.expected @@ -1,7 +1,7 @@ methods | clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:0:0:0:0 | | () | static | Compiler generated | -| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | getTopLevelInt | getTopLevelInt() | final, public, static | Compiler generated | -| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | setTopLevelInt | setTopLevelInt(int) | final, public, static | Compiler generated | +| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:15 | getTopLevelInt | getTopLevelInt() | final, public, static | Compiler generated | +| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:15 | setTopLevelInt | setTopLevelInt(int) | final, public, static | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | component1 | component1() | final, public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | component2 | component2() | final, public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | copy | copy(int,java.lang.String) | final, public | Compiler generated | diff --git a/java/ql/test-kotlin1/library-tests/methods/parameters.expected b/java/ql/test-kotlin1/library-tests/methods/parameters.expected index d4b3a2e24113..7e97ec1f362d 100644 --- a/java/ql/test-kotlin1/library-tests/methods/parameters.expected +++ b/java/ql/test-kotlin1/library-tests/methods/parameters.expected @@ -1,4 +1,4 @@ -| clinit.kt:3:1:3:24 | setTopLevelInt | clinit.kt:3:1:3:24 | | 0 | +| clinit.kt:3:1:3:15 | setTopLevelInt | clinit.kt:3:1:3:15 | | 0 | | dataClass.kt:0:0:0:0 | copy | dataClass.kt:1:22:1:31 | x | 0 | | dataClass.kt:0:0:0:0 | copy | dataClass.kt:1:34:1:46 | y | 1 | | dataClass.kt:0:0:0:0 | copy$default | dataClass.kt:0:0:0:0 | p0 | 0 | diff --git a/java/ql/test-kotlin1/library-tests/modifiers/modifiers.expected b/java/ql/test-kotlin1/library-tests/modifiers/modifiers.expected index 045fdb6d21c8..1b06e7aacfaf 100644 --- a/java/ql/test-kotlin1/library-tests/modifiers/modifiers.expected +++ b/java/ql/test-kotlin1/library-tests/modifiers/modifiers.expected @@ -1,33 +1,33 @@ | modifiers.kt:1:1:29:1 | X | Class | public | | modifiers.kt:1:6:29:1 | X | Constructor | public | -| modifiers.kt:2:5:2:21 | a | Field | final | -| modifiers.kt:2:5:2:21 | a | Field | private | -| modifiers.kt:2:5:2:21 | a | Property | private | -| modifiers.kt:2:13:2:21 | getA$private | Method | final | -| modifiers.kt:2:13:2:21 | getA$private | Method | private | -| modifiers.kt:3:5:3:23 | b | Field | final | -| modifiers.kt:3:5:3:23 | b | Field | private | -| modifiers.kt:3:5:3:23 | b | Property | protected | -| modifiers.kt:3:15:3:23 | getB | Method | final | -| modifiers.kt:3:15:3:23 | getB | Method | protected | -| modifiers.kt:4:5:4:22 | c | Field | final | -| modifiers.kt:4:5:4:22 | c | Field | private | -| modifiers.kt:4:5:4:22 | c | Property | internal | -| modifiers.kt:4:14:4:22 | getC$main | Method | final | -| modifiers.kt:4:14:4:22 | getC$main | Method | internal | +| modifiers.kt:2:13:2:17 | getA$private | Method | final | +| modifiers.kt:2:13:2:17 | getA$private | Method | private | +| modifiers.kt:2:13:2:21 | a | Field | final | +| modifiers.kt:2:13:2:21 | a | Field | private | +| modifiers.kt:2:13:2:21 | a | Property | private | +| modifiers.kt:3:15:3:19 | getB | Method | final | +| modifiers.kt:3:15:3:19 | getB | Method | protected | +| modifiers.kt:3:15:3:23 | b | Field | final | +| modifiers.kt:3:15:3:23 | b | Field | private | +| modifiers.kt:3:15:3:23 | b | Property | protected | +| modifiers.kt:4:14:4:18 | getC$main | Method | final | +| modifiers.kt:4:14:4:18 | getC$main | Method | internal | +| modifiers.kt:4:14:4:22 | c | Field | final | +| modifiers.kt:4:14:4:22 | c | Field | private | +| modifiers.kt:4:14:4:22 | c | Property | internal | +| modifiers.kt:5:5:5:9 | getD | Method | final | +| modifiers.kt:5:5:5:9 | getD | Method | public | | modifiers.kt:5:5:5:34 | d | Field | final | | modifiers.kt:5:5:5:34 | d | Field | private | | modifiers.kt:5:5:5:34 | d | Property | public | -| modifiers.kt:5:5:5:34 | getD | Method | final | -| modifiers.kt:5:5:5:34 | getD | Method | public | | modifiers.kt:7:5:9:5 | Nested | Class | final | | modifiers.kt:7:5:9:5 | Nested | Class | protected | | modifiers.kt:7:15:9:5 | Nested | Constructor | public | -| modifiers.kt:8:9:8:29 | e | Field | final | -| modifiers.kt:8:9:8:29 | e | Field | private | -| modifiers.kt:8:9:8:29 | e | Property | public | -| modifiers.kt:8:16:8:29 | getE | Method | final | -| modifiers.kt:8:16:8:29 | getE | Method | public | +| modifiers.kt:8:16:8:20 | getE | Method | final | +| modifiers.kt:8:16:8:20 | getE | Method | public | +| modifiers.kt:8:16:8:29 | e | Field | final | +| modifiers.kt:8:16:8:29 | e | Field | private | +| modifiers.kt:8:16:8:29 | e | Property | public | | modifiers.kt:11:5:15:5 | fn1 | Method | final | | modifiers.kt:11:5:15:5 | fn1 | Method | public | | modifiers.kt:12:16:14:9 | | Constructor | public | @@ -75,13 +75,13 @@ | modifiers.kt:35:1:41:1 | LateInit | Class | final | | modifiers.kt:35:1:41:1 | LateInit | Class | public | | modifiers.kt:35:8:41:1 | LateInit | Constructor | public | -| modifiers.kt:36:5:36:40 | test0 | Field | private | -| modifiers.kt:36:5:36:40 | test0 | Property | lateinit | -| modifiers.kt:36:5:36:40 | test0 | Property | private | -| modifiers.kt:36:22:36:40 | getTest0$private | Method | final | -| modifiers.kt:36:22:36:40 | getTest0$private | Method | private | -| modifiers.kt:36:22:36:40 | setTest0$private | Method | final | -| modifiers.kt:36:22:36:40 | setTest0$private | Method | private | +| modifiers.kt:36:22:36:30 | getTest0$private | Method | final | +| modifiers.kt:36:22:36:30 | getTest0$private | Method | private | +| modifiers.kt:36:22:36:30 | setTest0$private | Method | final | +| modifiers.kt:36:22:36:30 | setTest0$private | Method | private | +| modifiers.kt:36:22:36:40 | test0 | Field | private | +| modifiers.kt:36:22:36:40 | test0 | Property | lateinit | +| modifiers.kt:36:22:36:40 | test0 | Property | private | | modifiers.kt:38:5:40:5 | fn | Method | final | | modifiers.kt:38:5:40:5 | fn | Method | public | -| modifiers.kt:39:22:39:26 | LateInit test1 | LocalVariableDecl | lateinit | +| modifiers.kt:39:18:39:36 | LateInit test1 | LocalVariableDecl | lateinit | diff --git a/java/ql/test-kotlin1/library-tests/nested_types/test.kt b/java/ql/test-kotlin1/library-tests/nested_types/test.kt new file mode 100644 index 000000000000..7d5e2280b92b --- /dev/null +++ b/java/ql/test-kotlin1/library-tests/nested_types/test.kt @@ -0,0 +1,16 @@ + +import java.util.Stack; + +// Diagnostic Matches: %Making use of Stack a raw type to avoid infinite recursion% + +class MyType + +fun foo1(x: List>>>) { } + +fun foo2(x: Stack>>>) { } + +class MkT { } + +fun foo3(x: MkT>>>) { } + + diff --git a/java/ql/test-kotlin1/library-tests/nested_types/types.expected b/java/ql/test-kotlin1/library-tests/nested_types/types.expected new file mode 100644 index 000000000000..ec2e407b8b7f --- /dev/null +++ b/java/ql/test-kotlin1/library-tests/nested_types/types.expected @@ -0,0 +1,13 @@ +| file:///!unknown-binary-location/MkT.class:0:0:0:0 | MkT>>> | +| file:///!unknown-binary-location/MkT.class:0:0:0:0 | MkT>> | +| file:///!unknown-binary-location/MkT.class:0:0:0:0 | MkT> | +| file:///!unknown-binary-location/MkT.class:0:0:0:0 | MkT | +| file:///modules/java.base/java/util/List.class:0:0:0:0 | List>>> | +| file:///modules/java.base/java/util/List.class:0:0:0:0 | List>> | +| file:///modules/java.base/java/util/List.class:0:0:0:0 | List> | +| file:///modules/java.base/java/util/List.class:0:0:0:0 | List | +| file:///modules/java.base/java/util/List.class:0:0:0:0 | List> | +| file:///modules/java.base/java/util/Stack.class:0:0:0:0 | Stack | +| file:///modules/java.base/java/util/Stack.class:0:0:0:0 | Stack> | +| file:///modules/java.base/java/util/Stack.class:0:0:0:0 | Stack>> | +| file:///modules/java.base/java/util/Stack.class:0:0:0:0 | Stack>>> | diff --git a/java/ql/test-kotlin1/library-tests/nested_types/types.ql b/java/ql/test-kotlin1/library-tests/nested_types/types.ql new file mode 100644 index 000000000000..3499ae037c70 --- /dev/null +++ b/java/ql/test-kotlin1/library-tests/nested_types/types.ql @@ -0,0 +1,7 @@ +import java + +from Type t +where + t.getName().matches("%MyType%") and + t.getName().matches(["List<%", "Stack<%", "MkT<%"]) +select t diff --git a/java/ql/test-kotlin1/library-tests/numlines/callable.expected b/java/ql/test-kotlin1/library-tests/numlines/callable.expected index 52f3a4f2cbe8..ca6371ce23e0 100644 --- a/java/ql/test-kotlin1/library-tests/numlines/callable.expected +++ b/java/ql/test-kotlin1/library-tests/numlines/callable.expected @@ -1,6 +1,6 @@ | test.kt:2:1:4:1 | foo | 3 | 3 | 0 | -| test.kt:8:1:8:9 | getX | 1 | 1 | 0 | -| test.kt:18:1:18:17 | getY | 5 | 1 | 4 | +| test.kt:8:1:8:5 | getX | 1 | 1 | 0 | +| test.kt:18:1:18:5 | getY | 5 | 1 | 4 | | test.kt:20:1:26:1 | Foo | 7 | 6 | 1 | | test.kt:21:5:24:5 | bar | 4 | 3 | 1 | -| test.kt:25:5:25:21 | getSomeField | 1 | 1 | 0 | +| test.kt:25:5:25:17 | getSomeField | 1 | 1 | 0 | diff --git a/java/ql/test-kotlin1/library-tests/private-anonymous-types/test.expected b/java/ql/test-kotlin1/library-tests/private-anonymous-types/test.expected index 9447c64b0787..a9ccfc991fd1 100644 --- a/java/ql/test-kotlin1/library-tests/private-anonymous-types/test.expected +++ b/java/ql/test-kotlin1/library-tests/private-anonymous-types/test.expected @@ -1,33 +1,33 @@ #select | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A$.class:0:0:0:0 | | | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A$.class:0:0:0:0 | | -| file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A$.class:0:0:0:0 | getX | -| file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A$.class:0:0:0:0 | getX | +| file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | test.kt:14:14:14:18 | getX | +| file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | test.kt:14:14:14:18 | getX | | file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | A | -| file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | getAnonType | | file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | getPrivateAnonType$private | | file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | privateUser | +| file:///!unknown-binary-location/A.class:0:0:0:0 | A | test.kt:9:3:9:14 | getAnonType | | file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | A | -| file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | getAnonType | | file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | getPrivateAnonType$private | | file:///!unknown-binary-location/A.class:0:0:0:0 | A | file:///!unknown-binary-location/A.class:0:0:0:0 | privateUser | -| file:///!unknown-binary-location/If.class:0:0:0:0 | If | file:///!unknown-binary-location/If.class:0:0:0:0 | getX | -| file:///!unknown-binary-location/If.class:0:0:0:0 | If | file:///!unknown-binary-location/If.class:0:0:0:0 | getX | +| file:///!unknown-binary-location/A.class:0:0:0:0 | A | test.kt:9:3:9:14 | getAnonType | +| file:///!unknown-binary-location/If.class:0:0:0:0 | If | test.kt:3:3:3:7 | getX | +| file:///!unknown-binary-location/If.class:0:0:0:0 | If | test.kt:3:3:3:7 | getX | | other.kt:1:1:1:34 | Ext | other.kt:1:1:1:34 | Ext | | test.kt:0:0:0:0 | TestKt | test.kt:24:1:24:38 | user | -| test.kt:1:1:5:1 | If | test.kt:3:3:3:11 | getX | +| test.kt:1:1:5:1 | If | test.kt:3:3:3:7 | getX | | test.kt:7:1:22:1 | A | test.kt:7:16:7:21 | A | +| test.kt:7:1:22:1 | A | test.kt:9:3:9:14 | getAnonType | | test.kt:7:1:22:1 | A | test.kt:9:3:11:3 | anonType | -| test.kt:7:1:22:1 | A | test.kt:9:3:11:3 | getAnonType | -| test.kt:7:1:22:1 | A | test.kt:13:3:15:3 | privateAnonType | -| test.kt:7:1:22:1 | A | test.kt:13:11:15:3 | getPrivateAnonType$private | +| test.kt:7:1:22:1 | A | test.kt:13:11:13:29 | getPrivateAnonType$private | +| test.kt:7:1:22:1 | A | test.kt:13:11:15:3 | privateAnonType | | test.kt:7:1:22:1 | A | test.kt:17:3:20:3 | privateUser | | test.kt:9:18:11:3 | new If(...) { ... } | test.kt:9:18:11:3 | | -| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:22 | x | -| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:14:10:22 | getX | +| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:14:10:18 | getX | +| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:14:10:22 | x | | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:13:33:15:3 | | -| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:22 | x | -| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:14:14:22 | getX | +| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:14:14:18 | getX | +| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:14:14:22 | x | enclosingTypes | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | diff --git a/java/ql/test-kotlin1/library-tests/properties/properties.expected b/java/ql/test-kotlin1/library-tests/properties/properties.expected index 1f60e9054b26..7b650d982b14 100644 --- a/java/ql/test-kotlin1/library-tests/properties/properties.expected +++ b/java/ql/test-kotlin1/library-tests/properties/properties.expected @@ -1,33 +1,33 @@ #select | properties.kt:2:27:2:50 | constructorProp | properties.kt:2:27:2:50 | getConstructorProp | file://:0:0:0:0 | | properties.kt:2:27:2:50 | constructorProp | public | | properties.kt:2:53:2:83 | mutableConstructorProp | properties.kt:2:53:2:83 | getMutableConstructorProp | properties.kt:2:53:2:83 | setMutableConstructorProp | properties.kt:2:53:2:83 | mutableConstructorProp | public | -| properties.kt:3:5:3:25 | modifiableInt | properties.kt:3:5:3:25 | getModifiableInt | properties.kt:3:5:3:25 | setModifiableInt | properties.kt:3:5:3:25 | modifiableInt | public | -| properties.kt:4:5:4:24 | immutableInt | properties.kt:4:5:4:24 | getImmutableInt | file://:0:0:0:0 | | properties.kt:4:5:4:24 | immutableInt | public | -| properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:26 | getTypedProp | file://:0:0:0:0 | | properties.kt:5:5:5:26 | typedProp | public | -| properties.kt:6:5:6:38 | abstractTypeProp | properties.kt:6:14:6:38 | getAbstractTypeProp | file://:0:0:0:0 | | file://:0:0:0:0 | | public | -| properties.kt:7:5:7:30 | initialisedInInit | properties.kt:7:5:7:30 | getInitialisedInInit | file://:0:0:0:0 | | properties.kt:7:5:7:30 | initialisedInInit | public | -| properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:40 | getUseConstructorArg | file://:0:0:0:0 | | properties.kt:11:5:11:40 | useConstructorArg | public | +| properties.kt:3:5:3:25 | modifiableInt | properties.kt:3:5:3:21 | getModifiableInt | properties.kt:3:5:3:21 | setModifiableInt | properties.kt:3:5:3:25 | modifiableInt | public | +| properties.kt:4:5:4:24 | immutableInt | properties.kt:4:5:4:20 | getImmutableInt | file://:0:0:0:0 | | properties.kt:4:5:4:24 | immutableInt | public | +| properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:17 | getTypedProp | file://:0:0:0:0 | | properties.kt:5:5:5:26 | typedProp | public | +| properties.kt:6:14:6:38 | abstractTypeProp | properties.kt:6:14:6:33 | getAbstractTypeProp | file://:0:0:0:0 | | file://:0:0:0:0 | | public | +| properties.kt:7:5:7:30 | initialisedInInit | properties.kt:7:5:7:25 | getInitialisedInInit | file://:0:0:0:0 | | properties.kt:7:5:7:30 | initialisedInInit | public | +| properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:25 | getUseConstructorArg | file://:0:0:0:0 | | properties.kt:11:5:11:40 | useConstructorArg | public | | properties.kt:12:5:13:21 | five | properties.kt:13:13:13:21 | getFive | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:14:5:15:21 | six | properties.kt:15:13:15:21 | getSix | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:16:5:18:40 | getSet | properties.kt:17:13:17:33 | getGetSet | properties.kt:18:13:18:40 | setGetSet | file://:0:0:0:0 | | public | -| properties.kt:19:5:20:15 | defaultGetter | properties.kt:20:13:20:15 | getDefaultGetter | file://:0:0:0:0 | | properties.kt:19:5:20:15 | defaultGetter | public | -| properties.kt:21:5:22:15 | varDefaultGetter | properties.kt:22:13:22:15 | getVarDefaultGetter | properties.kt:21:5:22:15 | setVarDefaultGetter | properties.kt:21:5:22:15 | varDefaultGetter | public | -| properties.kt:23:5:24:15 | varDefaultSetter | properties.kt:23:5:24:15 | getVarDefaultSetter | properties.kt:24:13:24:15 | setVarDefaultSetter | properties.kt:23:5:24:15 | varDefaultSetter | public | -| properties.kt:25:5:27:15 | varDefaultGetterSetter | properties.kt:26:13:26:15 | getVarDefaultGetterSetter | properties.kt:27:13:27:15 | setVarDefaultGetterSetter | properties.kt:25:5:27:15 | varDefaultGetterSetter | public | -| properties.kt:28:5:29:22 | overrideGetter | properties.kt:29:13:29:22 | getOverrideGetter | properties.kt:28:5:29:22 | setOverrideGetter | properties.kt:28:5:29:22 | overrideGetter | public | -| properties.kt:30:5:31:29 | overrideGetterUseField | properties.kt:31:13:31:29 | getOverrideGetterUseField | properties.kt:30:5:31:29 | setOverrideGetterUseField | properties.kt:30:5:31:29 | overrideGetterUseField | public | +| properties.kt:19:5:20:15 | defaultGetter | properties.kt:19:5:19:21 | getDefaultGetter | file://:0:0:0:0 | | properties.kt:19:5:20:15 | defaultGetter | public | +| properties.kt:21:5:22:15 | varDefaultGetter | properties.kt:21:5:21:24 | getVarDefaultGetter | properties.kt:21:5:21:24 | setVarDefaultGetter | properties.kt:21:5:22:15 | varDefaultGetter | public | +| properties.kt:23:5:24:15 | varDefaultSetter | properties.kt:23:5:23:24 | getVarDefaultSetter | properties.kt:23:5:23:24 | setVarDefaultSetter | properties.kt:23:5:24:15 | varDefaultSetter | public | +| properties.kt:25:5:27:15 | varDefaultGetterSetter | properties.kt:25:5:25:30 | getVarDefaultGetterSetter | properties.kt:25:5:25:30 | setVarDefaultGetterSetter | properties.kt:25:5:27:15 | varDefaultGetterSetter | public | +| properties.kt:28:5:29:22 | overrideGetter | properties.kt:29:13:29:22 | getOverrideGetter | properties.kt:28:5:28:22 | setOverrideGetter | properties.kt:28:5:29:22 | overrideGetter | public | +| properties.kt:30:5:31:29 | overrideGetterUseField | properties.kt:31:13:31:29 | getOverrideGetterUseField | properties.kt:30:5:30:30 | setOverrideGetterUseField | properties.kt:30:5:31:29 | overrideGetterUseField | public | | properties.kt:32:5:33:29 | useField | properties.kt:33:13:33:29 | getUseField | file://:0:0:0:0 | | properties.kt:32:5:33:29 | useField | public | -| properties.kt:34:5:34:36 | lateInitVar | properties.kt:34:14:34:36 | getLateInitVar | properties.kt:34:14:34:36 | setLateInitVar | properties.kt:34:5:34:36 | lateInitVar | lateinit, public | -| properties.kt:35:5:35:32 | privateProp | properties.kt:35:13:35:32 | getPrivateProp$private | file://:0:0:0:0 | | properties.kt:35:5:35:32 | privateProp | private | -| properties.kt:36:5:36:36 | protectedProp | properties.kt:36:15:36:36 | getProtectedProp | file://:0:0:0:0 | | properties.kt:36:5:36:36 | protectedProp | protected | -| properties.kt:37:5:37:30 | publicProp | properties.kt:37:12:37:30 | getPublicProp | file://:0:0:0:0 | | properties.kt:37:5:37:30 | publicProp | public | -| properties.kt:38:5:38:34 | internalProp | properties.kt:38:14:38:34 | getInternalProp$main | file://:0:0:0:0 | | properties.kt:38:5:38:34 | internalProp | internal | -| properties.kt:67:1:67:23 | constVal | properties.kt:67:7:67:23 | getConstVal | file://:0:0:0:0 | | properties.kt:67:1:67:23 | constVal | public | -| properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:16 | getProp | file://:0:0:0:0 | | properties.kt:70:5:70:16 | prop | public | +| properties.kt:34:14:34:36 | lateInitVar | properties.kt:34:14:34:28 | getLateInitVar | properties.kt:34:14:34:28 | setLateInitVar | properties.kt:34:14:34:36 | lateInitVar | lateinit, public | +| properties.kt:35:13:35:32 | privateProp | properties.kt:35:13:35:27 | getPrivateProp$private | file://:0:0:0:0 | | properties.kt:35:13:35:32 | privateProp | private | +| properties.kt:36:15:36:36 | protectedProp | properties.kt:36:15:36:31 | getProtectedProp | file://:0:0:0:0 | | properties.kt:36:15:36:36 | protectedProp | protected | +| properties.kt:37:12:37:30 | publicProp | properties.kt:37:12:37:25 | getPublicProp | file://:0:0:0:0 | | properties.kt:37:12:37:30 | publicProp | public | +| properties.kt:38:14:38:34 | internalProp | properties.kt:38:14:38:29 | getInternalProp$main | file://:0:0:0:0 | | properties.kt:38:14:38:34 | internalProp | internal | +| properties.kt:67:7:67:23 | constVal | properties.kt:67:7:67:18 | getConstVal | file://:0:0:0:0 | | properties.kt:67:7:67:23 | constVal | public | +| properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:12 | getProp | file://:0:0:0:0 | | properties.kt:70:5:70:16 | prop | public | | properties.kt:78:1:79:13 | x | properties.kt:79:5:79:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:80:1:81:13 | x | properties.kt:81:5:81:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | -| properties.kt:84:5:84:29 | data | properties.kt:84:13:84:29 | getData$private | properties.kt:84:13:84:29 | setData$private | properties.kt:84:5:84:29 | data | private | -| properties.kt:92:5:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:13:93:18 | setData$private | properties.kt:92:5:93:18 | data | private | +| properties.kt:84:13:84:29 | data | properties.kt:84:13:84:20 | getData$private | properties.kt:84:13:84:20 | setData$private | properties.kt:84:13:84:29 | data | private | +| properties.kt:92:13:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:13:92:20 | setData$private | properties.kt:92:13:93:18 | data | private | fieldDeclarations | properties.kt:2:27:2:50 | int constructorProp; | properties.kt:2:27:2:50 | constructorProp | 0 | | properties.kt:2:53:2:83 | int mutableConstructorProp; | properties.kt:2:53:2:83 | mutableConstructorProp | 0 | @@ -43,12 +43,12 @@ fieldDeclarations | properties.kt:28:5:29:22 | int overrideGetter; | properties.kt:28:5:29:22 | overrideGetter | 0 | | properties.kt:30:5:31:29 | int overrideGetterUseField; | properties.kt:30:5:31:29 | overrideGetterUseField | 0 | | properties.kt:32:5:33:29 | int useField; | properties.kt:32:5:33:29 | useField | 0 | -| properties.kt:34:5:34:36 | String lateInitVar; | properties.kt:34:5:34:36 | lateInitVar | 0 | -| properties.kt:35:5:35:32 | int privateProp; | properties.kt:35:5:35:32 | privateProp | 0 | -| properties.kt:36:5:36:36 | int protectedProp; | properties.kt:36:5:36:36 | protectedProp | 0 | -| properties.kt:37:5:37:30 | int publicProp; | properties.kt:37:5:37:30 | publicProp | 0 | -| properties.kt:38:5:38:34 | int internalProp; | properties.kt:38:5:38:34 | internalProp | 0 | -| properties.kt:67:1:67:23 | int constVal; | properties.kt:67:1:67:23 | constVal | 0 | +| properties.kt:34:14:34:36 | String lateInitVar; | properties.kt:34:14:34:36 | lateInitVar | 0 | +| properties.kt:35:13:35:32 | int privateProp; | properties.kt:35:13:35:32 | privateProp | 0 | +| properties.kt:36:15:36:36 | int protectedProp; | properties.kt:36:15:36:36 | protectedProp | 0 | +| properties.kt:37:12:37:30 | int publicProp; | properties.kt:37:12:37:30 | publicProp | 0 | +| properties.kt:38:14:38:34 | int internalProp; | properties.kt:38:14:38:34 | internalProp | 0 | +| properties.kt:67:7:67:23 | int constVal; | properties.kt:67:7:67:23 | constVal | 0 | | properties.kt:70:5:70:16 | int prop; | properties.kt:70:5:70:16 | prop | 0 | -| properties.kt:84:5:84:29 | int data; | properties.kt:84:5:84:29 | data | 0 | -| properties.kt:92:5:93:18 | int data; | properties.kt:92:5:93:18 | data | 0 | +| properties.kt:84:13:84:29 | int data; | properties.kt:84:13:84:29 | data | 0 | +| properties.kt:92:13:93:18 | int data; | properties.kt:92:13:93:18 | data | 0 | diff --git a/java/ql/test-kotlin1/library-tests/reflection/reflection.expected b/java/ql/test-kotlin1/library-tests/reflection/reflection.expected index 3bc2f9ce67d6..20a9e6fc7a19 100644 --- a/java/ql/test-kotlin1/library-tests/reflection/reflection.expected +++ b/java/ql/test-kotlin1/library-tests/reflection/reflection.expected @@ -1,26 +1,26 @@ variableInitializerType -| reflection.kt:7:13:7:15 | KFunction ref | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:7:49:7:54 | new Function2(...) { ... } | file:///Function2.class:0:0:0:0 | Function2 | true | -| reflection.kt:7:13:7:15 | KFunction ref | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:7:49:7:54 | new Function2(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | true | -| reflection.kt:10:13:10:14 | KProperty1 x0 | file:///KProperty1.class:0:0:0:0 | KProperty1 | reflection.kt:10:38:10:42 | new KProperty1(...) { ... } | file:///KProperty1.class:0:0:0:0 | KProperty1 | true | -| reflection.kt:10:13:10:14 | KProperty1 x0 | file:///KProperty1.class:0:0:0:0 | KProperty1 | reflection.kt:10:38:10:42 | new KProperty1(...) { ... } | file:///PropertyReference.class:0:0:0:0 | PropertyReference | true | -| reflection.kt:13:13:13:14 | Getter x3 | file:///KProperty1$Getter.class:0:0:0:0 | Getter | file:///KProperty1$Getter.class:0:0:0:0 | Getter | file:///Function1.class:0:0:0:0 | Function1 | true | -| reflection.kt:13:13:13:14 | Getter x3 | file:///KProperty1$Getter.class:0:0:0:0 | Getter | file:///KProperty1$Getter.class:0:0:0:0 | Getter | file:///KProperty$Getter.class:0:0:0:0 | Getter | true | -| reflection.kt:14:13:14:14 | KFunction x4 | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:14:38:14:44 | new Function1(...) { ... } | file:///Function1.class:0:0:0:0 | Function1 | true | -| reflection.kt:14:13:14:14 | KFunction x4 | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:14:38:14:44 | new Function1(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | true | -| reflection.kt:15:13:15:14 | KProperty0 x5 | file:///KProperty0.class:0:0:0:0 | KProperty0 | reflection.kt:15:35:15:41 | new KProperty0(...) { ... } | file:///KProperty0.class:0:0:0:0 | KProperty0 | true | -| reflection.kt:15:13:15:14 | KProperty0 x5 | file:///KProperty0.class:0:0:0:0 | KProperty0 | reflection.kt:15:35:15:41 | new KProperty0(...) { ... } | file:///PropertyReference.class:0:0:0:0 | PropertyReference | true | -| reflection.kt:17:13:17:14 | KMutableProperty1 y0 | file:///KMutableProperty1.class:0:0:0:0 | KMutableProperty1 | reflection.kt:17:45:17:49 | new KMutableProperty1(...) { ... } | file:///KMutableProperty1.class:0:0:0:0 | KMutableProperty1 | true | -| reflection.kt:17:13:17:14 | KMutableProperty1 y0 | file:///KMutableProperty1.class:0:0:0:0 | KMutableProperty1 | reflection.kt:17:45:17:49 | new KMutableProperty1(...) { ... } | file:///PropertyReference.class:0:0:0:0 | PropertyReference | true | -| reflection.kt:20:13:20:14 | Setter y3 | file:///KMutableProperty1$Setter.class:0:0:0:0 | Setter | file:///KMutableProperty1$Setter.class:0:0:0:0 | Setter | file:///Function2.class:0:0:0:0 | Function2 | true | -| reflection.kt:20:13:20:14 | Setter y3 | file:///KMutableProperty1$Setter.class:0:0:0:0 | Setter | file:///KMutableProperty1$Setter.class:0:0:0:0 | Setter | file:///KMutableProperty$Setter.class:0:0:0:0 | Setter | true | -| reflection.kt:21:13:21:14 | KFunction y4 | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:21:44:21:50 | new Function2(...) { ... } | file:///Function2.class:0:0:0:0 | Function2 | true | -| reflection.kt:21:13:21:14 | KFunction y4 | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:21:44:21:50 | new Function2(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | true | -| reflection.kt:22:13:22:14 | KMutableProperty0 y5 | file:///KMutableProperty0.class:0:0:0:0 | KMutableProperty0 | reflection.kt:22:42:22:48 | new KMutableProperty0(...) { ... } | file:///KMutableProperty0.class:0:0:0:0 | KMutableProperty0 | true | -| reflection.kt:22:13:22:14 | KMutableProperty0 y5 | file:///KMutableProperty0.class:0:0:0:0 | KMutableProperty0 | reflection.kt:22:42:22:48 | new KMutableProperty0(...) { ... } | file:///PropertyReference.class:0:0:0:0 | PropertyReference | true | -| reflection.kt:24:13:24:16 | KProperty2 prop | file:///KProperty2.class:0:0:0:0 | KProperty2 | file:///KProperty2.class:0:0:0:0 | KProperty2 | file:///Function2.class:0:0:0:0 | Function2 | true | -| reflection.kt:24:13:24:16 | KProperty2 prop | file:///KProperty2.class:0:0:0:0 | KProperty2 | file:///KProperty2.class:0:0:0:0 | KProperty2 | file:///KProperty.class:0:0:0:0 | KProperty | true | -| reflection.kt:116:13:116:13 | KFunction x | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:116:40:116:44 | new Function1(...) { ... } | file:///Function1.class:0:0:0:0 | Function1 | true | -| reflection.kt:116:13:116:13 | KFunction x | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:116:40:116:44 | new Function1(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | true | +| reflection.kt:7:9:7:54 | KFunction ref | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:7:49:7:54 | new Function2(...) { ... } | file:///Function2.class:0:0:0:0 | Function2 | true | +| reflection.kt:7:9:7:54 | KFunction ref | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:7:49:7:54 | new Function2(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | true | +| reflection.kt:10:9:10:42 | KProperty1 x0 | file:///KProperty1.class:0:0:0:0 | KProperty1 | reflection.kt:10:38:10:42 | new KProperty1(...) { ... } | file:///KProperty1.class:0:0:0:0 | KProperty1 | true | +| reflection.kt:10:9:10:42 | KProperty1 x0 | file:///KProperty1.class:0:0:0:0 | KProperty1 | reflection.kt:10:38:10:42 | new KProperty1(...) { ... } | file:///PropertyReference.class:0:0:0:0 | PropertyReference | true | +| reflection.kt:13:9:13:53 | Getter x3 | file:///KProperty1$Getter.class:0:0:0:0 | Getter | file:///KProperty1$Getter.class:0:0:0:0 | Getter | file:///Function1.class:0:0:0:0 | Function1 | true | +| reflection.kt:13:9:13:53 | Getter x3 | file:///KProperty1$Getter.class:0:0:0:0 | Getter | file:///KProperty1$Getter.class:0:0:0:0 | Getter | file:///KProperty$Getter.class:0:0:0:0 | Getter | true | +| reflection.kt:14:9:14:44 | KFunction x4 | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:14:38:14:44 | new Function1(...) { ... } | file:///Function1.class:0:0:0:0 | Function1 | true | +| reflection.kt:14:9:14:44 | KFunction x4 | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:14:38:14:44 | new Function1(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | true | +| reflection.kt:15:9:15:41 | KProperty0 x5 | file:///KProperty0.class:0:0:0:0 | KProperty0 | reflection.kt:15:35:15:41 | new KProperty0(...) { ... } | file:///KProperty0.class:0:0:0:0 | KProperty0 | true | +| reflection.kt:15:9:15:41 | KProperty0 x5 | file:///KProperty0.class:0:0:0:0 | KProperty0 | reflection.kt:15:35:15:41 | new KProperty0(...) { ... } | file:///PropertyReference.class:0:0:0:0 | PropertyReference | true | +| reflection.kt:17:9:17:49 | KMutableProperty1 y0 | file:///KMutableProperty1.class:0:0:0:0 | KMutableProperty1 | reflection.kt:17:45:17:49 | new KMutableProperty1(...) { ... } | file:///KMutableProperty1.class:0:0:0:0 | KMutableProperty1 | true | +| reflection.kt:17:9:17:49 | KMutableProperty1 y0 | file:///KMutableProperty1.class:0:0:0:0 | KMutableProperty1 | reflection.kt:17:45:17:49 | new KMutableProperty1(...) { ... } | file:///PropertyReference.class:0:0:0:0 | PropertyReference | true | +| reflection.kt:20:9:20:60 | Setter y3 | file:///KMutableProperty1$Setter.class:0:0:0:0 | Setter | file:///KMutableProperty1$Setter.class:0:0:0:0 | Setter | file:///Function2.class:0:0:0:0 | Function2 | true | +| reflection.kt:20:9:20:60 | Setter y3 | file:///KMutableProperty1$Setter.class:0:0:0:0 | Setter | file:///KMutableProperty1$Setter.class:0:0:0:0 | Setter | file:///KMutableProperty$Setter.class:0:0:0:0 | Setter | true | +| reflection.kt:21:9:21:50 | KFunction y4 | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:21:44:21:50 | new Function2(...) { ... } | file:///Function2.class:0:0:0:0 | Function2 | true | +| reflection.kt:21:9:21:50 | KFunction y4 | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:21:44:21:50 | new Function2(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | true | +| reflection.kt:22:9:22:48 | KMutableProperty0 y5 | file:///KMutableProperty0.class:0:0:0:0 | KMutableProperty0 | reflection.kt:22:42:22:48 | new KMutableProperty0(...) { ... } | file:///KMutableProperty0.class:0:0:0:0 | KMutableProperty0 | true | +| reflection.kt:22:9:22:48 | KMutableProperty0 y5 | file:///KMutableProperty0.class:0:0:0:0 | KMutableProperty0 | reflection.kt:22:42:22:48 | new KMutableProperty0(...) { ... } | file:///PropertyReference.class:0:0:0:0 | PropertyReference | true | +| reflection.kt:24:9:24:91 | KProperty2 prop | file:///KProperty2.class:0:0:0:0 | KProperty2 | file:///KProperty2.class:0:0:0:0 | KProperty2 | file:///Function2.class:0:0:0:0 | Function2 | true | +| reflection.kt:24:9:24:91 | KProperty2 prop | file:///KProperty2.class:0:0:0:0 | KProperty2 | file:///KProperty2.class:0:0:0:0 | KProperty2 | file:///KProperty.class:0:0:0:0 | KProperty | true | +| reflection.kt:116:9:116:44 | KFunction x | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:116:40:116:44 | new Function1(...) { ... } | file:///Function1.class:0:0:0:0 | Function1 | true | +| reflection.kt:116:9:116:44 | KFunction x | file:///KFunction.class:0:0:0:0 | KFunction | reflection.kt:116:40:116:44 | new Function1(...) { ... } | file:///FunctionReference.class:0:0:0:0 | FunctionReference | true | invocation | reflection.kt:8:17:8:24 | getName(...) | file:///KCallable.class:0:0:0:0 | getName | | reflection.kt:11:23:11:33 | get(...) | file:///KProperty1.class:0:0:0:0 | get | @@ -59,10 +59,10 @@ functionReferences | reflection.kt:154:33:154:61 | ...::... | reflection.kt:154:33:154:61 | invoke | reflection.kt:154:33:154:61 | extTakesOptionalParam | | reflection.kt:162:25:162:45 | ...::... | reflection.kt:162:25:162:45 | invoke | reflection.kt:162:25:162:45 | | propertyGetReferences -| reflection.kt:10:38:10:42 | ...::... | reflection.kt:10:38:10:42 | get | reflection.kt:33:9:33:23 | getP0 | -| reflection.kt:15:35:15:41 | ...::... | reflection.kt:15:35:15:41 | get | reflection.kt:33:9:33:23 | getP0 | -| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | get | reflection.kt:34:9:34:23 | getP1 | -| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | get | reflection.kt:34:9:34:23 | getP1 | +| reflection.kt:10:38:10:42 | ...::... | reflection.kt:10:38:10:42 | get | reflection.kt:33:9:33:14 | getP0 | +| reflection.kt:15:35:15:41 | ...::... | reflection.kt:15:35:15:41 | get | reflection.kt:33:9:33:14 | getP0 | +| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | get | reflection.kt:34:9:34:14 | getP1 | +| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | get | reflection.kt:34:9:34:14 | getP1 | | reflection.kt:50:13:50:28 | ...::... | reflection.kt:50:13:50:28 | get | reflection.kt:47:5:47:28 | getLastChar | | reflection.kt:51:13:51:28 | ...::... | reflection.kt:51:13:51:28 | get | reflection.kt:47:5:47:28 | getLastChar | | reflection.kt:67:17:67:32 | ...::... | reflection.kt:67:17:67:32 | get | file:///Class1$Generic.class:0:0:0:0 | getP2 | @@ -73,8 +73,8 @@ propertyFieldReferences | reflection.kt:71:17:71:34 | ...::... | reflection.kt:71:17:71:34 | get | file:///modules/java.base/java/lang/Integer.class:0:0:0:0 | MAX_VALUE | | reflection.kt:72:17:72:35 | ...::... | reflection.kt:72:17:72:35 | get | file:///modules/java.desktop/java/awt/Rectangle.class:0:0:0:0 | height | propertySetReferences -| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | set | reflection.kt:34:9:34:23 | setP1 | -| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | set | reflection.kt:34:9:34:23 | setP1 | +| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | set | reflection.kt:34:9:34:14 | setP1 | +| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | set | reflection.kt:34:9:34:14 | setP1 | | reflection.kt:67:17:67:32 | ...::... | reflection.kt:67:17:67:32 | set | file:///Class1$Generic.class:0:0:0:0 | setP2 | | reflection.kt:68:17:68:34 | ...::... | reflection.kt:68:17:68:34 | set | file:///Class1$Generic.class:0:0:0:0 | setP2 | | reflection.kt:109:17:109:27 | ...::... | reflection.kt:109:17:109:27 | set | reflection.kt:105:18:105:31 | setProp1 | @@ -299,9 +299,9 @@ compGenerated | reflection.kt:21:44:21:50 | new Function2(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:22:42:22:48 | new KMutableProperty0(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:24:46:24:64 | new Function1,Boolean>(...) { ... } | The class around a local function, a lambda, or a function reference | -| reflection.kt:33:9:33:23 | getP0 | Default property accessor | -| reflection.kt:34:9:34:23 | getP1 | Default property accessor | -| reflection.kt:34:9:34:23 | setP1 | Default property accessor | +| reflection.kt:33:9:33:14 | getP0 | Default property accessor | +| reflection.kt:34:9:34:14 | getP1 | Default property accessor | +| reflection.kt:34:9:34:14 | setP1 | Default property accessor | | reflection.kt:50:13:50:28 | new KProperty1(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:51:13:51:28 | new KProperty0(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:60:17:60:32 | new Function2,Integer,String>(...) { ... } | The class around a local function, a lambda, or a function reference | diff --git a/java/ql/test-kotlin1/library-tests/stmts/exprs.expected b/java/ql/test-kotlin1/library-tests/stmts/exprs.expected index da3fa828f6e6..5b425ae08b5b 100644 --- a/java/ql/test-kotlin1/library-tests/stmts/exprs.expected +++ b/java/ql/test-kotlin1/library-tests/stmts/exprs.expected @@ -24,9 +24,9 @@ | stmts.kt:14:13:14:13 | x | VarAccess | | stmts.kt:14:13:14:17 | ... < ... | LTExpr | | stmts.kt:14:17:14:17 | y | VarAccess | -| stmts.kt:15:9:15:9 | z | LocalVariableDeclExpr | +| stmts.kt:15:5:15:13 | z | LocalVariableDeclExpr | | stmts.kt:15:13:15:13 | 3 | IntegerLiteral | -| stmts.kt:17:9:17:10 | q2 | LocalVariableDeclExpr | +| stmts.kt:17:5:17:58 | q2 | LocalVariableDeclExpr | | stmts.kt:17:26:17:58 | true | BooleanLiteral | | stmts.kt:17:26:17:58 | when ... | WhenExpr | | stmts.kt:17:29:17:32 | true | BooleanLiteral | @@ -36,7 +36,7 @@ | stmts.kt:17:52:17:52 | z | VarAccess | | stmts.kt:17:52:17:56 | ...=... | AssignExpr | | stmts.kt:17:56:17:56 | 5 | IntegerLiteral | -| stmts.kt:18:9:18:10 | q3 | LocalVariableDeclExpr | +| stmts.kt:18:5:18:56 | q3 | LocalVariableDeclExpr | | stmts.kt:18:26:18:56 | true | BooleanLiteral | | stmts.kt:18:26:18:56 | when ... | WhenExpr | | stmts.kt:18:29:18:32 | true | BooleanLiteral | diff --git a/java/ql/test-kotlin1/library-tests/stmts/stmts.expected b/java/ql/test-kotlin1/library-tests/stmts/stmts.expected index a374ed7e2221..f69fa8880614 100644 --- a/java/ql/test-kotlin1/library-tests/stmts/stmts.expected +++ b/java/ql/test-kotlin1/library-tests/stmts/stmts.expected @@ -16,15 +16,15 @@ | stmts.kt:12:5:14:18 | { ... } | BlockStmt | | stmts.kt:12:8:14:5 | { ... } | BlockStmt | | stmts.kt:13:9:13:16 | return ... | ReturnStmt | -| stmts.kt:15:9:15:9 | var ...; | LocalVariableDeclStmt | -| stmts.kt:17:9:17:10 | var ...; | LocalVariableDeclStmt | +| stmts.kt:15:5:15:13 | var ...; | LocalVariableDeclStmt | +| stmts.kt:17:5:17:58 | var ...; | LocalVariableDeclStmt | | stmts.kt:17:26:17:58 | ... -> ... | WhenBranch | | stmts.kt:17:26:17:58 | ... -> ... | WhenBranch | | stmts.kt:17:35:17:43 | { ... } | BlockStmt | | stmts.kt:17:37:17:37 | ; | ExprStmt | | stmts.kt:17:50:17:58 | { ... } | BlockStmt | | stmts.kt:17:52:17:52 | ; | ExprStmt | -| stmts.kt:18:9:18:10 | var ...; | LocalVariableDeclStmt | +| stmts.kt:18:5:18:56 | var ...; | LocalVariableDeclStmt | | stmts.kt:18:26:18:56 | ... -> ... | WhenBranch | | stmts.kt:18:26:18:56 | ... -> ... | WhenBranch | | stmts.kt:18:37:18:37 | ; | ExprStmt | @@ -90,17 +90,17 @@ enclosing | stmts.kt:12:5:14:18 | { ... } | stmts.kt:2:41:20:1 | { ... } | | stmts.kt:12:8:14:5 | { ... } | stmts.kt:12:5:14:18 | do ... while (...) | | stmts.kt:13:9:13:16 | return ... | stmts.kt:12:8:14:5 | { ... } | -| stmts.kt:15:9:15:9 | var ...; | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:17:9:17:10 | var ...; | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:17:26:17:58 | ... -> ... | stmts.kt:17:9:17:10 | var ...; | -| stmts.kt:17:26:17:58 | ... -> ... | stmts.kt:17:9:17:10 | var ...; | +| stmts.kt:15:5:15:13 | var ...; | stmts.kt:2:41:20:1 | { ... } | +| stmts.kt:17:5:17:58 | var ...; | stmts.kt:2:41:20:1 | { ... } | +| stmts.kt:17:26:17:58 | ... -> ... | stmts.kt:17:5:17:58 | var ...; | +| stmts.kt:17:26:17:58 | ... -> ... | stmts.kt:17:5:17:58 | var ...; | | stmts.kt:17:35:17:43 | { ... } | stmts.kt:17:26:17:58 | ... -> ... | | stmts.kt:17:37:17:37 | ; | stmts.kt:17:35:17:43 | { ... } | | stmts.kt:17:50:17:58 | { ... } | stmts.kt:17:26:17:58 | ... -> ... | | stmts.kt:17:52:17:52 | ; | stmts.kt:17:50:17:58 | { ... } | -| stmts.kt:18:9:18:10 | var ...; | stmts.kt:2:41:20:1 | { ... } | -| stmts.kt:18:26:18:56 | ... -> ... | stmts.kt:18:9:18:10 | var ...; | -| stmts.kt:18:26:18:56 | ... -> ... | stmts.kt:18:9:18:10 | var ...; | +| stmts.kt:18:5:18:56 | var ...; | stmts.kt:2:41:20:1 | { ... } | +| stmts.kt:18:26:18:56 | ... -> ... | stmts.kt:18:5:18:56 | var ...; | +| stmts.kt:18:26:18:56 | ... -> ... | stmts.kt:18:5:18:56 | var ...; | | stmts.kt:18:37:18:37 | ; | stmts.kt:18:26:18:56 | ... -> ... | | stmts.kt:18:52:18:52 | ; | stmts.kt:18:26:18:56 | ... -> ... | | stmts.kt:19:5:19:16 | return ... | stmts.kt:2:41:20:1 | { ... } | diff --git a/java/ql/test-kotlin1/library-tests/variables/variables.expected b/java/ql/test-kotlin1/library-tests/variables/variables.expected index b826535db59c..0022c22ed8b1 100644 --- a/java/ql/test-kotlin1/library-tests/variables/variables.expected +++ b/java/ql/test-kotlin1/library-tests/variables/variables.expected @@ -1,17 +1,17 @@ #select | variables.kt:3:5:3:21 | prop | int | variables.kt:3:21:3:21 | 1 | | variables.kt:5:20:5:29 | param | int | file://:0:0:0:0 | | -| variables.kt:6:13:6:18 | int local1 | int | variables.kt:6:22:6:26 | ... + ... | -| variables.kt:8:13:8:18 | int local2 | int | variables.kt:8:22:8:26 | ... + ... | -| variables.kt:10:13:10:18 | int local3 | int | variables.kt:10:22:10:26 | param | +| variables.kt:6:9:6:26 | int local1 | int | variables.kt:6:22:6:26 | ... + ... | +| variables.kt:8:9:8:26 | int local2 | int | variables.kt:8:22:8:26 | ... + ... | +| variables.kt:10:9:10:26 | int local3 | int | variables.kt:10:22:10:26 | param | | variables.kt:15:1:15:21 | topLevel | int | variables.kt:15:21:15:21 | 1 | | variables.kt:21:11:21:18 | o | C1 | file://:0:0:0:0 | | | variables.kt:21:11:21:18 | o | C1 | variables.kt:21:11:21:18 | o | | variables.kt:28:9:28:10 | | C1 | file://:0:0:0:0 | | isFinal -| variables.kt:6:13:6:18 | int local1 | final | -| variables.kt:8:13:8:18 | int local2 | non-final | -| variables.kt:10:13:10:18 | int local3 | final | +| variables.kt:6:9:6:26 | int local1 | final | +| variables.kt:8:9:8:26 | int local2 | non-final | +| variables.kt:10:9:10:26 | int local3 | final | compileTimeConstant | variables.kt:3:5:3:21 | prop | | variables.kt:3:5:3:21 | this.prop | diff --git a/java/ql/test-kotlin1/query-tests/UnderscoreIdentifier/test.expected b/java/ql/test-kotlin1/query-tests/UnderscoreIdentifier/test.expected index 48fa4a1e4ab2..dc118062b3dc 100644 --- a/java/ql/test-kotlin1/query-tests/UnderscoreIdentifier/test.expected +++ b/java/ql/test-kotlin1/query-tests/UnderscoreIdentifier/test.expected @@ -1,7 +1,7 @@ -| Test.kt:3:13:3:13 | List l | +| Test.kt:3:9:3:31 | List l | | Test.kt:4:28:4:32 | index | | Test.kt:4:35:4:35 | p1 | -| Test.kt:6:13:6:13 | Pair p | +| Test.kt:6:9:6:26 | Pair p | | Test.kt:7:14:7:18 | int first | | Test.kt:7:26:7:26 | Pair tmp0_container | | Test.kt:8:14:8:25 | Exception _ | diff --git a/java/ql/test-kotlin2/library-tests/dataflow/foreach/C2.kt b/java/ql/test-kotlin2/library-tests/dataflow/foreach/C2.kt index 7a98abaa1101..794ab819d3dd 100644 --- a/java/ql/test-kotlin2/library-tests/dataflow/foreach/C2.kt +++ b/java/ql/test-kotlin2/library-tests/dataflow/foreach/C2.kt @@ -8,6 +8,7 @@ class C2 { val l = arrayOf(taint("a"), "") sink(l) sink(l[0]) + sink(l.get(0)) for (i in l.indices) { sink(l[i]) } @@ -15,4 +16,25 @@ class C2 { sink(s) } } + + fun test2() { + val l1 = arrayOf("") + val l2 = arrayOf("") + l1[0] = taint("a") + l2.set(0, taint("a")) + sink(l1[0]) + sink(l2[0]) + sink(l1.get(0)) + sink(l2.get(0)) + } + + fun setWrapper(l: Array, v: String) { + l.set(0, v) + } + fun test3() { + val l = arrayOf("") + setWrapper(l, taint("a")) + sink(l[0]) + sink(l.get(0)) + } } diff --git a/java/ql/test-kotlin2/library-tests/dataflow/foreach/test.expected b/java/ql/test-kotlin2/library-tests/dataflow/foreach/test.expected index 53af5d4a0c09..08b696743a4c 100644 --- a/java/ql/test-kotlin2/library-tests/dataflow/foreach/test.expected +++ b/java/ql/test-kotlin2/library-tests/dataflow/foreach/test.expected @@ -4,5 +4,12 @@ | C1.java:10:44:10:46 | "a" | C1.java:19:20:19:20 | s | | C2.kt:8:31:8:33 | "a" | C2.kt:9:14:9:14 | l | | C2.kt:8:31:8:33 | "a" | C2.kt:10:14:10:17 | ...[...] | -| C2.kt:8:31:8:33 | "a" | C2.kt:12:18:12:21 | ...[...] | -| C2.kt:8:31:8:33 | "a" | C2.kt:15:18:15:18 | s | +| C2.kt:8:31:8:33 | "a" | C2.kt:11:14:11:21 | get(...) | +| C2.kt:8:31:8:33 | "a" | C2.kt:13:18:13:21 | ...[...] | +| C2.kt:8:31:8:33 | "a" | C2.kt:16:18:16:18 | s | +| C2.kt:23:23:23:25 | "a" | C2.kt:25:14:25:18 | ...[...] | +| C2.kt:23:23:23:25 | "a" | C2.kt:27:14:27:22 | get(...) | +| C2.kt:24:25:24:27 | "a" | C2.kt:26:14:26:18 | ...[...] | +| C2.kt:24:25:24:27 | "a" | C2.kt:28:14:28:22 | get(...) | +| C2.kt:36:29:36:31 | "a" | C2.kt:37:14:37:17 | ...[...] | +| C2.kt:36:29:36:31 | "a" | C2.kt:38:14:38:21 | get(...) | diff --git a/java/ql/test-kotlin2/library-tests/literals/literals.expected b/java/ql/test-kotlin2/library-tests/literals/literals.expected index bb6f6fd47393..3cea3c83ac5b 100644 --- a/java/ql/test-kotlin2/library-tests/literals/literals.expected +++ b/java/ql/test-kotlin2/library-tests/literals/literals.expected @@ -11,16 +11,16 @@ | literals.kt:13:30:13:33 | -123 | LongLiteral | | literals.kt:14:30:14:31 | 0 | LongLiteral | | literals.kt:15:30:15:33 | 123 | LongLiteral | -| literals.kt:16:31:16:34 | 123 | LongLiteral | +| literals.kt:16:30:16:34 | -123 | LongLiteral | | literals.kt:17:30:17:33 | 15 | LongLiteral | | literals.kt:18:30:18:39 | 11 | LongLiteral | | literals.kt:19:30:19:38 | 1234567 | LongLiteral | | literals.kt:20:32:20:35 | 0.0 | FloatLiteral | | literals.kt:21:32:21:37 | 123.4 | FloatLiteral | -| literals.kt:22:33:22:38 | 123.4 | FloatLiteral | +| literals.kt:22:32:22:38 | -123.4 | FloatLiteral | | literals.kt:23:34:23:36 | 0.0 | DoubleLiteral | | literals.kt:24:34:24:38 | 123.4 | DoubleLiteral | -| literals.kt:25:35:25:39 | 123.4 | DoubleLiteral | +| literals.kt:25:34:25:39 | -123.4 | DoubleLiteral | | literals.kt:26:30:26:32 | c | CharacterLiteral | | literals.kt:27:30:27:33 | \n | CharacterLiteral | | literals.kt:28:34:28:35 | "" | StringLiteral | diff --git a/java/ql/test-kotlin2/library-tests/ministdlib/MiniStdLib.kt b/java/ql/test-kotlin2/library-tests/ministdlib/MiniStdLib.kt new file mode 100644 index 000000000000..1aaba910fa2b --- /dev/null +++ b/java/ql/test-kotlin2/library-tests/ministdlib/MiniStdLib.kt @@ -0,0 +1,47 @@ +package kotlin + +/* +This is a mini standard library replacement, to make it easy to write +very small tests that create very small databases. + +If you define a class, then you will need to also define any members that +compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrBuiltInsOverDescriptors.kt +expects (e.g. with findFunctions(...).first) to exist. +*/ + +public open class Any { + fun toString(): String { return this.toString() } + open operator fun equals(other: Any?): Boolean { return this.equals(other) } +} + +public class String { + operator fun plus(other: Any?): String { return this.plus(other) } +} + +public class Boolean { + operator fun not(): Boolean { return this.not() } +} + +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 { +} + +// Diagnostic Matches: % Can't find java.lang.Boolean +// Diagnostic Matches: % Can't find java.lang.Byte +// Diagnostic Matches: % Can't find java.lang.Character +// Diagnostic Matches: % Can't find java.lang.Double +// Diagnostic Matches: % Can't find java.lang.Float +// Diagnostic Matches: % Can't find java.lang.Integer +// Diagnostic Matches: % Can't find java.lang.Long +// Diagnostic Matches: % Can't find java.lang.Short +// Diagnostic Matches: % Can't find java.lang.Void +// Diagnostic Matches: % Can't find kotlin.UByte +// Diagnostic Matches: % Can't find kotlin.UInt +// Diagnostic Matches: % Can't find kotlin.ULong +// Diagnostic Matches: % Can't find kotlin.UShort diff --git a/java/ql/test-kotlin2/library-tests/ministdlib/MyClass.kt b/java/ql/test-kotlin2/library-tests/ministdlib/MyClass.kt new file mode 100644 index 000000000000..eaa7e450bbb1 --- /dev/null +++ b/java/ql/test-kotlin2/library-tests/ministdlib/MyClass.kt @@ -0,0 +1 @@ +class MyClass {} diff --git a/java/ql/test-kotlin2/library-tests/ministdlib/classes.expected b/java/ql/test-kotlin2/library-tests/ministdlib/classes.expected new file mode 100644 index 000000000000..36aaa6b629c4 --- /dev/null +++ b/java/ql/test-kotlin2/library-tests/ministdlib/classes.expected @@ -0,0 +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:30:1 | Int | +| MiniStdLib.kt:32:1:33:1 | Unit | +| MyClass.kt:1:1:1:16 | MyClass | +| file://:0:0:0:0 | FakeKotlinClass | diff --git a/java/ql/test-kotlin2/library-tests/ministdlib/classes.ql b/java/ql/test-kotlin2/library-tests/ministdlib/classes.ql new file mode 100644 index 000000000000..86c654ea9860 --- /dev/null +++ b/java/ql/test-kotlin2/library-tests/ministdlib/classes.ql @@ -0,0 +1,4 @@ +import java + +from Class c +select c diff --git a/java/ql/test-kotlin2/library-tests/ministdlib/options b/java/ql/test-kotlin2/library-tests/ministdlib/options new file mode 100644 index 000000000000..6063ff96d813 --- /dev/null +++ b/java/ql/test-kotlin2/library-tests/ministdlib/options @@ -0,0 +1 @@ +codeql-extractor-kotlin-options: -no-jdk -no-reflect -no-stdlib -Xallow-kotlin-package -language-version 2.0 diff --git a/java/ql/test-kotlin2/options b/java/ql/test-kotlin2/options new file mode 100644 index 000000000000..3492bf52d991 --- /dev/null +++ b/java/ql/test-kotlin2/options @@ -0,0 +1 @@ +codeql-extractor-kotlin-options: -language-version 2.0