[JVM] Implement new inlined variable naming format

^KT-65478 fixed
This commit is contained in:
Nikita Nazarov
2023-09-18 16:27:46 +02:00
committed by Alexander Udalov
parent 9ea775cbed
commit 407448d8e3
104 changed files with 88125 additions and 92 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.codegen package org.jetbrains.kotlin.codegen
import org.jetbrains.kotlin.codegen.inline.InlineScopesGenerator
import org.jetbrains.kotlin.codegen.inline.NameGenerator import org.jetbrains.kotlin.codegen.inline.NameGenerator
import org.jetbrains.kotlin.codegen.inline.ReifiedTypeInliner.Companion.putReifiedOperationMarker import org.jetbrains.kotlin.codegen.inline.ReifiedTypeInliner.Companion.putReifiedOperationMarker
import org.jetbrains.kotlin.codegen.inline.ReifiedTypeInliner.OperationKind import org.jetbrains.kotlin.codegen.inline.ReifiedTypeInliner.OperationKind
@@ -36,6 +37,8 @@ interface BaseExpressionCodegen {
val lastLineNumber: Int val lastLineNumber: Int
val inlineScopesGenerator: InlineScopesGenerator?
fun propagateChildReifiedTypeParametersUsages(reifiedTypeParametersUsages: ReifiedTypeParametersUsages) fun propagateChildReifiedTypeParametersUsages(reifiedTypeParametersUsages: ReifiedTypeParametersUsages)
fun markLineNumberAfterInlineIfNeeded(registerLineNumberAfterwards: Boolean) fun markLineNumberAfterInlineIfNeeded(registerLineNumberAfterwards: Boolean)
@@ -43,6 +43,7 @@ import org.jetbrains.kotlin.codegen.when.SwitchCodegen;
import org.jetbrains.kotlin.codegen.when.SwitchCodegenProvider; import org.jetbrains.kotlin.codegen.when.SwitchCodegenProvider;
import org.jetbrains.kotlin.config.ApiVersion; import org.jetbrains.kotlin.config.ApiVersion;
import org.jetbrains.kotlin.config.JVMAssertionsMode; import org.jetbrains.kotlin.config.JVMAssertionsMode;
import org.jetbrains.kotlin.config.JVMConfigurationKeys;
import org.jetbrains.kotlin.config.LanguageFeature; import org.jetbrains.kotlin.config.LanguageFeature;
import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor; import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor;
@@ -131,6 +132,8 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
private final TailRecursionCodegen tailRecursionCodegen; private final TailRecursionCodegen tailRecursionCodegen;
public final CallGenerator defaultCallGenerator = new CallGenerator.DefaultCallGenerator(this); public final CallGenerator defaultCallGenerator = new CallGenerator.DefaultCallGenerator(this);
private final SwitchCodegenProvider switchCodegenProvider; private final SwitchCodegenProvider switchCodegenProvider;
private final InlineScopesGenerator inlineScopesGenerator;
private final TypeSystemCommonBackendContext typeSystem; private final TypeSystemCommonBackendContext typeSystem;
private final Stack<BlockStackElement> blockStackElements = new Stack<>(); private final Stack<BlockStackElement> blockStackElements = new Stack<>();
@@ -165,6 +168,9 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
this.tailRecursionCodegen = new TailRecursionCodegen(context, this, this.v, state); this.tailRecursionCodegen = new TailRecursionCodegen(context, this, this.v, state);
this.switchCodegenProvider = new SwitchCodegenProvider(this); this.switchCodegenProvider = new SwitchCodegenProvider(this);
this.typeSystem = new ClassicTypeSystemContextImpl(state.getModule().getBuiltIns()); this.typeSystem = new ClassicTypeSystemContextImpl(state.getModule().getBuiltIns());
boolean inlineScopesEnabled = state.getConfiguration().getBoolean(JVMConfigurationKeys.USE_INLINE_SCOPES_NUMBERS);
this.inlineScopesGenerator = inlineScopesEnabled ? new InlineScopesGenerator() : null;
} }
@Nullable @Nullable
@@ -1569,6 +1575,11 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
return myLastLineNumber; return myLastLineNumber;
} }
@Override
public InlineScopesGenerator getInlineScopesGenerator() {
return inlineScopesGenerator;
}
private boolean doFinallyOnReturn(@NotNull Label afterReturnLabel, @NotNull List<TryBlockStackElement> nestedTryBlocksWithoutFinally) { private boolean doFinallyOnReturn(@NotNull Label afterReturnLabel, @NotNull List<TryBlockStackElement> nestedTryBlocksWithoutFinally) {
if(!blockStackElements.isEmpty()) { if(!blockStackElements.isEmpty()) {
BlockStackElement stackElement = blockStackElements.peek(); BlockStackElement stackElement = blockStackElements.peek();
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.codegen.inline.coroutines.CoroutineTransformer
import org.jetbrains.kotlin.codegen.inline.coroutines.FOR_INLINE_SUFFIX import org.jetbrains.kotlin.codegen.inline.coroutines.FOR_INLINE_SUFFIX
import org.jetbrains.kotlin.codegen.serialization.JvmCodegenStringTable import org.jetbrains.kotlin.codegen.serialization.JvmCodegenStringTable
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapperBase import org.jetbrains.kotlin.codegen.state.KotlinTypeMapperBase
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.load.java.JvmAnnotationNames import org.jetbrains.kotlin.load.java.JvmAnnotationNames
import org.jetbrains.kotlin.load.kotlin.FileBasedKotlinClass import org.jetbrains.kotlin.load.kotlin.FileBasedKotlinClass
@@ -325,13 +326,25 @@ class AnonymousObjectTransformer(
transformationInfo.capturedLambdasToInline, parentRemapper, isConstructor transformationInfo.capturedLambdasToInline, parentRemapper, isConstructor
) )
val reifiedTypeParametersUsages = if (inliningContext.shouldReifyTypeParametersInObjects) val reifiedTypeParametersUsages =
inliningContext.root.inlineMethodReifier.reifyInstructions(sourceNode) if (inliningContext.shouldReifyTypeParametersInObjects) {
else null inliningContext.root.inlineMethodReifier.reifyInstructions(sourceNode)
} else {
null
}
val inlineScopesGenerator =
if (state.configuration.getBoolean(JVMConfigurationKeys.USE_INLINE_SCOPES_NUMBERS)) {
InlineScopesGenerator()
} else {
null
}
val result = MethodInliner( val result = MethodInliner(
sourceNode, sourceNode,
parameters, parameters,
inliningContext.subInline(transformationInfo.nameGenerator), inliningContext.subInline(
transformationInfo.nameGenerator,
inlineScopesGenerator = inlineScopesGenerator
),
remapper, remapper,
isSameModule, isSameModule,
{ "Transformer for " + transformationInfo.oldClassName }, { "Transformer for " + transformationInfo.oldClassName },
@@ -98,12 +98,15 @@ abstract class InlineCodegen<out T : BaseExpressionCodegen>(
val info = RootInliningContext( val info = RootInliningContext(
state, codegen.inlineNameGenerator.subGenerator(jvmSignature.asmMethod.name), state, codegen.inlineNameGenerator.subGenerator(jvmSignature.asmMethod.name),
sourceCompiler, sourceCompiler.inlineCallSiteInfo, reifiedTypeInliner, typeParameterMappings sourceCompiler, sourceCompiler.inlineCallSiteInfo, reifiedTypeInliner, typeParameterMappings,
codegen.inlineScopesGenerator
) )
val sourceMapper = sourceCompiler.sourceMapper val sourceMapper = sourceCompiler.sourceMapper
val sourceInfo = sourceMapper.sourceInfo!! val sourceInfo = sourceMapper.sourceInfo!!
val callSite = SourcePosition(codegen.lastLineNumber, sourceInfo.sourceFileName!!, sourceInfo.pathOrCleanFQN) val lastLineNumber = codegen.lastLineNumber
val callSite = SourcePosition(lastLineNumber, sourceInfo.sourceFileName!!, sourceInfo.pathOrCleanFQN)
info.inlineScopesGenerator?.apply { currentCallSiteLineNumber = lastLineNumber }
val inliner = MethodInliner( val inliner = MethodInliner(
node, parameters, info, FieldRemapper(null, null, parameters), sourceCompiler.isCallInsideSameModuleAsCallee, node, parameters, info, FieldRemapper(null, null, parameters), sourceCompiler.isCallInsideSameModuleAsCallee,
{ "Method inlining " + sourceCompiler.callElementText }, { "Method inlining " + sourceCompiler.callElementText },
@@ -0,0 +1,413 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.codegen.inline
import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.org.objectweb.asm.Label
import org.jetbrains.org.objectweb.asm.tree.LabelNode
import org.jetbrains.org.objectweb.asm.tree.LineNumberNode
import org.jetbrains.org.objectweb.asm.tree.LocalVariableNode
import org.jetbrains.org.objectweb.asm.tree.MethodNode
class InlineScopesGenerator {
var inlinedScopes = 0
var currentCallSiteLineNumber = 0
private class InlineScopeNode(
// The marker variable is only null for the root node
val markerVariable: LocalVariableNode?,
val scopeNumber: Int,
var inlineNesting: Int,
val parent: InlineScopeNode?
) {
var callSiteLineNumber: Int? = null
var surroundingScopeNumber: Int? = null
val variables = mutableListOf<LocalVariableNode>()
val children = mutableListOf<InlineScopeNode>()
val isRoot: Boolean
get() = parent == null
init {
parent?.children?.add(this)
}
}
private abstract inner class VariableRenamer {
abstract fun computeInlineScopeInfo(node: InlineScopeNode)
abstract fun LocalVariableNode.belongsToInlineScope(node: InlineScopeNode): Boolean
open fun shouldSkipVariable(variable: LocalVariableNode): Boolean = false
open fun inlineNesting(): Int = -1
fun renameVariables(methodNode: MethodNode): Int {
val rootNode = computeInlineScopesTree(methodNode)
return renameVariables(rootNode)
}
private fun computeInlineScopesTree(methodNode: MethodNode): InlineScopeNode {
val rootNode = InlineScopeNode(null, 0, inlineNesting(), null)
val localVariables = methodNode.localVariables ?: return rootNode
// Inline function and lambda parameters are introduced before the corresponding inline marker variable,
// so we need to keep track of them to assign to the correct scope later.
val variablesWithNotMatchingDepth = mutableListOf<LocalVariableNode>()
val labelToIndex = methodNode.getLabelToIndexMap()
val sortedVariables = localVariables.sortedBy { labelToIndex[it.start.label] }
var seenInlineScopesNumber = 0
var currentNode = rootNode
for (variable in sortedVariables) {
currentNode = currentNode.findClosestSurroundingScope(variable, labelToIndex)
val name = variable.name
if (isFakeLocalVariableForInline(name)) {
seenInlineScopesNumber += 1
val newNode = InlineScopeNode(variable, seenInlineScopesNumber, currentNode.inlineNesting, currentNode)
computeInlineScopeInfo(newNode)
currentNode = newNode
currentNode.variables.addAll(variablesWithNotMatchingDepth)
variablesWithNotMatchingDepth.clear()
} else if (!currentNode.isRoot || !shouldSkipVariable(variable)) {
if (variable.belongsToInlineScope(currentNode)) {
currentNode.variables.add(variable)
} else {
variablesWithNotMatchingDepth.add(variable)
}
}
}
return rootNode
}
private fun renameVariables(rootNode: InlineScopeNode): Int {
var seenInlineScopesNumber = 0
val nodeStack = mutableListOf<InlineScopeNode>()
nodeStack.addAll(rootNode.children)
while (nodeStack.isNotEmpty()) {
val node = nodeStack.removeLast()
seenInlineScopesNumber += 1
with(node) {
markerVariable!!.name = computeNewVariableName(
markerVariable.name,
scopeNumber + inlinedScopes,
callSiteLineNumber,
surroundingScopeNumber
)
}
for (variable in node.variables) {
variable.name = computeNewVariableName(
variable.name,
node.scopeNumber + inlinedScopes,
null,
null
)
}
nodeStack.addAll(node.children)
}
return seenInlineScopesNumber
}
private fun InlineScopeNode.findClosestSurroundingScope(
variable: LocalVariableNode,
labelToIndex: Map<Label, Int>
): InlineScopeNode {
fun LocalVariableNode.contains(other: LocalVariableNode): Boolean {
val startIndex = labelToIndex[start.label] ?: return false
val endIndex = labelToIndex[end.label] ?: return false
val otherStartIndex = labelToIndex[other.start.label] ?: return false
val otherEndIndex = labelToIndex[other.end.label] ?: return false
return startIndex < otherStartIndex && endIndex >= otherEndIndex
}
var node = this
while (!node.isRoot && !node.markerVariable!!.contains(variable)) {
node = node.parent!!
}
return node
}
}
fun addInlineScopesInfo(node: MethodNode, isRegeneratingAnonymousObject: Boolean) {
val localVariables = node.localVariables
if (localVariables?.isEmpty() == true) {
return
}
val markerVariablesWithoutScopeInfoNum = localVariables.count {
isFakeLocalVariableForInline(it.name) && !it.name.contains(INLINE_SCOPE_NUMBER_SEPARATOR)
}
when {
isRegeneratingAnonymousObject -> {
if (markerVariablesWithoutScopeInfoNum > 0) {
addInlineScopesInfoFromIVSuffixesWhenRegeneratingAnonymousObject(node)
}
}
// When inlining a function its marker variable won't contain any scope numbers yet.
// But if there are more than one marker variable like this, it means that we
// are inlining the code produced by the old compiler versions, where inline scopes
// have not been introduced.
markerVariablesWithoutScopeInfoNum == 1 ->
addInlineScopesInfoFromScopeNumbers(node)
else ->
addInlineScopesInfoFromIVSuffixes(node)
}
}
private fun addInlineScopesInfoFromScopeNumbers(node: MethodNode) {
val renamer = object : VariableRenamer() {
override fun computeInlineScopeInfo(node: InlineScopeNode) {
val name = node.markerVariable!!.name
val scopeNumber = node.scopeNumber
val info = name.getInlineScopeInfo()
node.inlineNesting = info?.scopeNumber ?: 0
node.callSiteLineNumber =
if (scopeNumber == 1) {
currentCallSiteLineNumber
} else {
info?.callSiteLineNumber ?: 0
}
if (name.isInlineLambdaName) {
val surroundingScopeNumber = info?.surroundingScopeNumber
node.surroundingScopeNumber =
when {
// The first encountered inline scope belongs to the lambda, which means
// that its surrounding scope is the function where the lambda is being inlined to.
scopeNumber == 1 -> 0
// Every lambda that is already inlined must have a surrounding scope number.
// If it doesn't, then it means that we are inlining the code compiled by
// the older versions of the Kotlin compiler, where surrounding scope numbers
// haven't been introduced yet.
surroundingScopeNumber != null -> surroundingScopeNumber + inlinedScopes + 1
// This situation shouldn't happen, so add invalid info here
else -> -1
}
}
}
override fun LocalVariableNode.belongsToInlineScope(node: InlineScopeNode): Boolean {
val scopeNumber = name.getInlineScopeInfo()?.scopeNumber
val oldScopeNumberOfCurrentMarkerVariable = node.inlineNesting
if (scopeNumber != null) {
return scopeNumber == oldScopeNumberOfCurrentMarkerVariable
}
return !node.isRoot
}
}
inlinedScopes += renamer.renameVariables(node)
}
private fun addInlineScopesInfoFromIVSuffixes(node: MethodNode) {
val labelToLineNumber = node.getLabelToLineNumberMap()
val renamer = object : VariableRenamer() {
override fun computeInlineScopeInfo(node: InlineScopeNode) {
val variable = node.markerVariable!!
val name = variable.name
val ivDepth = node.inlineNesting
val scopeNumber = node.scopeNumber
node.inlineNesting =
if (name.isInlineLambdaName) {
getInlineDepth(name)
} else {
ivDepth + 1
}
node.callSiteLineNumber =
if (scopeNumber == 1) {
currentCallSiteLineNumber
} else {
// When inlining from the code compiled by the old compiler versions,
// the marker variable will not contain the call site line number.
// In this case we will take the line number of the variable start offset
// as the call site line number.
labelToLineNumber[variable.start.label] ?: 0
}
if (name.isInlineLambdaName) {
node.surroundingScopeNumber = computeSurroundingScopeNumber(node)
}
}
override fun LocalVariableNode.belongsToInlineScope(node: InlineScopeNode): Boolean =
!node.isRoot && getInlineDepth(name) == node.inlineNesting
}
inlinedScopes += renamer.renameVariables(node)
}
private fun addInlineScopesInfoFromIVSuffixesWhenRegeneratingAnonymousObject(node: MethodNode) {
val labelToLineNumber = node.getLabelToLineNumberMap()
// This renamer is slightly different from the one we used when computing inline scopes from the
// $iv suffixes. Here no function is being inlined, so the base depth in $iv suffixes is equal to 0.
// When we meet the first marker variable, it should have its depth equal to 1. Apart from that,
// when calculating call site line numbers, we always pick the line number of the marker variable
// start offset and not rely on the `currentCallSiteLineNumber` field. Also, when computing surrounding
// scope numbers we assign surrounding scope 0 (that represents the top frame) to inline lambda
// marker variables that don't have a surrounding scope.
val renamer = object : VariableRenamer() {
// Here inline nesting means depth in $iv suffixes.
// On contrary with the situation when we are inlining a function,
// here we won't meet a marker variable that represents the method node.
// When we meet the first marker variable, it should have depth equal to 1.
override fun inlineNesting(): Int = 0
override fun shouldSkipVariable(variable: LocalVariableNode): Boolean =
!variable.name.contains(INLINE_FUN_VAR_SUFFIX)
override fun computeInlineScopeInfo(node: InlineScopeNode) {
val variable = node.markerVariable!!
val ivDepth = node.inlineNesting
val name = variable.name
node.inlineNesting =
if (name.isInlineLambdaName) {
getInlineDepth(name)
} else {
ivDepth + 1
}
node.callSiteLineNumber = labelToLineNumber[variable.start.label] ?: 0
if (name.isInlineLambdaName) {
node.surroundingScopeNumber = computeSurroundingScopeNumber(node)
}
}
override fun LocalVariableNode.belongsToInlineScope(node: InlineScopeNode): Boolean =
!node.isRoot && getInlineDepth(name) == node.inlineNesting
}
renamer.renameVariables(node)
}
private fun computeSurroundingScopeNumber(currentNode: InlineScopeNode): Int {
val scopeNumber = currentNode.scopeNumber
val currentIVDepth = currentNode.inlineNesting
if (scopeNumber == 1) {
return 0
}
var surroundingScopeNumber: Int? = null
var node = currentNode.parent
while (node != null && !node.isRoot) {
if (node.inlineNesting == currentIVDepth) {
surroundingScopeNumber = node.scopeNumber
break
}
node = node.parent
}
return surroundingScopeNumber?.plus(inlinedScopes) ?: 0
}
private fun computeNewVariableName(
name: String,
scopeNumber: Int,
callSiteLineNumber: Int?,
surroundingScopeNumber: Int?
): String {
val prefix = name.replace(INLINE_FUN_VAR_SUFFIX, "").dropInlineScopeInfo()
return buildString {
append(prefix)
append(INLINE_SCOPE_NUMBER_SEPARATOR)
append(scopeNumber)
if (callSiteLineNumber != null) {
append(INLINE_SCOPE_NUMBER_SEPARATOR)
append(callSiteLineNumber)
if (surroundingScopeNumber != null) {
append(INLINE_SCOPE_NUMBER_SEPARATOR)
append(surroundingScopeNumber)
}
}
}
}
}
fun updateCallSiteLineNumber(name: String, lineNumberMapping: Map<Int, Int>): String =
updateCallSiteLineNumber(name) { lineNumberMapping[it] ?: it }
fun updateCallSiteLineNumber(name: String, newLineNumber: Int): String =
updateCallSiteLineNumber(name) { newLineNumber }
private fun updateCallSiteLineNumber(name: String, calculate: (Int) -> Int): String {
val (scopeNumber, callSiteLineNumber, surroundingScopeNumber) = name.getInlineScopeInfo() ?: return name
if (callSiteLineNumber == null) {
return name
}
val newLineNumber = calculate(callSiteLineNumber)
if (newLineNumber == callSiteLineNumber) {
return name
}
val newName = name
.dropInlineScopeInfo()
.addScopeInfo(scopeNumber)
.addScopeInfo(newLineNumber)
if (surroundingScopeNumber == null) {
return newName
}
return newName.addScopeInfo(surroundingScopeNumber)
}
internal fun MethodNode.getLabelToIndexMap(): Map<Label, Int> =
instructions.filterIsInstance<LabelNode>()
.withIndex()
.associate { (index, labelNode) ->
labelNode.label to index
}
private fun MethodNode.getLabelToLineNumberMap(): Map<Label, Int> {
val result = mutableMapOf<Label, Int>()
var currentLineNumber = 0
for (insn in instructions) {
if (insn is LineNumberNode) {
currentLineNumber = insn.line
} else if (insn is LabelNode) {
result[insn.label] = currentLineNumber
}
}
return result
}
fun String.addScopeInfo(number: Int): String =
"$this$INLINE_SCOPE_NUMBER_SEPARATOR$number"
private fun getInlineDepth(variableName: String): Int {
var endIndex = variableName.length
var depth = 0
val suffixLen = INLINE_FUN_VAR_SUFFIX.length
while (endIndex >= suffixLen) {
if (variableName.substring(endIndex - suffixLen, endIndex) != INLINE_FUN_VAR_SUFFIX) {
break
}
depth++
endIndex -= suffixLen
}
return depth
}
private val String.isInlineLambdaName: Boolean
get() = startsWith(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_ARGUMENT)
@@ -14,9 +14,11 @@ class RootInliningContext(
val sourceCompilerForInline: SourceCompilerForInline, val sourceCompilerForInline: SourceCompilerForInline,
override val callSiteInfo: InlineCallSiteInfo, override val callSiteInfo: InlineCallSiteInfo,
val inlineMethodReifier: ReifiedTypeInliner<*>, val inlineMethodReifier: ReifiedTypeInliner<*>,
typeParameterMappings: TypeParameterMappings<*> typeParameterMappings: TypeParameterMappings<*>,
inlineScopesGenerator: InlineScopesGenerator?
) : InliningContext( ) : InliningContext(
null, state, nameGenerator, TypeRemapper.createRoot(typeParameterMappings), null, false null, state, nameGenerator, TypeRemapper.createRoot(typeParameterMappings),
null, false, inlineScopesGenerator
) )
class RegeneratedClassContext( class RegeneratedClassContext(
@@ -28,7 +30,7 @@ class RegeneratedClassContext(
override val callSiteInfo: InlineCallSiteInfo, override val callSiteInfo: InlineCallSiteInfo,
override val transformationInfo: TransformationInfo override val transformationInfo: TransformationInfo
) : InliningContext( ) : InliningContext(
parent, state, nameGenerator, typeRemapper, lambdaInfo, true parent, state, nameGenerator, typeRemapper, lambdaInfo, true, null
) { ) {
val continuationBuilders: MutableMap<String, ClassBuilder> = hashMapOf() val continuationBuilders: MutableMap<String, ClassBuilder> = hashMapOf()
} }
@@ -39,7 +41,8 @@ open class InliningContext(
val nameGenerator: NameGenerator, val nameGenerator: NameGenerator,
val typeRemapper: TypeRemapper, val typeRemapper: TypeRemapper,
val lambdaInfo: LambdaInfo?, val lambdaInfo: LambdaInfo?,
val classRegeneration: Boolean val classRegeneration: Boolean,
val inlineScopesGenerator: InlineScopesGenerator?
) { ) {
val isInliningLambda val isInliningLambda
get() = lambdaInfo != null get() = lambdaInfo != null
@@ -85,7 +88,8 @@ open class InliningContext(
if (state.isIrBackend) if (state.isIrBackend)
false // Do not regenerate objects in lambdas inlined into regenerated objects unless needed for some other reason. false // Do not regenerate objects in lambdas inlined into regenerated objects unless needed for some other reason.
else else
classRegeneration classRegeneration,
inlineScopesGenerator
) )
fun subInlineWithClassRegeneration( fun subInlineWithClassRegeneration(
@@ -103,7 +107,8 @@ open class InliningContext(
generator: NameGenerator, generator: NameGenerator,
additionalTypeMappings: Map<String, String?> = emptyMap(), additionalTypeMappings: Map<String, String?> = emptyMap(),
lambdaInfo: LambdaInfo? = this.lambdaInfo, lambdaInfo: LambdaInfo? = this.lambdaInfo,
classRegeneration: Boolean = this.classRegeneration classRegeneration: Boolean = this.classRegeneration,
inlineScopesGenerator: InlineScopesGenerator? = null
): InliningContext { ): InliningContext {
val isInliningLambda = lambdaInfo != null val isInliningLambda = lambdaInfo != null
return InliningContext( return InliningContext(
@@ -114,7 +119,7 @@ open class InliningContext(
//root inline lambda //root inline lambda
isInliningLambda && !this.isInliningLambda isInliningLambda && !this.isInliningLambda
), ),
lambdaInfo, classRegeneration lambdaInfo, classRegeneration, inlineScopesGenerator
) )
} }
@@ -156,13 +156,25 @@ class MethodInliner(
val fakeContinuationName = CoroutineTransformer.findFakeContinuationConstructorClassName(node) val fakeContinuationName = CoroutineTransformer.findFakeContinuationConstructorClassName(node)
val markerShift = calcMarkerShift(parameters, node) val markerShift = calcMarkerShift(parameters, node)
var currentLineNumber = if (isInlineOnlyMethod) sourceMapper.callSite!!.line else -1 var currentLineNumber = if (isInlineOnlyMethod) sourceMapper.callSite!!.line else -1
val lineNumberMapping = mutableMapOf<Int, Int>()
val lambdaInliner = object : InlineAdapter(remappingMethodAdapter, parameters.argsSizeOnStack, sourceMapper) { val lambdaInliner = object : InlineAdapter(remappingMethodAdapter, parameters.argsSizeOnStack, sourceMapper) {
private var transformationInfo: TransformationInfo? = null private var transformationInfo: TransformationInfo? = null
private var currentLabel: Label? = null
override fun visitLabel(label: Label?) {
currentLabel = label
super.visitLabel(label)
}
override fun visitLineNumber(line: Int, start: Label) { override fun visitLineNumber(line: Int, start: Label) {
if (!isInlineOnlyMethod) { if (!isInlineOnlyMethod) {
currentLineNumber = line currentLineNumber = line
} }
if (GENERATE_SMAP) {
lineNumberMapping[line] = sourceMapper.mapLineNumber(line)
}
super.visitLineNumber(line, start) super.visitLineNumber(line, start)
} }
@@ -303,9 +315,38 @@ class MethodInliner(
) )
val varRemapper = LocalVarRemapper(lambdaParameters, valueParamShift) val varRemapper = LocalVarRemapper(lambdaParameters, valueParamShift)
val inlineScopesGenerator = inliningContext.inlineScopesGenerator
val label = currentLabel
// When regenerating anonymous objects we may inline a crossinline lambda before some
// already inlined functions. For these functions their scope numbers should be incremented.
// We also need to temporarily increment the already inlined scopes number by the number of
// inline marker variables that we have found before the crossinline lambda call to assign
// the scope number for this lambda correctly.
val inlineScopeNumberIncrement =
if (inlineScopesGenerator != null && label != null && isRegeneratingAnonymousObject()) {
incrementScopeNumbersOfVariables(node, label)
} else {
0
}
inlineScopesGenerator?.apply {
inlinedScopes += inlineScopeNumberIncrement
currentCallSiteLineNumber =
if (isInlineOnlyMethod) {
currentLineNumber
} else {
sourceMapper.mapLineNumber(currentLineNumber)
}
}
//TODO add skipped this and receiver //TODO add skipped this and receiver
val lambdaResult = val lambdaResult =
inliner.doInline(localVariablesSorter, varRemapper, true, info.returnLabels, invokeCall.finallyDepthShift) inliner.doInline(localVariablesSorter, varRemapper, true, info.returnLabels, invokeCall.finallyDepthShift)
inlineScopesGenerator?.apply { inlinedScopes -= inlineScopeNumberIncrement }
result.mergeWithNotChangeInfo(lambdaResult) result.mergeWithNotChangeInfo(lambdaResult)
result.reifiedTypeParametersUsages.mergeAll(lambdaResult.reifiedTypeParametersUsages) result.reifiedTypeParametersUsages.mergeAll(lambdaResult.reifiedTypeParametersUsages)
result.reifiedTypeParametersUsages.mergeAll(info.reifiedTypeParametersUsages) result.reifiedTypeParametersUsages.mergeAll(info.reifiedTypeParametersUsages)
@@ -386,9 +427,46 @@ class MethodInliner(
node.accept(lambdaInliner) node.accept(lambdaInliner)
surroundInvokesWithSuspendMarkersIfNeeded(resultNode) surroundInvokesWithSuspendMarkersIfNeeded(resultNode)
if (inliningContext.inlineScopesGenerator != null) {
updateCallSiteLineNumbers(resultNode, node, lineNumberMapping)
}
return resultNode return resultNode
} }
private fun updateCallSiteLineNumbers(resultNode: MethodNode, inlinedNode: MethodNode, lineNumberMapping: Map<Int, Int>) {
val inlinedNodeLocalVariables = inlinedNode.localVariables ?: return
val resultNodeLocalVariables = resultNode.localVariables ?: return
if (inlinedNodeLocalVariables.isEmpty() || resultNodeLocalVariables.isEmpty()) {
return
}
val markerVariablesFromInlinedNode = inlinedNodeLocalVariables.filter { isFakeLocalVariableForInline(it.name) }
if (markerVariablesFromInlinedNode.isEmpty()) {
return
}
val markerVariableNamesFromInlinedNode = markerVariablesFromInlinedNode.map { it.name }.toMutableSet()
// When updating the call site line numbers, we need to skip the marker variable of the inlined node - it has
// already been assigned a correct call site line number during inlining. However, when regenerating anonymous objects,
// the inliner copies the bodies of the regenerated methods and no marker variables are introduced during this process.
// So in case with anonymous object regeneration we don't have to skip anything.
if (!isRegeneratingAnonymousObject()) {
val labelToIndex = inlinedNode.getLabelToIndexMap()
val markerVariableOfInlinedNode = markerVariablesFromInlinedNode.sortedBy { labelToIndex[it.start.label] }.first()
markerVariableNamesFromInlinedNode.remove(markerVariableOfInlinedNode.name)
}
for (variable in resultNodeLocalVariables) {
val name = variable.name
if (isFakeLocalVariableForInline(name) && name in markerVariableNamesFromInlinedNode) {
variable.name = updateCallSiteLineNumber(name, lineNumberMapping)
}
}
}
private fun prepareNode(node: MethodNode, finallyDeepShift: Int): MethodNode { private fun prepareNode(node: MethodNode, finallyDeepShift: Int): MethodNode {
node.instructions.resetLabels() node.instructions.resetLabels()
@@ -414,6 +492,8 @@ class MethodInliner(
node.signature, node.exceptions?.toTypedArray() node.signature, node.exceptions?.toTypedArray()
) )
inliningContext.inlineScopesGenerator?.addInlineScopesInfo(node, isRegeneratingAnonymousObject())
val transformationVisitor = object : InlineMethodInstructionAdapter(transformedNode) { val transformationVisitor = object : InlineMethodInstructionAdapter(transformedNode) {
private val GENERATE_DEBUG_INFO = GENERATE_SMAP && !isInlineOnlyMethod private val GENERATE_DEBUG_INFO = GENERATE_SMAP && !isInlineOnlyMethod
@@ -485,13 +565,29 @@ class MethodInliner(
val isInlineFunctionMarker = name.startsWith(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_FUNCTION) val isInlineFunctionMarker = name.startsWith(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_FUNCTION)
val newName = when { val newName = when {
inliningContext.isRoot && !isInlineFunctionMarker -> { inliningContext.isRoot && !isInlineFunctionMarker -> {
val namePrefix = if (name == AsmUtil.THIS) AsmUtil.INLINE_DECLARATION_SITE_THIS else name if (inliningContext.inlineScopesGenerator != null) {
namePrefix + INLINE_FUN_VAR_SUFFIX calculateNewNameUsingScopeNumbers(name)
} else {
calculateNewNameUsingTheOldScheme(name)
}
} }
else -> name else -> name
} }
super.visitLocalVariable(newName, desc, signature, start, end, getNewIndex(index)) super.visitLocalVariable(newName, desc, signature, start, end, getNewIndex(index))
} }
private fun calculateNewNameUsingScopeNumbers(name: String): String {
if (name.startsWith(AsmUtil.THIS)) {
val scopeNumber = name.getInlineScopeInfo()?.scopeNumber ?: return AsmUtil.INLINE_DECLARATION_SITE_THIS
return "${AsmUtil.INLINE_DECLARATION_SITE_THIS}$INLINE_SCOPE_NUMBER_SEPARATOR$scopeNumber"
}
return name
}
private fun calculateNewNameUsingTheOldScheme(name: String): String {
val namePrefix = if (name == AsmUtil.THIS) AsmUtil.INLINE_DECLARATION_SITE_THIS else name
return namePrefix + INLINE_FUN_VAR_SUFFIX
}
} }
node.accept(transformationVisitor) node.accept(transformationVisitor)
@@ -1207,4 +1303,55 @@ class MethodInliner(
return result return result
} }
} }
private fun isRegeneratingAnonymousObject(): Boolean =
inliningContext.parent is RegeneratedClassContext
}
private fun incrementScopeNumbersOfVariables(node: MethodNode, label: Label): Int {
val localVariables = node.localVariables ?: return 0
if (localVariables.isEmpty()) {
return 0
}
val labelToIndex = node.getLabelToIndexMap()
val currentIndex = labelToIndex[label] ?: return 0
var inlineScopeNumberIncrement = 0
for (variable in localVariables) {
val variableStartIndex = labelToIndex[variable.start.label] ?: continue
if (variableStartIndex < currentIndex && isFakeLocalVariableForInline(variable.name)) {
inlineScopeNumberIncrement += 1
}
if (variableStartIndex > currentIndex) {
variable.name = incrementScopeNumbers(variable.name)
}
}
return inlineScopeNumberIncrement
}
private fun incrementScopeNumbers(name: String): String {
val (scopeNumber, callSiteLineNumber, surroundingScopeNumber) = name.getInlineScopeInfo() ?: return name
return buildString {
append(name.dropInlineScopeInfo())
append(INLINE_SCOPE_NUMBER_SEPARATOR)
append(scopeNumber + 1)
if (callSiteLineNumber != null) {
append(INLINE_SCOPE_NUMBER_SEPARATOR)
append(callSiteLineNumber)
}
if (surroundingScopeNumber != null) {
val resultingSurroundingScopeNumber =
if (surroundingScopeNumber != 0) {
surroundingScopeNumber + 1
} else {
0
}
append(INLINE_SCOPE_NUMBER_SEPARATOR)
append(resultingSurroundingScopeNumber)
}
}
} }
@@ -55,6 +55,7 @@ import kotlin.math.min
const val GENERATE_SMAP = true const val GENERATE_SMAP = true
const val NUMBERED_FUNCTION_PREFIX = "kotlin/jvm/functions/Function" const val NUMBERED_FUNCTION_PREFIX = "kotlin/jvm/functions/Function"
const val INLINE_FUN_VAR_SUFFIX = "\$iv" const val INLINE_FUN_VAR_SUFFIX = "\$iv"
const val INLINE_SCOPE_NUMBER_SEPARATOR = '\\'
internal const val FIRST_FUN_LABEL = "$$$$\$ROOT$$$$$" internal const val FIRST_FUN_LABEL = "$$$$\$ROOT$$$$$"
const val SPECIAL_TRANSFORMATION_NAME = "\$special" const val SPECIAL_TRANSFORMATION_NAME = "\$special"
@@ -0,0 +1,32 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.codegen.inline
data class InlineScopeInfo(val scopeNumber: Int, val callSiteLineNumber: Int?, val surroundingScopeNumber: Int?)
fun String.dropInlineScopeInfo(): String =
substringBefore(INLINE_SCOPE_NUMBER_SEPARATOR)
fun String.getInlineScopeInfo(): InlineScopeInfo? {
val inlineScopeInfoSuffix = substringAfter(INLINE_SCOPE_NUMBER_SEPARATOR)
val numbers = arrayOf(StringBuilder(), StringBuilder(), StringBuilder())
var currentIndex = 0
for (char in inlineScopeInfoSuffix) {
if (char == INLINE_SCOPE_NUMBER_SEPARATOR) {
if (currentIndex >= numbers.size) {
return null
}
currentIndex += 1
} else {
numbers[currentIndex].append(char)
}
}
val scopeNumber = numbers[0].toString().toIntOrNull() ?: return null
val callSiteLineNumber = numbers[1].toString().toIntOrNull()
val surroundingScopeNumber = numbers[2].toString().toIntOrNull()
return InlineScopeInfo(scopeNumber, callSiteLineNumber, surroundingScopeNumber)
}
@@ -76,6 +76,7 @@ fun copyK2JVMCompilerArguments(from: K2JVMCompilerArguments, to: K2JVMCompilerAr
to.suppressMissingBuiltinsError = from.suppressMissingBuiltinsError to.suppressMissingBuiltinsError = from.suppressMissingBuiltinsError
to.typeEnhancementImprovementsInStrictMode = from.typeEnhancementImprovementsInStrictMode to.typeEnhancementImprovementsInStrictMode = from.typeEnhancementImprovementsInStrictMode
to.useFastJarFileSystem = from.useFastJarFileSystem to.useFastJarFileSystem = from.useFastJarFileSystem
to.useInlineScopesNumbers = from.useInlineScopesNumbers
to.useJavac = from.useJavac to.useJavac = from.useJavac
to.useKapt4 = from.useKapt4 to.useKapt4 = from.useKapt4
to.useOldBackend = from.useOldBackend to.useOldBackend = from.useOldBackend
@@ -87,4 +88,4 @@ fun copyK2JVMCompilerArguments(from: K2JVMCompilerArguments, to: K2JVMCompilerAr
to.valueClasses = from.valueClasses to.valueClasses = from.valueClasses
return to return to
} }
@@ -836,6 +836,16 @@ This option is deprecated and will be deleted in future versions."""
field = value field = value
} }
@Argument(
value = "-Xuse-inline-scopes-numbers",
description = "Use inline scopes numbers for inline marker variables."
)
var useInlineScopesNumbers: Boolean = false
set(value) {
checkFrozen()
field = value
}
@Argument( @Argument(
value = "-Xuse-kapt4", value = "-Xuse-kapt4",
description = "Enable the experimental KAPT 4." description = "Enable the experimental KAPT 4."
@@ -300,6 +300,7 @@ fun CompilerConfiguration.configureAdvancedJvmOptions(arguments: K2JVMCompilerAr
put(JVMConfigurationKeys.NO_NEW_JAVA_ANNOTATION_TARGETS, arguments.noNewJavaAnnotationTargets) put(JVMConfigurationKeys.NO_NEW_JAVA_ANNOTATION_TARGETS, arguments.noNewJavaAnnotationTargets)
put(JVMConfigurationKeys.OLD_INNER_CLASSES_LOGIC, arguments.oldInnerClassesLogic) put(JVMConfigurationKeys.OLD_INNER_CLASSES_LOGIC, arguments.oldInnerClassesLogic)
put(JVMConfigurationKeys.ENABLE_IR_INLINER, arguments.enableIrInliner) put(JVMConfigurationKeys.ENABLE_IR_INLINER, arguments.enableIrInliner)
put(JVMConfigurationKeys.USE_INLINE_SCOPES_NUMBERS, arguments.useInlineScopesNumbers)
val assertionsMode = val assertionsMode =
JVMAssertionsMode.fromStringOrNull(arguments.assertionsMode) JVMAssertionsMode.fromStringOrNull(arguments.assertionsMode)
@@ -165,4 +165,7 @@ public class JVMConfigurationKeys {
public static final CompilerConfigurationKey<Boolean> ENABLE_IR_INLINER = public static final CompilerConfigurationKey<Boolean> ENABLE_IR_INLINER =
CompilerConfigurationKey.create("Enable inlining on IR, instead of inlining on bytecode"); CompilerConfigurationKey.create("Enable inlining on IR, instead of inlining on bytecode");
public static final CompilerConfigurationKey<Boolean> USE_INLINE_SCOPES_NUMBERS =
CompilerConfigurationKey.create("Use inline scopes numbers for inline marker variables");
} }
@@ -109,6 +109,12 @@ public class FirLightTreeLocalVariableTestGenerated extends AbstractFirLightTree
runTest("compiler/testData/debug/localVariables/localFunUnused.kt"); runTest("compiler/testData/debug/localVariables/localFunUnused.kt");
} }
@Test
@TestMetadata("manyInlineFunsInObject.kt")
public void testManyInlineFunsInObject() {
runTest("compiler/testData/debug/localVariables/manyInlineFunsInObject.kt");
}
@Test @Test
@TestMetadata("tryFinally.kt") @TestMetadata("tryFinally.kt")
public void testTryFinally() { public void testTryFinally() {
@@ -333,6 +339,156 @@ public class FirLightTreeLocalVariableTestGenerated extends AbstractFirLightTree
} }
} }
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes")
@TestDataPath("$PROJECT_ROOT")
public class InlineScopes {
@Test
public void testAllFilesPresentInInlineScopes() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld")
@TestDataPath("$PROJECT_ROOT")
public class NewFormatToOld {
@Test
public void testAllFilesPresentInNewFormatToOld() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineScopes1.kt")
public void testInlineScopes1() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes1.kt");
}
@Test
@TestMetadata("inlineScopes10.kt")
public void testInlineScopes10() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes10.kt");
}
@Test
@TestMetadata("inlineScopes2.kt")
public void testInlineScopes2() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes2.kt");
}
@Test
@TestMetadata("inlineScopes3.kt")
public void testInlineScopes3() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes3.kt");
}
@Test
@TestMetadata("inlineScopes4.kt")
public void testInlineScopes4() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes4.kt");
}
@Test
@TestMetadata("inlineScopes5.kt")
public void testInlineScopes5() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes5.kt");
}
@Test
@TestMetadata("inlineScopes6.kt")
public void testInlineScopes6() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes6.kt");
}
@Test
@TestMetadata("inlineScopes7.kt")
public void testInlineScopes7() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes7.kt");
}
@Test
@TestMetadata("inlineScopes8.kt")
public void testInlineScopes8() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes8.kt");
}
@Test
@TestMetadata("inlineScopes9.kt")
public void testInlineScopes9() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew")
@TestDataPath("$PROJECT_ROOT")
public class OldFormatToNew {
@Test
public void testAllFilesPresentInOldFormatToNew() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineScopes1.kt")
public void testInlineScopes1() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes1.kt");
}
@Test
@TestMetadata("inlineScopes10.kt")
public void testInlineScopes10() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes10.kt");
}
@Test
@TestMetadata("inlineScopes2.kt")
public void testInlineScopes2() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes2.kt");
}
@Test
@TestMetadata("inlineScopes3.kt")
public void testInlineScopes3() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes3.kt");
}
@Test
@TestMetadata("inlineScopes4.kt")
public void testInlineScopes4() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes4.kt");
}
@Test
@TestMetadata("inlineScopes5.kt")
public void testInlineScopes5() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes5.kt");
}
@Test
@TestMetadata("inlineScopes6.kt")
public void testInlineScopes6() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes6.kt");
}
@Test
@TestMetadata("inlineScopes7.kt")
public void testInlineScopes7() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes7.kt");
}
@Test
@TestMetadata("inlineScopes8.kt")
public void testInlineScopes8() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes8.kt");
}
@Test
@TestMetadata("inlineScopes9.kt")
public void testInlineScopes9() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes9.kt");
}
}
}
@Nested @Nested
@TestMetadata("compiler/testData/debug/localVariables/receiverMangling") @TestMetadata("compiler/testData/debug/localVariables/receiverMangling")
@TestDataPath("$PROJECT_ROOT") @TestDataPath("$PROJECT_ROOT")
@@ -109,6 +109,12 @@ public class FirPsiLocalVariableTestGenerated extends AbstractFirPsiLocalVariabl
runTest("compiler/testData/debug/localVariables/localFunUnused.kt"); runTest("compiler/testData/debug/localVariables/localFunUnused.kt");
} }
@Test
@TestMetadata("manyInlineFunsInObject.kt")
public void testManyInlineFunsInObject() {
runTest("compiler/testData/debug/localVariables/manyInlineFunsInObject.kt");
}
@Test @Test
@TestMetadata("tryFinally.kt") @TestMetadata("tryFinally.kt")
public void testTryFinally() { public void testTryFinally() {
@@ -333,6 +339,156 @@ public class FirPsiLocalVariableTestGenerated extends AbstractFirPsiLocalVariabl
} }
} }
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes")
@TestDataPath("$PROJECT_ROOT")
public class InlineScopes {
@Test
public void testAllFilesPresentInInlineScopes() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld")
@TestDataPath("$PROJECT_ROOT")
public class NewFormatToOld {
@Test
public void testAllFilesPresentInNewFormatToOld() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineScopes1.kt")
public void testInlineScopes1() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes1.kt");
}
@Test
@TestMetadata("inlineScopes10.kt")
public void testInlineScopes10() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes10.kt");
}
@Test
@TestMetadata("inlineScopes2.kt")
public void testInlineScopes2() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes2.kt");
}
@Test
@TestMetadata("inlineScopes3.kt")
public void testInlineScopes3() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes3.kt");
}
@Test
@TestMetadata("inlineScopes4.kt")
public void testInlineScopes4() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes4.kt");
}
@Test
@TestMetadata("inlineScopes5.kt")
public void testInlineScopes5() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes5.kt");
}
@Test
@TestMetadata("inlineScopes6.kt")
public void testInlineScopes6() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes6.kt");
}
@Test
@TestMetadata("inlineScopes7.kt")
public void testInlineScopes7() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes7.kt");
}
@Test
@TestMetadata("inlineScopes8.kt")
public void testInlineScopes8() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes8.kt");
}
@Test
@TestMetadata("inlineScopes9.kt")
public void testInlineScopes9() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew")
@TestDataPath("$PROJECT_ROOT")
public class OldFormatToNew {
@Test
public void testAllFilesPresentInOldFormatToNew() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineScopes1.kt")
public void testInlineScopes1() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes1.kt");
}
@Test
@TestMetadata("inlineScopes10.kt")
public void testInlineScopes10() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes10.kt");
}
@Test
@TestMetadata("inlineScopes2.kt")
public void testInlineScopes2() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes2.kt");
}
@Test
@TestMetadata("inlineScopes3.kt")
public void testInlineScopes3() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes3.kt");
}
@Test
@TestMetadata("inlineScopes4.kt")
public void testInlineScopes4() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes4.kt");
}
@Test
@TestMetadata("inlineScopes5.kt")
public void testInlineScopes5() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes5.kt");
}
@Test
@TestMetadata("inlineScopes6.kt")
public void testInlineScopes6() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes6.kt");
}
@Test
@TestMetadata("inlineScopes7.kt")
public void testInlineScopes7() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes7.kt");
}
@Test
@TestMetadata("inlineScopes8.kt")
public void testInlineScopes8() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes8.kt");
}
@Test
@TestMetadata("inlineScopes9.kt")
public void testInlineScopes9() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes9.kt");
}
}
}
@Nested @Nested
@TestMetadata("compiler/testData/debug/localVariables/receiverMangling") @TestMetadata("compiler/testData/debug/localVariables/receiverMangling")
@TestDataPath("$PROJECT_ROOT") @TestDataPath("$PROJECT_ROOT")
@@ -26,10 +26,7 @@ import org.jetbrains.kotlin.codegen.signature.JvmSignatureWriter
import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.codegen.state.JvmBackendConfig import org.jetbrains.kotlin.codegen.state.JvmBackendConfig
import org.jetbrains.kotlin.codegen.writeKotlinMetadata import org.jetbrains.kotlin.codegen.writeKotlinMetadata
import org.jetbrains.kotlin.config.JvmAnalysisFlags import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.config.JvmTarget
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.descriptors.DescriptorVisibility import org.jetbrains.kotlin.descriptors.DescriptorVisibility
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
@@ -416,10 +413,25 @@ class ClassCodegen private constructor(
) )
val mv = with(node) { visitor.newMethod(method.descriptorOrigin, access, name, desc, signature, exceptions.toTypedArray()) } val mv = with(node) { visitor.newMethod(method.descriptorOrigin, access, name, desc, signature, exceptions.toTypedArray()) }
val smapCopier = SourceMapCopier(classSMAP, smap) val smapCopier = SourceMapCopier(classSMAP, smap)
val smapCopyingVisitor = object : MethodVisitor(Opcodes.API_VERSION, mv) { val smapCopyingVisitor = object : MethodVisitor(Opcodes.API_VERSION, mv) {
override fun visitLineNumber(line: Int, start: Label) = private val lineNumberMapping = mutableMapOf<Int, Int>()
super.visitLineNumber(smapCopier.mapLineNumber(line), start)
override fun visitLineNumber(line: Int, start: Label) {
val newLine = smapCopier.mapLineNumber(line)
lineNumberMapping[line] = newLine
super.visitLineNumber(newLine, start)
}
override fun visitLocalVariable(name: String, descriptor: String, signature: String?, start: Label, end: Label, index: Int) {
if (state.configuration.getBoolean(JVMConfigurationKeys.USE_INLINE_SCOPES_NUMBERS) && isFakeLocalVariableForInline(name)) {
val newName = updateCallSiteLineNumber(name, lineNumberMapping)
return super.visitLocalVariable(newName, descriptor, signature, start, end, index)
}
super.visitLocalVariable(name, descriptor, signature, start, end, index)
}
} }
if (method.hasContinuation()) { if (method.hasContinuation()) {
// Generate a state machine within this method. The continuation class for it should be generated // Generate a state machine within this method. The continuation class for it should be generated
// lazily so that if tail call optimization kicks in, the unused class will not be written to the output. // lazily so that if tail call optimization kicks in, the unused class will not be written to the output.
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.codegen.pseudoInsns.fakeAlwaysFalseIfeq
import org.jetbrains.kotlin.codegen.pseudoInsns.fixStackAndJump import org.jetbrains.kotlin.codegen.pseudoInsns.fixStackAndJump
import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.codegen.state.JvmBackendConfig import org.jetbrains.kotlin.codegen.state.JvmBackendConfig
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.diagnostics.BackendErrors import org.jetbrains.kotlin.diagnostics.BackendErrors
@@ -50,6 +51,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
import org.jetbrains.kotlin.ir.visitors.acceptVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.jvm.AsmTypes import org.jetbrains.kotlin.resolve.jvm.AsmTypes
import org.jetbrains.kotlin.resolve.jvm.AsmTypes.JAVA_STRING_TYPE import org.jetbrains.kotlin.resolve.jvm.AsmTypes.JAVA_STRING_TYPE
import org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE import org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE
@@ -156,6 +158,13 @@ class ExpressionCodegen(
val state: GenerationState = context.state val state: GenerationState = context.state
val config: JvmBackendConfig = context.config val config: JvmBackendConfig = context.config
override val inlineScopesGenerator =
if (state.configuration.getBoolean(JVMConfigurationKeys.USE_INLINE_SCOPES_NUMBERS)) {
InlineScopesGenerator()
} else {
null
}
override val visitor: InstructionAdapter override val visitor: InstructionAdapter
get() = mv get() = mv
@@ -755,6 +764,15 @@ class ExpressionCodegen(
override fun visitVariable(declaration: IrVariable, data: BlockInfo): PromisedValue { override fun visitVariable(declaration: IrVariable, data: BlockInfo): PromisedValue {
val varType = typeMapper.mapType(declaration) val varType = typeMapper.mapType(declaration)
val index = frameMap.enter(declaration.symbol, varType) val index = frameMap.enter(declaration.symbol, varType)
val name = declaration.name.asString()
if (state.configuration.getBoolean(JVMConfigurationKeys.USE_INLINE_SCOPES_NUMBERS) &&
state.configuration.getBoolean(JVMConfigurationKeys.ENABLE_IR_INLINER) &&
isFakeLocalVariableForInline(name) &&
name.contains(INLINE_SCOPE_NUMBER_SEPARATOR)
) {
declaration.name = Name.identifier(updateCallSiteLineNumber(name, lineNumberMapper.getLineNumber()))
}
val initializer = declaration.initializer val initializer = declaration.initializer
if (initializer != null) { if (initializer != null) {
@@ -12,8 +12,9 @@ import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
import org.jetbrains.kotlin.backend.jvm.irInlinerIsEnabled import org.jetbrains.kotlin.backend.jvm.irInlinerIsEnabled
import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.kotlin.codegen.AsmUtil
import org.jetbrains.kotlin.codegen.inline.INLINE_FUN_VAR_SUFFIX import org.jetbrains.kotlin.codegen.inline.*
import org.jetbrains.kotlin.codegen.inline.coroutines.FOR_INLINE_SUFFIX import org.jetbrains.kotlin.codegen.inline.coroutines.FOR_INLINE_SUFFIX
import org.jetbrains.kotlin.config.JVMConfigurationKeys.USE_INLINE_SCOPES_NUMBERS
import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.builders.createTmpVariable import org.jetbrains.kotlin.ir.builders.createTmpVariable
@@ -21,9 +22,7 @@ import org.jetbrains.kotlin.ir.builders.irInt
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrBlock import org.jetbrains.kotlin.ir.expressions.IrBlock
import org.jetbrains.kotlin.ir.expressions.IrInlinedFunctionBlock import org.jetbrains.kotlin.ir.expressions.IrInlinedFunctionBlock
import org.jetbrains.kotlin.ir.util.inlineDeclaration import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.util.isFunctionInlining
import org.jetbrains.kotlin.ir.util.isLambdaInlining
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
@@ -56,8 +55,12 @@ internal class FakeLocalVariablesForIrInlinerLowering(
override fun lower(irFile: IrFile) { override fun lower(irFile: IrFile) {
irFile.accept(this, null) irFile.accept(this, null)
irFile.acceptVoid(FunctionParametersProcessor()) if (context.configuration.getBoolean(USE_INLINE_SCOPES_NUMBERS)) {
irFile.accept(LocalVariablesProcessor(), LocalVariablesProcessor.Data(processingOriginalDeclarations = false)) irFile.acceptVoid(ScopeNumberVariableProcessor())
} else {
irFile.acceptVoid(FunctionParametersProcessor())
irFile.accept(LocalVariablesProcessor(), LocalVariablesProcessor.Data(processingOriginalDeclarations = false))
}
} }
override fun visitElement(element: IrElement) { override fun visitElement(element: IrElement) {
@@ -150,12 +153,16 @@ private class LocalVariablesProcessor : IrElementVisitor<Unit, LocalVariablesPro
val varName = declaration.name.asString() val varName = declaration.name.asString()
val varSuffix = when { val varSuffix = when {
inlinedStack.size == 1 && !varName.startsWith(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_FUNCTION) -> INLINE_FUN_VAR_SUFFIX inlinedStack.size == 1 && !varName.startsWith(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_FUNCTION) ->
else -> "" INLINE_FUN_VAR_SUFFIX
else ->
""
} }
val newName = when { val newName = when {
varSuffix.isNotEmpty() && varName == SpecialNames.THIS.asStringStripSpecialMarkers() -> "this_" varSuffix.isNotEmpty() && varName == SpecialNames.THIS.asStringStripSpecialMarkers() ->
else -> varName AsmUtil.INLINE_DECLARATION_SITE_THIS
else ->
varName
} }
declaration.name = Name.identifier(newName + varSuffix) declaration.name = Name.identifier(newName + varSuffix)
super.visitVariable(declaration, data) super.visitVariable(declaration, data)
@@ -181,16 +188,83 @@ private class FunctionParametersProcessor : IrElementVisitorVoid {
private fun IrStatement.processFunctionParameter(inlinedBlock: IrInlinedFunctionBlock) { private fun IrStatement.processFunctionParameter(inlinedBlock: IrInlinedFunctionBlock) {
if (this !is IrVariable || !this.isTmpForInline) return if (this !is IrVariable || !this.isTmpForInline) return
val varName = this.name.asString().substringAfterLast("_") this.name = Name.identifier(calculateNewName(inlinedBlock) + INLINE_FUN_VAR_SUFFIX)
val varNewName = when {
this.origin == IrDeclarationOrigin.IR_TEMPORARY_VARIABLE_FOR_INLINED_EXTENSION_RECEIVER -> {
val functionName = (inlinedBlock.inlineDeclaration as? IrDeclarationWithName)?.name
functionName?.let { name -> "\$this$$name" } ?: AsmUtil.RECEIVER_PARAMETER_NAME
}
varName == SpecialNames.THIS.asStringStripSpecialMarkers() -> "this_"
else -> varName
}
this.name = Name.identifier(varNewName + INLINE_FUN_VAR_SUFFIX)
this.origin = IrDeclarationOrigin.DEFINED this.origin = IrDeclarationOrigin.DEFINED
} }
} }
private class ScopeNumberVariableProcessor : IrElementVisitorVoid {
private val inlinedStack = mutableListOf<Pair<IrInlinedFunctionBlock, Int>>()
private var lastInlineScopeNumber = 0
private inline fun IrInlinedFunctionBlock.insertInStackAndProcess(block: IrInlinedFunctionBlock.() -> Unit) {
lastInlineScopeNumber += 1
inlinedStack += Pair(this, lastInlineScopeNumber)
block()
inlinedStack.removeLast()
}
override fun visitElement(element: IrElement) {
element.acceptChildrenVoid(this)
}
override fun visitFunction(declaration: IrFunction) {
val processor = ScopeNumberVariableProcessor()
declaration.acceptChildrenVoid(processor)
}
override fun visitBlock(expression: IrBlock) {
if (expression !is IrInlinedFunctionBlock) {
return super.visitBlock(expression)
}
expression.insertInStackAndProcess {
super.visitBlock(expression)
}
}
override fun visitVariable(declaration: IrVariable) {
if (inlinedStack.isEmpty()) {
return super.visitVariable(declaration)
}
val (inlinedBlock, scopeNumber) = inlinedStack.last()
val newName = declaration.calculateNewName(inlinedBlock)
declaration.name = Name.identifier(addInlineScopeInfo(newName, scopeNumber))
super.visitVariable(declaration)
}
}
private fun IrVariable.calculateNewName(inlinedBlock: IrInlinedFunctionBlock): String {
val varName = name.asString().substringAfterLast("_")
return when {
this.origin == IrDeclarationOrigin.IR_TEMPORARY_VARIABLE_FOR_INLINED_EXTENSION_RECEIVER ->
inlinedBlock.getReceiverParameterName()
varName == SpecialNames.THIS.asStringStripSpecialMarkers() ->
AsmUtil.INLINE_DECLARATION_SITE_THIS
else ->
varName
}
}
private fun addInlineScopeInfo(name: String, scopeNumber: Int): String {
val nameWithScopeNumber = name.addScopeInfo(scopeNumber)
if (isFakeLocalVariableForInline(name)) {
// During IR inlining we can't fetch call site line numbers because the line number mapping
// has not been calculated yet. To keep the inline scope info format consistent, we will add
// a mock call site line number instead, which will be replaced with the real one during the
// expression codegen phase.
val nameWithCallSiteLineNumber = nameWithScopeNumber.addScopeInfo(0)
if (name.startsWith(JvmAbi.LOCAL_VARIABLE_NAME_PREFIX_INLINE_ARGUMENT)) {
val surroundingScopeNumber = name.getInlineScopeInfo()?.surroundingScopeNumber ?: 0
return nameWithCallSiteLineNumber.addScopeInfo(surroundingScopeNumber)
}
return nameWithCallSiteLineNumber
}
return nameWithScopeNumber
}
private fun IrInlinedFunctionBlock.getReceiverParameterName(): String {
val functionName = (inlineDeclaration as? IrDeclarationWithName)?.name
return functionName?.let { "this$$it" } ?: AsmUtil.RECEIVER_PARAMETER_NAME
}
@@ -17,8 +17,14 @@ private val AT_OUTPUT_FILE_PATTERN = Pattern.compile("^\\s*//\\s*@(.*):$")
private val EXPECTED_OCCURRENCES_PATTERN = Pattern.compile("^\\s*//\\s*(\\d+)\\s*(.*)$") private val EXPECTED_OCCURRENCES_PATTERN = Pattern.compile("^\\s*//\\s*(\\d+)\\s*(.*)$")
private const val JVM_TEMPLATES = "// JVM_TEMPLATES" private const val JVM_TEMPLATES = "// JVM_TEMPLATES"
private const val JVM_IR_TEMPLATES = "// JVM_IR_TEMPLATES" private const val JVM_IR_TEMPLATES = "// JVM_IR_TEMPLATES"
private const val JVM_IR_TEMPLATES_WITH_INLINE_SCOPES = "// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES"
class OccurrenceInfo constructor(private val numberOfOccurrences: Int, private val needle: String, val backend: TargetBackend) { class OccurrenceInfo constructor(
private val numberOfOccurrences: Int,
private val needle: String,
val backend: TargetBackend,
val inlineScopesNumbersEnabled: Boolean
) {
private val pattern = Pattern.compile("($needle)") private val pattern = Pattern.compile("($needle)")
fun getActualOccurrence(text: String): String { fun getActualOccurrence(text: String): String {
@@ -39,13 +45,26 @@ fun readExpectedOccurrences(filename: String): List<OccurrenceInfo> {
fun readExpectedOccurrences(lines: List<String>): List<OccurrenceInfo> { fun readExpectedOccurrences(lines: List<String>): List<OccurrenceInfo> {
val result = ArrayList<OccurrenceInfo>() val result = ArrayList<OccurrenceInfo>()
var backend = TargetBackend.ANY var backend = TargetBackend.ANY
var inlineScopesNumbersEnabled = false
for (line in lines) { for (line in lines) {
if (line.contains(JVM_TEMPLATES)) backend = TargetBackend.JVM when {
else if (line.contains(JVM_IR_TEMPLATES)) backend = TargetBackend.JVM_IR line.contains(JVM_IR_TEMPLATES_WITH_INLINE_SCOPES) -> {
backend = TargetBackend.JVM_IR
inlineScopesNumbersEnabled = true
}
line.contains(JVM_IR_TEMPLATES) -> {
backend = TargetBackend.JVM_IR
inlineScopesNumbersEnabled = false
}
line.contains(JVM_TEMPLATES) -> {
backend = TargetBackend.JVM
inlineScopesNumbersEnabled = false
}
}
val matcher = EXPECTED_OCCURRENCES_PATTERN.matcher(line) val matcher = EXPECTED_OCCURRENCES_PATTERN.matcher(line)
if (matcher.matches()) { if (matcher.matches()) {
result.add(parseOccurrenceInfo(matcher, backend)) result.add(parseOccurrenceInfo(matcher, backend, inlineScopesNumbersEnabled))
} }
} }
@@ -60,9 +79,23 @@ fun readExpectedOccurrencesForMultiFileTest(
) { ) {
var currentOccurrenceInfos: MutableList<OccurrenceInfo> = global var currentOccurrenceInfos: MutableList<OccurrenceInfo> = global
var backend = TargetBackend.ANY var backend = TargetBackend.ANY
var inlineScopesNumbersEnabled = false
for (line in fileContent.split("\n".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()) { for (line in fileContent.split("\n".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()) {
if (line.contains(JVM_TEMPLATES)) backend = TargetBackend.JVM when {
else if (line.contains(JVM_IR_TEMPLATES)) backend = TargetBackend.JVM_IR line.contains(JVM_IR_TEMPLATES_WITH_INLINE_SCOPES) -> {
backend = TargetBackend.JVM_IR
inlineScopesNumbersEnabled = true
}
line.contains(JVM_IR_TEMPLATES) -> {
backend = TargetBackend.JVM_IR
inlineScopesNumbersEnabled = false
}
line.contains(JVM_TEMPLATES) -> {
backend = TargetBackend.JVM
inlineScopesNumbersEnabled = false
}
}
val atOutputFileMatcher = AT_OUTPUT_FILE_PATTERN.matcher(line) val atOutputFileMatcher = AT_OUTPUT_FILE_PATTERN.matcher(line)
if (atOutputFileMatcher.matches()) { if (atOutputFileMatcher.matches()) {
@@ -76,16 +109,16 @@ fun readExpectedOccurrencesForMultiFileTest(
val expectedOccurrencesMatcher = EXPECTED_OCCURRENCES_PATTERN.matcher(line) val expectedOccurrencesMatcher = EXPECTED_OCCURRENCES_PATTERN.matcher(line)
if (expectedOccurrencesMatcher.matches()) { if (expectedOccurrencesMatcher.matches()) {
val occurrenceInfo = parseOccurrenceInfo(expectedOccurrencesMatcher, backend) val occurrenceInfo = parseOccurrenceInfo(expectedOccurrencesMatcher, backend, inlineScopesNumbersEnabled)
currentOccurrenceInfos.add(occurrenceInfo) currentOccurrenceInfos.add(occurrenceInfo)
} }
} }
} }
private fun parseOccurrenceInfo(matcher: Matcher, backend: TargetBackend): OccurrenceInfo { private fun parseOccurrenceInfo(matcher: Matcher, backend: TargetBackend, inlineScopesNumbersEnabled: Boolean): OccurrenceInfo {
val numberOfOccurrences = Integer.parseInt(matcher.group(1)) val numberOfOccurrences = Integer.parseInt(matcher.group(1))
val needle = matcher.group(2) val needle = matcher.group(2)
return OccurrenceInfo(numberOfOccurrences, needle, backend) return OccurrenceInfo(numberOfOccurrences, needle, backend, inlineScopesNumbersEnabled)
} }
fun checkGeneratedTextAgainstExpectedOccurrences( fun checkGeneratedTextAgainstExpectedOccurrences(
@@ -93,16 +126,24 @@ fun checkGeneratedTextAgainstExpectedOccurrences(
expectedOccurrences: List<OccurrenceInfo>, expectedOccurrences: List<OccurrenceInfo>,
currentBackend: TargetBackend, currentBackend: TargetBackend,
reportProblems: Boolean, reportProblems: Boolean,
assertions: Assertions assertions: Assertions,
inlineScopesNumbersEnabled: Boolean = false
) { ) {
val expected = StringBuilder() val expected = StringBuilder()
val actual = StringBuilder() val actual = StringBuilder()
var lastBackend = TargetBackend.ANY var lastBackend = TargetBackend.ANY
val noScopesNumbersEntries = expectedOccurrences.none { it.inlineScopesNumbersEnabled }
for (info in expectedOccurrences) { for (info in expectedOccurrences) {
if (lastBackend != info.backend) { if (lastBackend != info.backend) {
when (info.backend) { when (info.backend) {
TargetBackend.JVM -> JVM_TEMPLATES TargetBackend.JVM -> JVM_TEMPLATES
TargetBackend.JVM_IR -> JVM_IR_TEMPLATES TargetBackend.JVM_IR -> {
if (inlineScopesNumbersEnabled) {
JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
} else {
JVM_IR_TEMPLATES
}
}
else -> error("Common part should be first one: ${expectedOccurrences.joinToString("\n")}") else -> error("Common part should be first one: ${expectedOccurrences.joinToString("\n")}")
}.also { }.also {
actual.append("\n$it\n") actual.append("\n$it\n")
@@ -112,7 +153,8 @@ fun checkGeneratedTextAgainstExpectedOccurrences(
} }
expected.append(info).append("\n") expected.append(info).append("\n")
if (info.backend == TargetBackend.ANY || info.backend == currentBackend) { val hasAppropriateScopesNumbersSetting = info.inlineScopesNumbersEnabled == inlineScopesNumbersEnabled || noScopesNumbersEntries
if (info.backend == TargetBackend.ANY || (info.backend == currentBackend && hasAppropriateScopesNumbersSetting)) {
actual.append(info.getActualOccurrence(text)).append("\n") actual.append(info.getActualOccurrence(text)).append("\n")
} else { } else {
actual.append(info).append("\n") actual.append(info).append("\n")
@@ -139,4 +181,3 @@ fun assertTextWasGenerated(expectedOutputFile: String, generated: Map<String, St
assertions.fail { failMessage.toString() } assertions.fail { failMessage.toString() }
} }
} }
@@ -100,6 +100,7 @@ object LanguageSettingsDirectives : SimpleDirectivesContainer() {
val OLD_INNER_CLASSES_LOGIC by directive("Use old logic for generation of InnerClasses attributes") val OLD_INNER_CLASSES_LOGIC by directive("Use old logic for generation of InnerClasses attributes")
val LINK_VIA_SIGNATURES_K1 by directive("Use linkage via signatures instead of descriptors on the K1 frontend") val LINK_VIA_SIGNATURES_K1 by directive("Use linkage via signatures instead of descriptors on the K1 frontend")
val ENABLE_JVM_IR_INLINER by directive("Enable inlining on IR, instead of inlining on bytecode") val ENABLE_JVM_IR_INLINER by directive("Enable inlining on IR, instead of inlining on bytecode")
val USE_INLINE_SCOPES_NUMBERS by directive("Use inline scopes numbers for inline marker variables")
val GENERATE_PROPERTY_ANNOTATIONS_METHODS by directive( val GENERATE_PROPERTY_ANNOTATIONS_METHODS by directive(
description = "Enables corresponding analysis flag (JvmAnalysisFlags.generatePropertyAnnotationsMethods)" description = "Enables corresponding analysis flag (JvmAnalysisFlags.generatePropertyAnnotationsMethods)"
) )
+1
View File
@@ -142,6 +142,7 @@ where advanced options include:
including the ability to read type-use annotations from class files. including the ability to read type-use annotations from class files.
See KT-45671 for more details. See KT-45671 for more details.
-Xuse-fast-jar-file-system Use the fast implementation of Jar FS. This may speed up compilation time, but it is experimental. -Xuse-fast-jar-file-system Use the fast implementation of Jar FS. This may speed up compilation time, but it is experimental.
-Xuse-inline-scopes-numbers Use inline scopes numbers for inline marker variables.
-Xuse-javac Use javac for Java source and class file analysis. -Xuse-javac Use javac for Java source and class file analysis.
-Xuse-kapt4 Enable the experimental KAPT 4. -Xuse-kapt4 Enable the experimental KAPT 4.
-Xuse-old-backend Use the old JVM backend. -Xuse-old-backend Use the old JVM backend.
@@ -0,0 +1,25 @@
public final class DeepInlineKt : java/lang/Object {
public final static void block(kotlin.jvm.functions.Function1 block) {
Local variables:
1 $i$f$block: I
0 block: Lkotlin/jvm/functions/Function1;
}
public final static void foo(java.lang.String $this$foo, int count) {
Local variables:
16 $i$a$-block-DeepInlineKt$foo$1$1$1\6\23\4: I
14 $this$foo_u24lambda_u242_u24lambda_u241_u24lambda_u240\6: J
13 $i$f$block\5\12: I
11 $i$a$-block-DeepInlineKt$foo$1$1\4\22\2: I
12 z\4: Z
9 $this$foo_u24lambda_u242_u24lambda_u241\4: J
8 $i$f$block\3\10: I
6 $i$a$-block-DeepInlineKt$foo$1\2\21\0: I
7 y\2: Z
4 $this$foo_u24lambda_u242\2: J
3 $i$f$block\1\8: I
2 x: Z
0 $this$foo: Ljava/lang/String;
1 count: I
}
}
@@ -1,4 +1,5 @@
// IR_DIFFERENCE // IR_DIFFERENCE
// INLINE_SCOPES_DIFFERENCE
// LOCAL_VARIABLE_TABLE // LOCAL_VARIABLE_TABLE
fun String.foo(count: Int) { fun String.foo(count: Int) {
@@ -0,0 +1,25 @@
public final class DeepInlineWithLabelsKt : java/lang/Object {
public final static void block(kotlin.jvm.functions.Function1 block) {
Local variables:
1 $i$f$block: I
0 block: Lkotlin/jvm/functions/Function1;
}
public final static void foo(java.lang.String $this$foo, int count) {
Local variables:
16 $i$a$-block-DeepInlineWithLabelsKt$foo$1$1$1\6\23\4: I
14 $this$foo_u24lambda_u242_u24lambda_u241_u24lambda_u240\6: J
13 $i$f$block\5\12: I
11 $i$a$-block-DeepInlineWithLabelsKt$foo$1$1\4\22\2: I
12 z\4: Z
9 $this$foo_u24lambda_u242_u24lambda_u241\4: J
8 $i$f$block\3\10: I
6 $i$a$-block-DeepInlineWithLabelsKt$foo$1\2\21\0: I
7 y\2: Z
4 $this$foo_u24lambda_u242\2: J
3 $i$f$block\1\8: I
2 x: Z
0 $this$foo: Ljava/lang/String;
1 count: I
}
}
@@ -1,4 +1,5 @@
// IR_DIFFERENCE // IR_DIFFERENCE
// INLINE_SCOPES_DIFFERENCE
// LOCAL_VARIABLE_TABLE // LOCAL_VARIABLE_TABLE
fun String.foo(count: Int) { fun String.foo(count: Int) {
@@ -0,0 +1,40 @@
public final class Foo$Bar : java/lang/Object {
final Foo this$0
public void <init>(Foo this$0) {
Local variables:
0 this: LFoo$Bar;
1 this$0: LFoo;
}
public final void bar() {
Local variables:
4 $i$a$-block-Foo$Bar$bar$1$1\4\30\2: I
3 $i$f$block\3\18: I
2 $i$a$-block-Foo$Bar$bar$1\2\29\0: I
1 $i$f$block\1\14: I
0 this: LFoo$Bar;
}
}
public final class Foo : java/lang/Object {
public void <init>() {
Local variables:
0 this: LFoo;
}
public final void foo() {
Local variables:
2 $i$a$-block-Foo$foo$1\2\29\0: I
1 $i$f$block\1\7: I
0 this: LFoo;
}
}
public final class InlineClassCaptureKt : java/lang/Object {
public final static void block(kotlin.jvm.functions.Function0 block) {
Local variables:
1 $i$f$block: I
0 block: Lkotlin/jvm/functions/Function0;
}
}
@@ -1,4 +1,5 @@
// IR_DIFFERENCE // IR_DIFFERENCE
// INLINE_SCOPES_DIFFERENCE
// LOCAL_VARIABLE_TABLE // LOCAL_VARIABLE_TABLE
class Foo { class Foo {
@@ -0,0 +1,17 @@
public final class InlineReceiversKt : java/lang/Object {
public final static void block(kotlin.jvm.functions.Function1 block) {
Local variables:
1 $i$f$block: I
0 block: Lkotlin/jvm/functions/Function1;
}
public final static void foo(java.lang.String $this$foo, int count) {
Local variables:
6 $i$a$-block-InlineReceiversKt$foo$1\2\15\0: I
4 $this$foo_u24lambda_u240\2: J
3 $i$f$block\1\8: I
2 x: Z
0 $this$foo: Ljava/lang/String;
1 count: I
}
}
@@ -1,4 +1,5 @@
// IR_DIFFERENCE // IR_DIFFERENCE
// INLINE_SCOPES_DIFFERENCE
// LOCAL_VARIABLE_TABLE // LOCAL_VARIABLE_TABLE
fun String.foo(count: Int) { fun String.foo(count: Int) {
@@ -16,6 +16,8 @@ fun bar() {
// 0 valueOf // 0 valueOf
// 0 Value\s\(\) // 0 Value\s\(\)
// JVM_TEMPLATES
// 1 LOCALVARIABLE x I (.*) 6 // 1 LOCALVARIABLE x I (.*) 6
// 1 LOCALVARIABLE y I (.*) 5 // 1 LOCALVARIABLE y I (.*) 5
// 1 LOCALVARIABLE x J (.*) 7 // 1 LOCALVARIABLE x J (.*) 7
@@ -33,3 +35,38 @@ fun bar() {
// 1 LOCALVARIABLE x Z (.*) 6 // 1 LOCALVARIABLE x Z (.*) 6
// 1 LOCALVARIABLE y Z (.*) 5 // 1 LOCALVARIABLE y Z (.*) 5
// JVM_IR_TEMPLATES
// 1 LOCALVARIABLE x I (.*) 6
// 1 LOCALVARIABLE y I (.*) 5
// 1 LOCALVARIABLE x J (.*) 7
// 1 LOCALVARIABLE y J (.*) 5
// 1 LOCALVARIABLE x F (.*) 6
// 1 LOCALVARIABLE y F (.*) 5
// 1 LOCALVARIABLE x D (.*) 7
// 1 LOCALVARIABLE y D (.*) 5
// 1 LOCALVARIABLE x B (.*) 6
// 1 LOCALVARIABLE y B (.*) 5
// 1 LOCALVARIABLE x S (.*) 6
// 1 LOCALVARIABLE y S (.*) 5
// 1 LOCALVARIABLE x C (.*) 6
// 1 LOCALVARIABLE y C (.*) 5
// 1 LOCALVARIABLE x Z (.*) 6
// 1 LOCALVARIABLE y Z (.*) 5
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 1 LOCALVARIABLE x\\2 I (.*) 6
// 1 LOCALVARIABLE y\\2 I (.*) 5
// 1 LOCALVARIABLE x\\4 J (.*) 7
// 1 LOCALVARIABLE y\\4 J (.*) 5
// 1 LOCALVARIABLE x\\6 F (.*) 6
// 1 LOCALVARIABLE y\\6 F (.*) 5
// 1 LOCALVARIABLE x\\8 D (.*) 7
// 1 LOCALVARIABLE y\\8 D (.*) 5
// 1 LOCALVARIABLE x\\10 B (.*) 6
// 1 LOCALVARIABLE y\\10 B (.*) 5
// 1 LOCALVARIABLE x\\12 S (.*) 6
// 1 LOCALVARIABLE y\\12 S (.*) 5
// 1 LOCALVARIABLE x\\14 C (.*) 6
// 1 LOCALVARIABLE y\\14 C (.*) 5
// 1 LOCALVARIABLE x\\16 Z (.*) 6
// 1 LOCALVARIABLE y\\16 Z (.*) 5
@@ -5,6 +5,16 @@ suspend inline fun foo(a: A, block: suspend (A) -> String): String = block(a)
// FILE: test.kt // FILE: test.kt
suspend fun test() = foo(A("O", "K")) { (x_param, y_param) -> x_param + y_param } suspend fun test() = foo(A("O", "K")) { (x_param, y_param) -> x_param + y_param }
// JVM_TEMPLATES
// @TestKt.class: // @TestKt.class:
// 1 LOCALVARIABLE x_param Ljava/lang/String; // 1 LOCALVARIABLE x_param Ljava/lang/String;
// 1 LOCALVARIABLE y_param Ljava/lang/String; // 1 LOCALVARIABLE y_param Ljava/lang/String;
// JVM_IR_TEMPLATES
// @TestKt.class:
// 1 LOCALVARIABLE x_param Ljava/lang/String;
// 1 LOCALVARIABLE y_param Ljava/lang/String;
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 1 LOCALVARIABLE x_param\\2 Ljava/lang/String;
// 1 LOCALVARIABLE y_param\\2 Ljava/lang/String;
@@ -22,4 +22,11 @@ class MyBlockingAdapter() {
} }
} }
// JVM_TEMPLATES
// 1 LOCALVARIABLE \$this\$extensionFun\$iv\$iv LAtomicInt; // 1 LOCALVARIABLE \$this\$extensionFun\$iv\$iv LAtomicInt;
// JVM_IR_TEMPLATES
// 1 LOCALVARIABLE \$this\$extensionFun\$iv\$iv LAtomicInt;
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 1 LOCALVARIABLE \$this\$extensionFun\\2 LAtomicInt;
@@ -11,6 +11,15 @@ fun box() : String {
// 2 LOCALVARIABLE p Ljava/lang/String; // 2 LOCALVARIABLE p Ljava/lang/String;
// 2 LOCALVARIABLE x I // 2 LOCALVARIABLE x I
// JVM_TEMPLATES
// The $iv suffix should be present in box // The $iv suffix should be present in box
// 1 LOCALVARIABLE p\$iv Ljava/lang/String; // 1 LOCALVARIABLE p\$iv Ljava/lang/String;
// 1 LOCALVARIABLE x\$iv I // 1 LOCALVARIABLE x\$iv I
// JVM_IR_TEMPLATES
// 1 LOCALVARIABLE p\$iv Ljava/lang/String;
// 1 LOCALVARIABLE x\$iv I
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 1 LOCALVARIABLE p\\1 Ljava/lang/String;
// 1 LOCALVARIABLE x\\1 I
@@ -16,5 +16,13 @@ fun box() : String {
// 0 NULL // 0 NULL
//proper variable start label: after assignment //proper variable start label: after assignment
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 1 LOCALVARIABLE p\\1 Ljava/lang/String; L2 L4 0
// JVM_TEMPLATES
// 1 LOCALVARIABLE p\$iv Ljava/lang/String; L2 L4 0 // 1 LOCALVARIABLE p\$iv Ljava/lang/String; L2 L4 0
// 1 LDC "OK"\s*ASTORE 0\s*L2 // 1 LDC "OK"\s*ASTORE 0\s*L2
// JVM_IR_TEMPLATES
// 1 LOCALVARIABLE p\$iv Ljava/lang/String; L2 L4 0
// 1 LDC "OK"\s*ASTORE 0\s*L2
@@ -10,6 +10,18 @@ fun box(): String {
return inlineFun<OK>() return inlineFun<OK>()
} }
// JVM_TEMPLATES
// 1 LOCALVARIABLE \$i\$a\$-inlineFun-DefaultLambdaKt\$inlineFun\$1 I // 1 LOCALVARIABLE \$i\$a\$-inlineFun-DefaultLambdaKt\$inlineFun\$1 I
// inlineFun, inlineFun$default, inlined inlineFun: // inlineFun, inlineFun$default, inlined inlineFun:
// 3 LOCALVARIABLE \$i\$f\$inlineFun // 3 LOCALVARIABLE \$i\$f\$inlineFun
// JVM_IR_TEMPLATES
// 1 LOCALVARIABLE \$i\$a\$-inlineFun-DefaultLambdaKt\$inlineFun\$1 I
// inlineFun, inlineFun$default, inlined inlineFun:
// 3 LOCALVARIABLE \$i\$f\$inlineFun
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 1 LOCALVARIABLE \$i\$a\$-inlineFun-DefaultLambdaKt\$inlineFun\$1\\2\\30\\0 I
// inlineFun, inlineFun$default, inlined inlineFun:
// 1 LOCALVARIABLE \$i\$f\$inlineFun\\1
// 2 LOCALVARIABLE \$i\$f\$inlineFun I
@@ -17,6 +17,14 @@ suspend fun ApplicationCall.test(authenticationService: AuthenticationService) {
respond(authenticationService.execute(receiveJSON())) respond(authenticationService.execute(receiveJSON()))
} }
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 5 ISTORE 3
// 1 ISTORE 2
// 0 ILOAD 3
// 0 ILOAD 2
// 1 \$i\$f\$receiveJSON I .* 2
// 2 \$i\$f\$respond I .* 3
// JVM_TEMPLATES // JVM_TEMPLATES
// $i$f$respond x1, $i$f$receiveJSON x2: before and after suspension point // $i$f$respond x1, $i$f$receiveJSON x2: before and after suspension point
// 3 ISTORE 5 // 3 ISTORE 5
@@ -5,10 +5,24 @@ fun test() = run {
"OK" "OK"
} }
// 2 LOCALVARIABLE // JVM_TEMPLATES
// 1 LOCALVARIABLE tmp I // 1 LOCALVARIABLE tmp I
// 1 LOCALVARIABLE \$i\$a\$-run-NoFakeVariableForInlineOnlyFunWithLambdaKt\$test\$1 I // 1 LOCALVARIABLE \$i\$a\$-run-NoFakeVariableForInlineOnlyFunWithLambdaKt\$test\$1 I
// 0 LDC 0
// 2 ICONST_0
// 2 ISTORE
// JVM_IR_TEMPLATES
// 1 LOCALVARIABLE tmp I
// 1 LOCALVARIABLE \$i\$a\$-run-NoFakeVariableForInlineOnlyFunWithLambdaKt\$test\$1 I
// 0 LDC 0
// 2 ICONST_0
// 2 ISTORE
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 2 LOCALVARIABLE
// 1 LOCALVARIABLE tmp\\1 I
// 1 LOCALVARIABLE \$i\$a\$-run-NoFakeVariableForInlineOnlyFunWithLambdaKt\$test\$1\\1\\3\\0 I
// 0 LDC 0 // 0 LDC 0
// 2 ICONST_0 // 2 ICONST_0
// 2 ISTORE // 2 ISTORE
@@ -10,7 +10,18 @@ fun test() {
foo(0.0f) foo(0.0f)
} }
// JVM_TEMPLATES
// two in foo and two in test // two in foo and two in test
// 4 ASTORE 2 // 4 ASTORE 2
// 1 LOCALVARIABLE t Ljava/lang/Object; // 1 LOCALVARIABLE t Ljava/lang/Object;
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object; // 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
// JVM_IR_TEMPLATES
// 4 ASTORE 2
// 1 LOCALVARIABLE t Ljava/lang/Object;
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 4 ASTORE 2
// 1 LOCALVARIABLE t Ljava/lang/Object;
// 1 LOCALVARIABLE t\\1 Ljava/lang/Object;
@@ -10,7 +10,18 @@ fun test() {
foo(0.0f) foo(0.0f)
} }
// JVM_TEMPLATES
// two in foo and two in test // two in foo and two in test
// 4 ASTORE 2 // 4 ASTORE 2
// 1 LOCALVARIABLE t Ljava/lang/Object; // 1 LOCALVARIABLE t Ljava/lang/Object;
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object; // 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
// JVM_IR_TEMPLATES
// 4 ASTORE 2
// 1 LOCALVARIABLE t Ljava/lang/Object;
// 1 LOCALVARIABLE t\$iv Ljava/lang/Object;
// JVM_IR_TEMPLATES_WITH_INLINE_SCOPES
// 4 ASTORE 2
// 1 LOCALVARIABLE t Ljava/lang/Object;
// 1 LOCALVARIABLE t\\1 Ljava/lang/Object;
@@ -37,6 +37,41 @@ fun box() {
} }
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:31 box:
// test.kt:3 box: $i$f$foo\1\31:int=0:int
// test.kt:3 <init>:
// test.kt:10 box: $i$f$foo\1\31:int=0:int
// test.kt:5 baz: param:int=5:int
// test.kt:6 baz: param:int=5:int, a:int=1:int
// test.kt:26 baz: param:int=5:int, a:int=1:int, $i$f$inlineCall\1\6:int=0:int
// test.kt:27 baz: param:int=5:int, a:int=1:int, $i$f$inlineCall\1\6:int=0:int, e\1:int=5:int
// test.kt:7 baz: param:int=5:int, a:int=1:int, $i$f$inlineCall\1\6:int=0:int, e\1:int=5:int, $i$a$-inlineCall-TestKt$foo$1$baz$1\2\129\0:int=0:int
// test.kt:8 baz: param:int=5:int, a:int=1:int, $i$f$inlineCall\1\6:int=0:int, e\1:int=5:int, $i$a$-inlineCall-TestKt$foo$1$baz$1\2\129\0:int=0:int, f\2:int=6:int
// test.kt:27 baz: param:int=5:int, a:int=1:int, $i$f$inlineCall\1\6:int=0:int, e\1:int=5:int
// test.kt:28 baz: param:int=5:int, a:int=1:int, $i$f$inlineCall\1\6:int=0:int, e\1:int=5:int
// test.kt:9 baz: param:int=5:int, a:int=1:int
// test.kt:11 box: $i$f$foo\1\31:int=0:int
// test.kt:35 box:
// test.kt:14 box: $i$f$bar\2\35:int=0:int
// test.kt:14 <init>:
// test.kt:22 box: $i$f$bar\2\35:int=0:int
// test.kt:16 baz: param:int=6:int
// test.kt:17 baz: param:int=6:int, b:int=2:int
// test.kt:36 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$2\1\17\0:int=0:int
// test.kt:37 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$2\1\17\0:int=0:int, d\1:int=4:int
// test.kt:17 baz: param:int=6:int, b:int=2:int
// test.kt:18 baz: param:int=6:int, b:int=2:int
// test.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\18:int=0:int
// test.kt:27 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\18:int=0:int, e\2:int=5:int
// test.kt:19 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\18:int=0:int, e\2:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$1\3\131\0:int=0:int
// test.kt:20 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\18:int=0:int, e\2:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$1\3\131\0:int=0:int, g\3:int=7:int
// test.kt:27 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\18:int=0:int, e\2:int=5:int
// test.kt:28 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\18:int=0:int, e\2:int=5:int
// test.kt:21 baz: param:int=6:int, b:int=2:int
// test.kt:23 box: $i$f$bar\2\35:int=0:int
// test.kt:38 box:
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:31 box: // test.kt:31 box:
// test.kt:3 box: $i$f$foo:int=0:int // test.kt:3 box: $i$f$foo:int=0:int
@@ -10,6 +10,16 @@ fun box() {
y++ y++
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:8 box:
// test.kt:2 <init>:
// test.kt:8 box:
// test.kt:9 box: a:A=A
// test.kt:4 box: a:A=A, this_\1:A=A, $i$f$getS\1\9:int=0:int
// test.kt:9 box: a:A=A
// test.kt:10 box: a:A=A, y:int=1:int
// test.kt:11 box: a:A=A, y:int=2:int
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:8 box: // test.kt:8 box:
// test.kt:2 <init>: // test.kt:2 <init>:
@@ -0,0 +1,4 @@
When compiling the code with inline scopes numbers and then inlining it with the old format, the resulting bytecode won't contain
enough $iv suffixes. This happens because the new format doesn't add $iv suffixes when the functions are inlined, but adds scope numbers
instead. These tests are only meant to test that the compiler doesn't crash in the scenario when the code is first compiled with the new
format and then inlined with the old one.
@@ -0,0 +1,55 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun foo(fooParam: Int, block: (Int) -> Unit) {
var fooVar = 0
block(42)
}
inline fun flaf() {
var flafVar = 0
foo(0) {
val x = 1
foo(1) {
val y = 2
}
foo(2) {
val z = 3
}
}
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
flaf()
}
// EXPECTATIONS JVM_IR
// test.kt:27 box:
// library.kt:11 box: $i$f$flaf:int=0:int
// library.kt:12 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int
// library.kt:6 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int
// library.kt:7 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int
// library.kt:13 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int
// library.kt:14 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int
// library.kt:6 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\3$iv:int=1:int, $i$f$foo\3\14:int=0:int
// library.kt:7 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\3$iv:int=1:int, $i$f$foo\3\14:int=0:int, fooVar\3$iv:int=0:int
// library.kt:15 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\3$iv:int=1:int, $i$f$foo\3\14:int=0:int, fooVar\3$iv:int=0:int, it\4$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1$1\4\27\2$iv:int=0:int
// library.kt:16 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\3$iv:int=1:int, $i$f$foo\3\14:int=0:int, fooVar\3$iv:int=0:int, it\4$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1$1\4\27\2$iv:int=0:int, y\4$iv:int=2:int
// library.kt:7 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\3$iv:int=1:int, $i$f$foo\3\14:int=0:int, fooVar\3$iv:int=0:int
// library.kt:8 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\3$iv:int=1:int, $i$f$foo\3\14:int=0:int, fooVar\3$iv:int=0:int
// library.kt:17 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int
// library.kt:6 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\5$iv:int=2:int, $i$f$foo\5\17:int=0:int
// library.kt:7 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\5$iv:int=2:int, $i$f$foo\5\17:int=0:int, fooVar\5$iv:int=0:int
// library.kt:18 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\5$iv:int=2:int, $i$f$foo\5\17:int=0:int, fooVar\5$iv:int=0:int, it\6$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1$2\6\30\2$iv:int=0:int
// library.kt:19 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\5$iv:int=2:int, $i$f$foo\5\17:int=0:int, fooVar\5$iv:int=0:int, it\6$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1$2\6\30\2$iv:int=0:int, z\6$iv:int=3:int
// library.kt:7 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\5$iv:int=2:int, $i$f$foo\5\17:int=0:int, fooVar\5$iv:int=0:int
// library.kt:8 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int, fooParam\5$iv:int=2:int, $i$f$foo\5\17:int=0:int, fooVar\5$iv:int=0:int
// library.kt:20 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int, it\2$iv:int=42:int, $i$a$-foo-LibraryKt$flaf$1\2\25\0$iv:int=0:int, x\2$iv:int=1:int
// library.kt:7 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int
// library.kt:8 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int, fooParam\1$iv:int=0:int, $i$f$foo\1\12:int=0:int, fooVar\1$iv:int=0:int
// library.kt:21 box: $i$f$flaf:int=0:int, flafVar$iv:int=0:int
// test.kt:28 box:
@@ -0,0 +1,76 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun bar(crossinline block: () -> Unit) {
object {
fun baz(param: Int) {
val b = 2
block()
inlineCall {
val g = 7
}
block()
inlineCall {
val g = 7
}
block()
inlineCall {
val g = 7
}
}
}.baz(6)
}
inline fun inlineCall(block: () -> Unit) {
block()
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
bar() {
val d = 4
}
}
// EXPECTATIONS JVM_IR
// test.kt:33 box:
// library.kt:6 box: $i$f$bar:int=0:int
// library.kt:6 <init>:
// library.kt:22 box: $i$f$bar:int=0:int
// library.kt:8 baz: param:int=6:int
// library.kt:9 baz: param:int=6:int, b:int=2:int
// test.kt:34 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:35 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// library.kt:9 baz: param:int=6:int, b:int=2:int
// library.kt:10 baz: param:int=6:int, b:int=2:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\1\10:int=0:int
// library.kt:11 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\1\10:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$1\2\30\0:int=0:int
// library.kt:12 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\1\10:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$1\2\30\0:int=0:int, g\2:int=7:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\1\10:int=0:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\1\10:int=0:int
// library.kt:13 baz: param:int=6:int, b:int=2:int
// test.kt:34 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:35 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// library.kt:13 baz: param:int=6:int, b:int=2:int
// library.kt:14 baz: param:int=6:int, b:int=2:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\3\14:int=0:int
// library.kt:15 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\3\14:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$2\4\32\0:int=0:int
// library.kt:16 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\3\14:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$2\4\32\0:int=0:int, g\4:int=7:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\3\14:int=0:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\3\14:int=0:int
// library.kt:17 baz: param:int=6:int, b:int=2:int
// test.kt:34 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:35 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// library.kt:17 baz: param:int=6:int, b:int=2:int
// library.kt:18 baz: param:int=6:int, b:int=2:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\18:int=0:int
// library.kt:19 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\18:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$3\6\34\0:int=0:int
// library.kt:20 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\18:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$3\6\34\0:int=0:int, g\6:int=7:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\18:int=0:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\18:int=0:int
// library.kt:21 baz: param:int=6:int, b:int=2:int
// library.kt:23 box: $i$f$bar:int=0:int
// test.kt:36 box:
@@ -0,0 +1,141 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun foo(fooParam: Int, block: (Int) -> Unit) {
val fooVar = 1
baz(1)
block(1)
}
inline fun bar(barParam: Int, block: (Int) -> Unit) {
val barVar = 2
block(1)
}
inline fun baz(bazParam: Int) {
val bazVar = 3
baz1(1) { baz1BlockParam ->
val baz1LambdaVar = 1
baz1(2) { baz1BlockParam1 ->
val baz1LambdaVar1 = 1
3
}
2
}
}
inline fun baz1(baz1Param: Int, block: (Int) -> Int) {
val baz1Var = 3
baz2(1)
block(1)
}
inline fun baz2(baz2Param: Int) {
val baz2Var = 3
}
inline fun flaf() {
val flafVar = 1
foo(1) { fooLambdaParam ->
val fooLamdbdaVar = 2
bar(2) { barLambdaParam ->
val barLamdbdaVar = 3
}
}
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
val mainVar = 1
flaf()
foo(1) { fooLambdaParam ->
val fooLamdbdaVar = 2
bar(2) { barLambdaParam ->
val barLamdbdaVar = 3
}
}
}
// EXPECTATIONS JVM_IR
// test.kt:52 box:
// test.kt:53 box: mainVar:int=1:int
// library.kt:39 box: mainVar:int=1:int, $i$f$flaf:int=0:int
// library.kt:40 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int
// library.kt:6 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int
// library.kt:7 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int
// library.kt:17 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int
// library.kt:18 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int
// library.kt:29 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int
// library.kt:30 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int
// library.kt:35 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz2Param\4$iv:int=1:int, $i$f$baz2\4\110:int=0:int
// library.kt:36 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz2Param\4$iv:int=1:int, $i$f$baz2\4\110:int=0:int, baz2Var\4$iv:int=3:int
// library.kt:31 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int
// library.kt:19 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int
// library.kt:20 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int
// library.kt:29 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int
// library.kt:30 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int, baz1Var\6$iv:int=3:int
// library.kt:35 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int, baz1Var\6$iv:int=3:int, baz2Param\7$iv:int=1:int, $i$f$baz2\7\128:int=0:int
// library.kt:36 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int, baz1Var\6$iv:int=3:int, baz2Param\7$iv:int=1:int, $i$f$baz2\7\128:int=0:int, baz2Var\7$iv:int=3:int
// library.kt:31 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int, baz1Var\6$iv:int=3:int
// library.kt:21 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int, baz1Var\6$iv:int=3:int, baz1BlockParam1\8$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1$1\8\129\5$iv:int=0:int
// library.kt:22 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int, baz1Var\6$iv:int=3:int, baz1BlockParam1\8$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1$1\8\129\5$iv:int=0:int, baz1LambdaVar1\8$iv:int=1:int
// library.kt:31 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int, baz1Var\6$iv:int=3:int
// library.kt:32 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int, baz1Param\6$iv:int=2:int, $i$f$baz1\6\118:int=0:int, baz1Var\6$iv:int=3:int
// library.kt:24 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int, baz1BlockParam\5$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\5\111\2$iv:int=0:int, baz1LambdaVar\5$iv:int=1:int
// library.kt:31 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int
// library.kt:32 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int, baz1Param\3$iv:int=1:int, $i$f$baz1\3\108:int=0:int, baz1Var\3$iv:int=3:int
// library.kt:26 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, bazParam\2$iv:int=1:int, $i$f$baz\2\97:int=0:int, bazVar\2$iv:int=3:int
// library.kt:8 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int
// library.kt:41 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int
// library.kt:42 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int, fooLamdbdaVar\9$iv:int=2:int
// library.kt:12 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int, fooLamdbdaVar\9$iv:int=2:int, barParam\10$iv:int=2:int, $i$f$bar\10\42:int=0:int
// library.kt:13 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int, fooLamdbdaVar\9$iv:int=2:int, barParam\10$iv:int=2:int, $i$f$bar\10\42:int=0:int, barVar\10$iv:int=2:int
// library.kt:43 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int, fooLamdbdaVar\9$iv:int=2:int, barParam\10$iv:int=2:int, $i$f$bar\10\42:int=0:int, barVar\10$iv:int=2:int, barLambdaParam\11$iv:int=1:int, $i$a$-bar-LibraryKt$flaf$1$1\11\137\9$iv:int=0:int
// library.kt:44 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int, fooLamdbdaVar\9$iv:int=2:int, barParam\10$iv:int=2:int, $i$f$bar\10\42:int=0:int, barVar\10$iv:int=2:int, barLambdaParam\11$iv:int=1:int, $i$a$-bar-LibraryKt$flaf$1$1\11\137\9$iv:int=0:int, barLamdbdaVar\11$iv:int=3:int
// library.kt:13 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int, fooLamdbdaVar\9$iv:int=2:int, barParam\10$iv:int=2:int, $i$f$bar\10\42:int=0:int, barVar\10$iv:int=2:int
// library.kt:14 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int, fooLamdbdaVar\9$iv:int=2:int, barParam\10$iv:int=2:int, $i$f$bar\10\42:int=0:int, barVar\10$iv:int=2:int
// library.kt:45 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int, fooLambdaParam\9$iv:int=1:int, $i$a$-foo-LibraryKt$flaf$1\9\135\0$iv:int=0:int, fooLamdbdaVar\9$iv:int=2:int
// library.kt:8 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int
// library.kt:9 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int, fooParam\1$iv:int=1:int, $i$f$foo\1\40:int=0:int, fooVar\1$iv:int=1:int
// library.kt:46 box: mainVar:int=1:int, $i$f$flaf:int=0:int, flafVar$iv:int=1:int
// test.kt:54 box: mainVar:int=1:int
// library.kt:6 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:7 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int
// library.kt:17 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int
// library.kt:18 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int
// library.kt:29 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int
// library.kt:30 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int
// library.kt:35 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz2Param\3$iv:int=1:int, $i$f$baz2\3\52:int=0:int
// library.kt:36 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz2Param\3$iv:int=1:int, $i$f$baz2\3\52:int=0:int, baz2Var\3$iv:int=3:int
// library.kt:31 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int
// library.kt:19 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int
// library.kt:20 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int
// library.kt:29 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int
// library.kt:30 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5$iv:int=3:int
// library.kt:35 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5$iv:int=3:int, baz2Param\6$iv:int=1:int, $i$f$baz2\6\70:int=0:int
// library.kt:36 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5$iv:int=3:int, baz2Param\6$iv:int=1:int, $i$f$baz2\6\70:int=0:int, baz2Var\6$iv:int=3:int
// library.kt:31 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5$iv:int=3:int
// library.kt:21 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5$iv:int=3:int, baz1BlockParam1\7$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1$1\7\71\4$iv:int=0:int
// library.kt:22 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5$iv:int=3:int, baz1BlockParam1\7$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1$1\7\71\4$iv:int=0:int, baz1LambdaVar1\7$iv:int=1:int
// library.kt:31 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5$iv:int=3:int
// library.kt:32 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int, baz1Param\5$iv:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5$iv:int=3:int
// library.kt:24 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int, baz1BlockParam\4$iv:int=1:int, $i$a$-baz1-LibraryKt$baz$1\4\53\1$iv:int=0:int, baz1LambdaVar\4$iv:int=1:int
// library.kt:31 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int
// library.kt:32 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int, baz1Param\2$iv:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2$iv:int=3:int
// library.kt:26 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, bazParam\1$iv:int=1:int, $i$f$baz\1\7:int=0:int, bazVar\1$iv:int=3:int
// library.kt:8 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int
// test.kt:55 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int
// test.kt:56 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, fooLamdbdaVar:int=2:int
// library.kt:12 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, fooLamdbdaVar:int=2:int, barParam$iv:int=2:int, $i$f$bar:int=0:int
// library.kt:13 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, fooLamdbdaVar:int=2:int, barParam$iv:int=2:int, $i$f$bar:int=0:int, barVar$iv:int=2:int
// test.kt:57 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, fooLamdbdaVar:int=2:int, barParam$iv:int=2:int, $i$f$bar:int=0:int, barVar$iv:int=2:int, barLambdaParam:int=1:int, $i$a$-bar-TestKt$box$1$1:int=0:int
// test.kt:58 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, fooLamdbdaVar:int=2:int, barParam$iv:int=2:int, $i$f$bar:int=0:int, barVar$iv:int=2:int, barLambdaParam:int=1:int, $i$a$-bar-TestKt$box$1$1:int=0:int, barLamdbdaVar:int=3:int
// library.kt:13 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, fooLamdbdaVar:int=2:int, barParam$iv:int=2:int, $i$f$bar:int=0:int, barVar$iv:int=2:int
// library.kt:14 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, fooLamdbdaVar:int=2:int, barParam$iv:int=2:int, $i$f$bar:int=0:int, barVar$iv:int=2:int
// test.kt:59 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int, fooLambdaParam:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, fooLamdbdaVar:int=2:int
// library.kt:8 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int
// library.kt:9 box: mainVar:int=1:int, fooParam$iv:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=1:int
// test.kt:60 box: mainVar:int=1:int
@@ -0,0 +1,109 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun g(xg: Int, block: (Int, Int) -> Unit) {
foo()
block(1, 2)
bar()
}
inline fun h() {
val xh = 1
val yh = 2
i()
}
inline fun i() {
val zi = 3
}
inline fun foo() {
val qfoo = 2
}
inline fun bar() {
val wbar = 2
}
inline fun j(xj: Int, block: (Int, Int) -> Unit) {
block(3, 4)
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
val m = 2
g(0) { xLambdaG, yLambdaG ->
h()
val p = 12
j(4) { xLambdaJ, yLambdaJ ->
val s = 22
}
}
val m1 = 2
g(0) { xLambdaG, yLambdaG ->
h()
val p1 = 12
j(4) { xLambdaJ, yLambdaJ ->
val s2 = 22
}
}
}
// EXPECTATIONS JVM_IR
// test.kt:37 box:
// test.kt:38 box: m:int=2:int
// library.kt:6 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// library.kt:22 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, $i$f$foo\1\6:int=0:int
// library.kt:23 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, $i$f$foo\1\6:int=0:int, qfoo\1$iv:int=2:int
// library.kt:7 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// test.kt:39 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int
// library.kt:12 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, $i$f$h:int=0:int
// library.kt:13 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int
// library.kt:14 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int, yh$iv:int=2:int
// library.kt:18 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int, yh$iv:int=2:int, $i$f$i\1\14:int=0:int
// library.kt:19 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int, yh$iv:int=2:int, $i$f$i\1\14:int=0:int, zi\1$iv:int=3:int
// library.kt:15 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int, yh$iv:int=2:int
// test.kt:40 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int
// test.kt:41 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, p:int=12:int
// library.kt:30 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, p:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int
// test.kt:42 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, p:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int, yLambdaJ:int=4:int, xLambdaJ:int=3:int, $i$a$-j-TestKt$box$1$1:int=0:int
// test.kt:43 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, p:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int, yLambdaJ:int=4:int, xLambdaJ:int=3:int, $i$a$-j-TestKt$box$1$1:int=0:int, s:int=22:int
// library.kt:30 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, p:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int
// library.kt:31 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, p:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int
// test.kt:44 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$1:int=0:int, p:int=12:int
// library.kt:7 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// library.kt:8 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// library.kt:26 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, $i$f$bar\2\8:int=0:int
// library.kt:27 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, $i$f$bar\2\8:int=0:int, wbar\2$iv:int=2:int
// library.kt:9 box: m:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// test.kt:46 box: m:int=2:int
// test.kt:47 box: m:int=2:int, m1:int=2:int
// library.kt:6 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// library.kt:22 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, $i$f$foo\1\6:int=0:int
// library.kt:23 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, $i$f$foo\1\6:int=0:int, qfoo\1$iv:int=2:int
// library.kt:7 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// test.kt:48 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int
// library.kt:12 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, $i$f$h:int=0:int
// library.kt:13 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int
// library.kt:14 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int, yh$iv:int=2:int
// library.kt:18 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int, yh$iv:int=2:int, $i$f$i\1\14:int=0:int
// library.kt:19 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int, yh$iv:int=2:int, $i$f$i\1\14:int=0:int, zi\1$iv:int=3:int
// library.kt:15 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, $i$f$h:int=0:int, xh$iv:int=1:int, yh$iv:int=2:int
// test.kt:49 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int
// test.kt:50 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, p1:int=12:int
// library.kt:30 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, p1:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int
// test.kt:51 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, p1:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int, yLambdaJ:int=4:int, xLambdaJ:int=3:int, $i$a$-j-TestKt$box$2$1:int=0:int
// test.kt:52 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, p1:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int, yLambdaJ:int=4:int, xLambdaJ:int=3:int, $i$a$-j-TestKt$box$2$1:int=0:int, s2:int=22:int
// library.kt:30 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, p1:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int
// library.kt:31 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, p1:int=12:int, xj$iv:int=4:int, $i$f$j:int=0:int
// test.kt:53 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, yLambdaG:int=2:int, xLambdaG:int=1:int, $i$a$-g-TestKt$box$2:int=0:int, p1:int=12:int
// library.kt:7 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// library.kt:8 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// library.kt:26 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, $i$f$bar\2\8:int=0:int
// library.kt:27 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int, $i$f$bar\2\8:int=0:int, wbar\2$iv:int=2:int
// library.kt:9 box: m:int=2:int, m1:int=2:int, xg$iv:int=0:int, $i$f$g:int=0:int
// test.kt:54 box: m:int=2:int, m1:int=2:int
@@ -0,0 +1,48 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun foo(xFoo: Int, f: (Int, Int) -> Unit) {
val yFoo = 1
f(xFoo, yFoo)
}
inline fun bar(xBar: Int) {
val yBar = 2
val dangerous = 3; foo(3) { x, y ->
x + y
}
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
val m = 1
bar(1)
bar(2)
}
// EXPECTATIONS JVM_IR
// test.kt:21 box:
// test.kt:22 box: m:int=1:int
// library.kt:11 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int
// library.kt:12 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int, yBar$iv:int=2:int
// library.kt:6 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int
// library.kt:7 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int
// library.kt:13 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int, y\2$iv:int=1:int, x\2$iv:int=3:int, $i$a$-foo-LibraryKt$bar$1\2\19\0$iv:int=0:int
// library.kt:14 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int, y\2$iv:int=1:int, x\2$iv:int=3:int, $i$a$-foo-LibraryKt$bar$1\2\19\0$iv:int=0:int
// library.kt:7 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int
// library.kt:8 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int
// library.kt:15 box: m:int=1:int, xBar$iv:int=1:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int
// test.kt:23 box: m:int=1:int
// library.kt:11 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int
// library.kt:12 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int, yBar$iv:int=2:int
// library.kt:6 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int
// library.kt:7 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int
// library.kt:13 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int, y\2$iv:int=1:int, x\2$iv:int=3:int, $i$a$-foo-LibraryKt$bar$1\2\19\0$iv:int=0:int
// library.kt:14 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int, y\2$iv:int=1:int, x\2$iv:int=3:int, $i$a$-foo-LibraryKt$bar$1\2\19\0$iv:int=0:int
// library.kt:7 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int
// library.kt:8 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int, xFoo\1$iv:int=3:int, $i$f$foo\1\12:int=0:int, yFoo\1$iv:int=1:int
// library.kt:15 box: m:int=1:int, xBar$iv:int=2:int, $i$f$bar:int=0:int, yBar$iv:int=2:int, dangerous$iv:int=3:int
// test.kt:24 box: m:int=1:int
@@ -0,0 +1,92 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun foo() {
val fooVar = 100
x1(1)
x4(4)
}
inline fun x1(x1Var: Int) {
val y1 = 1
x2(2)
x3(3)
}
inline fun x2(x2Var: Int) {
val y2 = 2
}
inline fun x3(x3Var: Int) {
val y3 = 3
}
inline fun x4(x4Var: Int) {
val y4 = 4
x5(5)
x6(6)
}
inline fun x5(x5Var: Int) {
val y5 = 5
}
inline fun x6(x6Var: Int) {
val y6 = 6
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
val m = 1
foo()
foo()
}
// EXPECTATIONS JVM_IR
// test.kt:43 box:
// test.kt:44 box: m:int=1:int
// library.kt:6 box: m:int=1:int, $i$f$foo:int=0:int
// library.kt:7 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int
// library.kt:12 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int
// library.kt:13 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int
// library.kt:18 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int, x2Var\2$iv:int=2:int, $i$f$x2\2\41:int=0:int
// library.kt:19 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int, x2Var\2$iv:int=2:int, $i$f$x2\2\41:int=0:int, y2\2$iv:int=2:int
// library.kt:14 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int
// library.kt:22 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int, x3Var\3$iv:int=3:int, $i$f$x3\3\42:int=0:int
// library.kt:23 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int, x3Var\3$iv:int=3:int, $i$f$x3\3\42:int=0:int, y3\3$iv:int=3:int
// library.kt:15 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int
// library.kt:8 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int
// library.kt:26 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int
// library.kt:27 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int
// library.kt:32 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int, x5Var\5$iv:int=5:int, $i$f$x5\5\53:int=0:int
// library.kt:33 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int, x5Var\5$iv:int=5:int, $i$f$x5\5\53:int=0:int, y5\5$iv:int=5:int
// library.kt:28 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int
// library.kt:36 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int, x6Var\6$iv:int=6:int, $i$f$x6\6\54:int=0:int
// library.kt:37 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int, x6Var\6$iv:int=6:int, $i$f$x6\6\54:int=0:int, y6\6$iv:int=6:int
// library.kt:29 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int
// library.kt:9 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int
// test.kt:45 box: m:int=1:int
// library.kt:6 box: m:int=1:int, $i$f$foo:int=0:int
// library.kt:7 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int
// library.kt:12 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int
// library.kt:13 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int
// library.kt:18 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int, x2Var\2$iv:int=2:int, $i$f$x2\2\41:int=0:int
// library.kt:19 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int, x2Var\2$iv:int=2:int, $i$f$x2\2\41:int=0:int, y2\2$iv:int=2:int
// library.kt:14 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int
// library.kt:22 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int, x3Var\3$iv:int=3:int, $i$f$x3\3\42:int=0:int
// library.kt:23 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int, x3Var\3$iv:int=3:int, $i$f$x3\3\42:int=0:int, y3\3$iv:int=3:int
// library.kt:15 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x1Var\1$iv:int=1:int, $i$f$x1\1\7:int=0:int, y1\1$iv:int=1:int
// library.kt:8 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int
// library.kt:26 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int
// library.kt:27 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int
// library.kt:32 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int, x5Var\5$iv:int=5:int, $i$f$x5\5\53:int=0:int
// library.kt:33 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int, x5Var\5$iv:int=5:int, $i$f$x5\5\53:int=0:int, y5\5$iv:int=5:int
// library.kt:28 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int
// library.kt:36 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int, x6Var\6$iv:int=6:int, $i$f$x6\6\54:int=0:int
// library.kt:37 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int, x6Var\6$iv:int=6:int, $i$f$x6\6\54:int=0:int, y6\6$iv:int=6:int
// library.kt:29 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int, x4Var\4$iv:int=4:int, $i$f$x4\4\8:int=0:int, y4\4$iv:int=4:int
// library.kt:9 box: m:int=1:int, $i$f$foo:int=0:int, fooVar$iv:int=100:int
// test.kt:46 box: m:int=1:int
@@ -0,0 +1,79 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun foo(f: (Int) -> Unit) {
val x6 = 6
f(8)
val x7 = 7
}
inline fun bar() {
val x0 = 0
x1()
}
inline fun baz() {
x4()
x5()
}
inline fun x1() {
val x1 = 1
x2()
val x3 = 3
}
inline fun x2() {
val x2 = 2
}
inline fun x4() {
val x4 = 4
}
inline fun x5() {
val x5 = 5
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
val m = -1
bar()
foo {
val x8 = 8
}
baz()
}
// EXPECTATIONS JVM_IR
// test.kt:43 box:
// test.kt:44 box: m:int=-1:int
// library.kt:12 box: m:int=-1:int, $i$f$bar:int=0:int
// library.kt:13 box: m:int=-1:int, $i$f$bar:int=0:int, x0$iv:int=0:int
// library.kt:22 box: m:int=-1:int, $i$f$bar:int=0:int, x0$iv:int=0:int, $i$f$x1\1\13:int=0:int
// library.kt:23 box: m:int=-1:int, $i$f$bar:int=0:int, x0$iv:int=0:int, $i$f$x1\1\13:int=0:int, x1\1$iv:int=1:int
// library.kt:28 box: m:int=-1:int, $i$f$bar:int=0:int, x0$iv:int=0:int, $i$f$x1\1\13:int=0:int, x1\1$iv:int=1:int, $i$f$x2\2\41:int=0:int
// library.kt:29 box: m:int=-1:int, $i$f$bar:int=0:int, x0$iv:int=0:int, $i$f$x1\1\13:int=0:int, x1\1$iv:int=1:int, $i$f$x2\2\41:int=0:int, x2\2$iv:int=2:int
// library.kt:24 box: m:int=-1:int, $i$f$bar:int=0:int, x0$iv:int=0:int, $i$f$x1\1\13:int=0:int, x1\1$iv:int=1:int
// library.kt:25 box: m:int=-1:int, $i$f$bar:int=0:int, x0$iv:int=0:int, $i$f$x1\1\13:int=0:int, x1\1$iv:int=1:int, x3\1$iv:int=3:int
// library.kt:14 box: m:int=-1:int, $i$f$bar:int=0:int, x0$iv:int=0:int
// test.kt:45 box: m:int=-1:int
// library.kt:6 box: m:int=-1:int, $i$f$foo:int=0:int
// library.kt:7 box: m:int=-1:int, $i$f$foo:int=0:int, x6$iv:int=6:int
// test.kt:46 box: m:int=-1:int, $i$f$foo:int=0:int, x6$iv:int=6:int, it:int=8:int, $i$a$-foo-TestKt$box$1:int=0:int
// test.kt:47 box: m:int=-1:int, $i$f$foo:int=0:int, x6$iv:int=6:int, it:int=8:int, $i$a$-foo-TestKt$box$1:int=0:int, x8:int=8:int
// library.kt:7 box: m:int=-1:int, $i$f$foo:int=0:int, x6$iv:int=6:int
// library.kt:8 box: m:int=-1:int, $i$f$foo:int=0:int, x6$iv:int=6:int
// library.kt:9 box: m:int=-1:int, $i$f$foo:int=0:int, x6$iv:int=6:int, x7$iv:int=7:int
// test.kt:48 box: m:int=-1:int
// library.kt:17 box: m:int=-1:int, $i$f$baz:int=0:int
// library.kt:32 box: m:int=-1:int, $i$f$baz:int=0:int, $i$f$x4\1\17:int=0:int
// library.kt:33 box: m:int=-1:int, $i$f$baz:int=0:int, $i$f$x4\1\17:int=0:int, x4\1$iv:int=4:int
// library.kt:18 box: m:int=-1:int, $i$f$baz:int=0:int
// library.kt:36 box: m:int=-1:int, $i$f$baz:int=0:int, $i$f$x5\2\18:int=0:int
// library.kt:37 box: m:int=-1:int, $i$f$baz:int=0:int, $i$f$x5\2\18:int=0:int, x5\2$iv:int=5:int
// library.kt:19 box: m:int=-1:int, $i$f$baz:int=0:int
// test.kt:49 box: m:int=-1:int
@@ -0,0 +1,172 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun foo(xFoo: Int, f: (Int) -> Unit, g: (Int) -> Unit) {
bar(0, 1, 2)
f(1)
bar(1, 2, 3)
g(2)
bar(2, 3, 4)
}
inline fun bar(xBar1: Int, xBar2: Int, xBar3: Int) {
baz(100, 101, 102)
}
inline fun baz(xBaz1: Int, xBaz2: Int, xBaz3: Int) {
x1()
x2()
}
inline fun x1() {
val x1 = 1
}
inline fun x2() {
val x2 = 2
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
foo(1, {
val y1 = 1
bar(0, 1, 2)
}, {
val y2 = 2
bar(1, 2, 3)
})
foo(1, {
val y1 = 1
bar(0, 1, 2)
}, {
val y2 = 2
bar(1, 2, 3)
})
}
// EXPECTATIONS JVM_IR
// test.kt:34 box:
// library.kt:6 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int, $i$f$x1\3\35:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int, $i$f$x1\3\35:int=0:int, x1\3$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int, $i$f$x2\4\36:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int, $i$f$x2\4\36:int=0:int, x2\4$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int
// library.kt:7 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// test.kt:35 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int
// test.kt:36 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x1\2\76:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x1\2\76:int=0:int, x1\2$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x2\3\77:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x2\3\77:int=0:int, x2\3$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int
// test.kt:37 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$1:int=0:int, y1:int=1:int
// library.kt:7 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:8 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int, $i$f$x1\7\50:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int, $i$f$x1\7\50:int=0:int, x1\7$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int, $i$f$x2\8\51:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int, $i$f$x2\8\51:int=0:int, x2\8$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int
// library.kt:9 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// test.kt:38 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int
// test.kt:39 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x1\2\76:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x1\2\76:int=0:int, x1\2$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x2\3\77:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x2\3\77:int=0:int, x2\3$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int
// test.kt:40 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$2:int=0:int, y2:int=2:int
// library.kt:9 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:10 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int, $i$f$x1\11\65:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int, $i$f$x1\11\65:int=0:int, x1\11$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int, $i$f$x2\12\66:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int, $i$f$x2\12\66:int=0:int, x2\12$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int
// library.kt:11 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// test.kt:42 box:
// library.kt:6 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int, $i$f$x1\3\35:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int, $i$f$x1\3\35:int=0:int, x1\3$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int, $i$f$x2\4\36:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int, $i$f$x2\4\36:int=0:int, x2\4$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int, xBaz1\2$iv:int=100:int, xBaz2\2$iv:int=101:int, xBaz3\2$iv:int=102:int, $i$f$baz\2\31:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\1$iv:int=0:int, xBar2\1$iv:int=1:int, xBar3\1$iv:int=2:int, $i$f$bar\1\6:int=0:int
// library.kt:7 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// test.kt:43 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int
// test.kt:44 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x1\2\76:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x1\2\76:int=0:int, x1\2$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x2\3\77:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x2\3\77:int=0:int, x2\3$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int, xBar1$iv:int=0:int, xBar2$iv:int=1:int, xBar3$iv:int=2:int, $i$f$bar:int=0:int
// test.kt:45 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=1:int, $i$a$-foo-TestKt$box$3:int=0:int, y1:int=1:int
// library.kt:7 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:8 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int, $i$f$x1\7\50:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int, $i$f$x1\7\50:int=0:int, x1\7$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int, $i$f$x2\8\51:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int, $i$f$x2\8\51:int=0:int, x2\8$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int, xBaz1\6$iv:int=100:int, xBaz2\6$iv:int=101:int, xBaz3\6$iv:int=102:int, $i$f$baz\6\46:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\5$iv:int=1:int, xBar2\5$iv:int=2:int, xBar3\5$iv:int=3:int, $i$f$bar\5\8:int=0:int
// library.kt:9 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// test.kt:46 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int
// test.kt:47 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x1\2\76:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x1\2\76:int=0:int, x1\2$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x2\3\77:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int, $i$f$x2\3\77:int=0:int, x2\3$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int, xBaz1\1$iv:int=100:int, xBaz2\1$iv:int=101:int, xBaz3\1$iv:int=102:int, $i$f$baz\1\14:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int, xBar1$iv:int=1:int, xBar2$iv:int=2:int, xBar3$iv:int=3:int, $i$f$bar:int=0:int
// test.kt:48 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, it:int=2:int, $i$a$-foo-TestKt$box$4:int=0:int, y2:int=2:int
// library.kt:9 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:10 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// library.kt:14 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int
// library.kt:18 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int
// library.kt:23 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int, $i$f$x1\11\65:int=0:int
// library.kt:24 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int, $i$f$x1\11\65:int=0:int, x1\11$iv:int=1:int
// library.kt:19 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int
// library.kt:27 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int, $i$f$x2\12\66:int=0:int
// library.kt:28 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int, $i$f$x2\12\66:int=0:int, x2\12$iv:int=2:int
// library.kt:20 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int, xBaz1\10$iv:int=100:int, xBaz2\10$iv:int=101:int, xBaz3\10$iv:int=102:int, $i$f$baz\10\61:int=0:int
// library.kt:15 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int, xBar1\9$iv:int=2:int, xBar2\9$iv:int=3:int, xBar3\9$iv:int=4:int, $i$f$bar\9\10:int=0:int
// library.kt:11 box: xFoo$iv:int=1:int, $i$f$foo:int=0:int
// test.kt:49 box:
@@ -0,0 +1,413 @@
// WITH_STDLIB
// USE_INLINE_SCOPES_NUMBERS
// MODULE: library
// FILE: library.kt
class MyClass {
inline fun f1(f1Param: () -> Unit): MyClass {
test()
f1Param()
return this
}
inline fun f2(f1Param: () -> Unit): MyClass {
test()
f1Param()
return this
}
}
inline fun foo() {
val array = arrayOf(1, 2)
val myClass = MyClass()
test()
myClass.f1 { test() }
.f2 { test() }
test()
myClass.f1 { test() }
.f2 { test() }
test()
array.map {
it * 2
}
test()
array.map { it * 2 }
.filter {
it > 2
}
test()
array.map { it * 2 }
.filter {
it > 2
}
test()
myClass.f1 { test() }.f2 { test() }
test()
myClass.f1 { test() }.f2 { test() }
}
inline fun test() {
val testVal = 1
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
foo()
foo()
}
// EXPECTATIONS JVM_IR
// test.kt:64 box:
// library.kt:21 box: $i$f$foo\1\64:int=0:int
// library.kt:22 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[]
// library.kt:6 <init>:
// library.kt:22 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[]
// library.kt:24 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\2\418:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\2\418:int=0:int, testVal\2:int=1:int
// library.kt:25 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$f$test\4\422:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$f$test\4\422:int=0:int, testVal\4:int=1:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int
// library.kt:25 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$a$-f1-LibraryKt$foo$1\5\425\1:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$a$-f1-LibraryKt$foo$1\5\425\1:int=0:int, $i$f$test\6\421:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$a$-f1-LibraryKt$foo$1\5\425\1:int=0:int, $i$f$test\6\421:int=0:int, testVal\6:int=1:int
// library.kt:25 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$a$-f1-LibraryKt$foo$1\5\425\1:int=0:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int
// library.kt:10 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int
// library.kt:26 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$f$test\8\428:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$f$test\8\428:int=0:int, testVal\8:int=1:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int
// library.kt:26 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$a$-f2-LibraryKt$foo$2\9\431\1:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$a$-f2-LibraryKt$foo$2\9\431\1:int=0:int, $i$f$test\10\427:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$a$-f2-LibraryKt$foo$2\9\431\1:int=0:int, $i$f$test\10\427:int=0:int, testVal\10:int=1:int
// library.kt:26 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$a$-f2-LibraryKt$foo$2\9\431\1:int=0:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int
// library.kt:16 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int
// library.kt:28 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\11\433:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\11\433:int=0:int, testVal\11:int=1:int
// library.kt:29 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$f$test\13\422:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$f$test\13\422:int=0:int, testVal\13:int=1:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int
// library.kt:29 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$a$-f1-LibraryKt$foo$3\14\439\1:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$a$-f1-LibraryKt$foo$3\14\439\1:int=0:int, $i$f$test\15\436:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$a$-f1-LibraryKt$foo$3\14\439\1:int=0:int, $i$f$test\15\436:int=0:int, testVal\15:int=1:int
// library.kt:29 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$a$-f1-LibraryKt$foo$3\14\439\1:int=0:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int
// library.kt:10 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int
// library.kt:30 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$f$test\17\442:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$f$test\17\442:int=0:int, testVal\17:int=1:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int
// library.kt:30 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$a$-f2-LibraryKt$foo$4\18\445\1:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$a$-f2-LibraryKt$foo$4\18\445\1:int=0:int, $i$f$test\19\441:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$a$-f2-LibraryKt$foo$4\18\445\1:int=0:int, $i$f$test\19\441:int=0:int, testVal\19:int=1:int
// library.kt:30 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$a$-f2-LibraryKt$foo$4\18\445\1:int=0:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int
// library.kt:16 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int
// library.kt:32 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\20\447:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\20\447:int=0:int, testVal\20:int=1:int
// library.kt:33 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer
// library.kt:34 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer, it\23:int=1:int, $i$a$-map-LibraryKt$foo$5\23\453\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer
// library.kt:34 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer, it\23:int=2:int, $i$a$-map-LibraryKt$foo$5\23\453\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int
// library.kt:37 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\24\456:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\24\456:int=0:int, testVal\24:int=1:int
// library.kt:38 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer
// library.kt:38 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer, it\27:int=1:int, $i$a$-map-LibraryKt$foo$6\27\461\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer
// library.kt:38 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer, it\27:int=2:int, $i$a$-map-LibraryKt$foo$6\27\461\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int
// library.kt:39 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Collections.kt:764 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int
// library.kt:40 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int, element\29:java.lang.Object=java.lang.Integer, it\30:int=2:int, $i$a$-filter-LibraryKt$foo$7\30\465\1:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int, element\29:java.lang.Object=java.lang.Integer
// library.kt:40 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int, element\29:java.lang.Object=java.lang.Integer, it\30:int=4:int, $i$a$-filter-LibraryKt$foo$7\30\465\1:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int, element\29:java.lang.Object=java.lang.Integer
// _Collections.kt:856 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int
// _Collections.kt:764 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int
// library.kt:43 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\31\468:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\31\468:int=0:int, testVal\31:int=1:int
// library.kt:44 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer
// library.kt:44 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer, it\34:int=1:int, $i$a$-map-LibraryKt$foo$8\34\461\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer
// library.kt:44 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer, it\34:int=2:int, $i$a$-map-LibraryKt$foo$8\34\461\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int
// library.kt:45 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Collections.kt:764 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int
// library.kt:46 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int, element\36:java.lang.Object=java.lang.Integer, it\37:int=2:int, $i$a$-filter-LibraryKt$foo$9\37\473\1:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int, element\36:java.lang.Object=java.lang.Integer
// library.kt:46 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int, element\36:java.lang.Object=java.lang.Integer, it\37:int=4:int, $i$a$-filter-LibraryKt$foo$9\37\473\1:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int, element\36:java.lang.Object=java.lang.Integer
// _Collections.kt:856 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int
// _Collections.kt:764 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int
// library.kt:49 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\38\476:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\38\476:int=0:int, testVal\38:int=1:int
// library.kt:50 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$f$test\40\422:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$f$test\40\422:int=0:int, testVal\40:int=1:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int
// library.kt:50 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$a$-f1-LibraryKt$foo$10\41\486\1:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$a$-f1-LibraryKt$foo$10\41\486\1:int=0:int, $i$f$test\42\477:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$a$-f1-LibraryKt$foo$10\41\486\1:int=0:int, $i$f$test\42\477:int=0:int, testVal\42:int=1:int
// library.kt:50 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$a$-f1-LibraryKt$foo$10\41\486\1:int=0:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int
// library.kt:10 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int
// library.kt:50 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$f$test\44\491:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$f$test\44\491:int=0:int, testVal\44:int=1:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int
// library.kt:50 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$a$-f2-LibraryKt$foo$11\45\492\1:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$a$-f2-LibraryKt$foo$11\45\492\1:int=0:int, $i$f$test\46\477:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$a$-f2-LibraryKt$foo$11\45\492\1:int=0:int, $i$f$test\46\477:int=0:int, testVal\46:int=1:int
// library.kt:50 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$a$-f2-LibraryKt$foo$11\45\492\1:int=0:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int
// library.kt:16 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int
// library.kt:52 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\47\479:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\47\479:int=0:int, testVal\47:int=1:int
// library.kt:53 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$f$test\49\422:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$f$test\49\422:int=0:int, testVal\49:int=1:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int
// library.kt:53 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$a$-f1-LibraryKt$foo$12\50\486\1:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$a$-f1-LibraryKt$foo$12\50\486\1:int=0:int, $i$f$test\51\480:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$a$-f1-LibraryKt$foo$12\50\486\1:int=0:int, $i$f$test\51\480:int=0:int, testVal\51:int=1:int
// library.kt:53 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$a$-f1-LibraryKt$foo$12\50\486\1:int=0:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int
// library.kt:10 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int
// library.kt:53 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$f$test\53\491:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$f$test\53\491:int=0:int, testVal\53:int=1:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int
// library.kt:53 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$a$-f2-LibraryKt$foo$13\54\492\1:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$a$-f2-LibraryKt$foo$13\54\492\1:int=0:int, $i$f$test\55\480:int=0:int
// library.kt:58 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$a$-f2-LibraryKt$foo$13\54\492\1:int=0:int, $i$f$test\55\480:int=0:int, testVal\55:int=1:int
// library.kt:53 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$a$-f2-LibraryKt$foo$13\54\492\1:int=0:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int
// library.kt:16 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int
// library.kt:54 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// test.kt:65 box:
// library.kt:21 box: $i$f$foo\56\65:int=0:int
// library.kt:22 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[]
// library.kt:6 <init>:
// library.kt:22 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[]
// library.kt:24 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\57\497:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\57\497:int=0:int, testVal\57:int=1:int
// library.kt:25 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$f$test\59\501:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$f$test\59\501:int=0:int, testVal\59:int=1:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int
// library.kt:25 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$a$-f1-LibraryKt$foo$1\60\504\56:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$a$-f1-LibraryKt$foo$1\60\504\56:int=0:int, $i$f$test\61\500:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$a$-f1-LibraryKt$foo$1\60\504\56:int=0:int, $i$f$test\61\500:int=0:int, testVal\61:int=1:int
// library.kt:25 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$a$-f1-LibraryKt$foo$1\60\504\56:int=0:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int
// library.kt:10 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int
// library.kt:26 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$f$test\63\507:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$f$test\63\507:int=0:int, testVal\63:int=1:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int
// library.kt:26 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$a$-f2-LibraryKt$foo$2\64\510\56:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$a$-f2-LibraryKt$foo$2\64\510\56:int=0:int, $i$f$test\65\506:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$a$-f2-LibraryKt$foo$2\64\510\56:int=0:int, $i$f$test\65\506:int=0:int, testVal\65:int=1:int
// library.kt:26 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$a$-f2-LibraryKt$foo$2\64\510\56:int=0:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int
// library.kt:16 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int
// library.kt:28 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\66\512:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\66\512:int=0:int, testVal\66:int=1:int
// library.kt:29 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$f$test\68\516:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$f$test\68\516:int=0:int, testVal\68:int=1:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int
// library.kt:29 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$a$-f1-LibraryKt$foo$3\69\519\56:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$a$-f1-LibraryKt$foo$3\69\519\56:int=0:int, $i$f$test\70\515:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$a$-f1-LibraryKt$foo$3\69\519\56:int=0:int, $i$f$test\70\515:int=0:int, testVal\70:int=1:int
// library.kt:29 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$a$-f1-LibraryKt$foo$3\69\519\56:int=0:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int
// library.kt:10 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int
// library.kt:30 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$f$test\72\522:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$f$test\72\522:int=0:int, testVal\72:int=1:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int
// library.kt:30 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$a$-f2-LibraryKt$foo$4\73\525\56:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$a$-f2-LibraryKt$foo$4\73\525\56:int=0:int, $i$f$test\74\521:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$a$-f2-LibraryKt$foo$4\73\525\56:int=0:int, $i$f$test\74\521:int=0:int, testVal\74:int=1:int
// library.kt:30 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$a$-f2-LibraryKt$foo$4\73\525\56:int=0:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int
// library.kt:16 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int
// library.kt:32 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\75\527:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\75\527:int=0:int, testVal\75:int=1:int
// library.kt:33 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer
// library.kt:34 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer, it\78:int=1:int, $i$a$-map-LibraryKt$foo$5\78\533\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer
// library.kt:34 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer, it\78:int=2:int, $i$a$-map-LibraryKt$foo$5\78\533\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int
// library.kt:37 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\79\536:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\79\536:int=0:int, testVal\79:int=1:int
// library.kt:38 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer
// library.kt:38 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer, it\82:int=1:int, $i$a$-map-LibraryKt$foo$6\82\542\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer
// library.kt:38 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer, it\82:int=2:int, $i$a$-map-LibraryKt$foo$6\82\542\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int
// library.kt:39 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Collections.kt:764 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int
// library.kt:40 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int, element\84:java.lang.Object=java.lang.Integer, it\85:int=2:int, $i$a$-filter-LibraryKt$foo$7\85\546\56:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int, element\84:java.lang.Object=java.lang.Integer
// library.kt:40 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int, element\84:java.lang.Object=java.lang.Integer, it\85:int=4:int, $i$a$-filter-LibraryKt$foo$7\85\546\56:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int, element\84:java.lang.Object=java.lang.Integer
// _Collections.kt:856 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int
// _Collections.kt:764 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int
// library.kt:43 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\86\549:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\86\549:int=0:int, testVal\86:int=1:int
// library.kt:44 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer
// library.kt:44 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer, it\89:int=1:int, $i$a$-map-LibraryKt$foo$8\89\555\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer
// library.kt:44 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer, it\89:int=2:int, $i$a$-map-LibraryKt$foo$8\89\555\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int
// library.kt:45 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Collections.kt:764 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int
// library.kt:46 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int, element\91:java.lang.Object=java.lang.Integer, it\92:int=2:int, $i$a$-filter-LibraryKt$foo$9\92\559\56:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int, element\91:java.lang.Object=java.lang.Integer
// library.kt:46 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int, element\91:java.lang.Object=java.lang.Integer, it\92:int=4:int, $i$a$-filter-LibraryKt$foo$9\92\559\56:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int, element\91:java.lang.Object=java.lang.Integer
// _Collections.kt:856 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int
// _Collections.kt:764 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int
// library.kt:49 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\93\562:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\93\562:int=0:int, testVal\93:int=1:int
// library.kt:50 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$f$test\95\572:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$f$test\95\572:int=0:int, testVal\95:int=1:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int
// library.kt:50 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$a$-f1-LibraryKt$foo$10\96\573\56:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$a$-f1-LibraryKt$foo$10\96\573\56:int=0:int, $i$f$test\97\563:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$a$-f1-LibraryKt$foo$10\96\573\56:int=0:int, $i$f$test\97\563:int=0:int, testVal\97:int=1:int
// library.kt:50 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$a$-f1-LibraryKt$foo$10\96\573\56:int=0:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int
// library.kt:10 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int
// library.kt:50 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$f$test\99\578:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$f$test\99\578:int=0:int, testVal\99:int=1:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int
// library.kt:50 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$a$-f2-LibraryKt$foo$11\100\579\56:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$a$-f2-LibraryKt$foo$11\100\579\56:int=0:int, $i$f$test\101\563:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$a$-f2-LibraryKt$foo$11\100\579\56:int=0:int, $i$f$test\101\563:int=0:int, testVal\101:int=1:int
// library.kt:50 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$a$-f2-LibraryKt$foo$11\100\579\56:int=0:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int
// library.kt:16 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int
// library.kt:52 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\102\565:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\102\565:int=0:int, testVal\102:int=1:int
// library.kt:53 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$f$test\104\572:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$f$test\104\572:int=0:int, testVal\104:int=1:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int
// library.kt:53 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$a$-f1-LibraryKt$foo$12\105\573\56:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$a$-f1-LibraryKt$foo$12\105\573\56:int=0:int, $i$f$test\106\566:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$a$-f1-LibraryKt$foo$12\105\573\56:int=0:int, $i$f$test\106\566:int=0:int, testVal\106:int=1:int
// library.kt:53 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$a$-f1-LibraryKt$foo$12\105\573\56:int=0:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int
// library.kt:10 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int
// library.kt:53 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$f$test\108\578:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$f$test\108\578:int=0:int, testVal\108:int=1:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int
// library.kt:53 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$a$-f2-LibraryKt$foo$13\109\579\56:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$a$-f2-LibraryKt$foo$13\109\579\56:int=0:int, $i$f$test\110\566:int=0:int
// library.kt:58 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$a$-f2-LibraryKt$foo$13\109\579\56:int=0:int, $i$f$test\110\566:int=0:int, testVal\110:int=1:int
// library.kt:53 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$a$-f2-LibraryKt$foo$13\109\579\56:int=0:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int
// library.kt:16 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int
// library.kt:54 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// test.kt:66 box:
@@ -0,0 +1,158 @@
// MODULE: library
// USE_INLINE_SCOPES_NUMBERS
// FILE: library.kt
inline fun bar(crossinline block: () -> Unit) {
object {
fun baz(param: Int) {
val b = 2
block()
inlineCall(1, 2) {
val g = 7
}
block()
inlineCall(1, 2) {
val g = 7
}
block()
inlineCall(1, 2) {
val g = 7
}
}
}.baz(6)
}
inline fun inlineCall(inlineCallParam1: Int, inlineCallParam2: Int, block: () -> Unit) {
val e = 5
baz1(1) { baz1BlockParam ->
val baz1LambdaVar = 1
baz1(2) { baz1BlockParam1 ->
val baz1LambdaVar1 = 1
3
}
2
}
block()
}
inline fun baz1(baz1Param: Int, block: (Int) -> Int) {
val baz1Var = 3
baz2(1)
block(1)
}
inline fun baz2(baz2Param: Int) {
val baz2Var = 3
}
// MODULE: test(library)
// FILE: test.kt
fun box() {
bar() {
val d = 4
}
}
// EXPECTATIONS JVM_IR
// test.kt:52 box:
// library.kt:6 box: $i$f$bar:int=0:int
// library.kt:6 <init>:
// library.kt:22 box: $i$f$bar:int=0:int
// library.kt:8 baz: param:int=6:int
// library.kt:9 baz: param:int=6:int, b:int=2:int
// test.kt:53 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:54 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// library.kt:9 baz: param:int=6:int, b:int=2:int
// library.kt:10 baz: param:int=6:int, b:int=2:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz2Param\3:int=1:int, $i$f$baz2\3\52:int=0:int
// library.kt:46 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz2Param\3:int=1:int, $i$f$baz2\3\52:int=0:int, baz2Var\3:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int
// library.kt:28 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int
// library.kt:29 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5:int=3:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5:int=3:int, baz2Param\6:int=1:int, $i$f$baz2\6\71:int=0:int
// library.kt:46 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5:int=3:int, baz2Param\6:int=1:int, $i$f$baz2\6\71:int=0:int, baz2Var\6:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5:int=3:int
// library.kt:30 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5:int=3:int, baz1BlockParam1\7:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\7\72\4:int=0:int
// library.kt:31 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5:int=3:int, baz1BlockParam1\7:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\7\72\4:int=0:int, baz1LambdaVar1\7:int=1:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5:int=3:int
// library.kt:42 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int, baz1Param\5:int=2:int, $i$f$baz1\5\60:int=0:int, baz1Var\5:int=3:int
// library.kt:33 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int, baz1BlockParam\4:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\4\53\1:int=0:int, baz1LambdaVar\4:int=1:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int
// library.kt:42 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, baz1Param\2:int=1:int, $i$f$baz1\2\50:int=0:int, baz1Var\2:int=3:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int
// library.kt:11 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$1\8\66\0:int=0:int
// library.kt:12 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$1\8\66\0:int=0:int, g\8:int=7:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int
// library.kt:36 baz: param:int=6:int, b:int=2:int, inlineCallParam1\1:int=1:int, inlineCallParam2\1:int=2:int, $i$f$inlineCall\1\10:int=0:int, e\1:int=5:int
// library.kt:13 baz: param:int=6:int, b:int=2:int
// test.kt:53 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:54 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// library.kt:13 baz: param:int=6:int, b:int=2:int
// library.kt:14 baz: param:int=6:int, b:int=2:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz2Param\11:int=1:int, $i$f$baz2\11\81:int=0:int
// library.kt:46 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz2Param\11:int=1:int, $i$f$baz2\11\81:int=0:int, baz2Var\11:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int
// library.kt:28 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int
// library.kt:29 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int, baz1Var\13:int=3:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int, baz1Var\13:int=3:int, baz2Param\14:int=1:int, $i$f$baz2\14\100:int=0:int
// library.kt:46 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int, baz1Var\13:int=3:int, baz2Param\14:int=1:int, $i$f$baz2\14\100:int=0:int, baz2Var\14:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int, baz1Var\13:int=3:int
// library.kt:30 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int, baz1Var\13:int=3:int, baz1BlockParam1\15:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\15\101\12:int=0:int
// library.kt:31 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int, baz1Var\13:int=3:int, baz1BlockParam1\15:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\15\101\12:int=0:int, baz1LambdaVar1\15:int=1:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int, baz1Var\13:int=3:int
// library.kt:42 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int, baz1Param\13:int=2:int, $i$f$baz1\13\89:int=0:int, baz1Var\13:int=3:int
// library.kt:33 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int, baz1BlockParam\12:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\12\82\9:int=0:int, baz1LambdaVar\12:int=1:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int
// library.kt:42 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, baz1Param\10:int=1:int, $i$f$baz1\10\79:int=0:int, baz1Var\10:int=3:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int
// library.kt:15 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$2\16\95\0:int=0:int
// library.kt:16 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$2\16\95\0:int=0:int, g\16:int=7:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int
// library.kt:36 baz: param:int=6:int, b:int=2:int, inlineCallParam1\9:int=1:int, inlineCallParam2\9:int=2:int, $i$f$inlineCall\9\14:int=0:int, e\9:int=5:int
// library.kt:17 baz: param:int=6:int, b:int=2:int
// test.kt:53 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:54 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// library.kt:17 baz: param:int=6:int, b:int=2:int
// library.kt:18 baz: param:int=6:int, b:int=2:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz2Param\19:int=1:int, $i$f$baz2\19\110:int=0:int
// library.kt:46 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz2Param\19:int=1:int, $i$f$baz2\19\110:int=0:int, baz2Var\19:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int
// library.kt:28 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int
// library.kt:29 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int, baz1Var\21:int=3:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int, baz1Var\21:int=3:int, baz2Param\22:int=1:int, $i$f$baz2\22\129:int=0:int
// library.kt:46 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int, baz1Var\21:int=3:int, baz2Param\22:int=1:int, $i$f$baz2\22\129:int=0:int, baz2Var\22:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int, baz1Var\21:int=3:int
// library.kt:30 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int, baz1Var\21:int=3:int, baz1BlockParam1\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\23\130\20:int=0:int
// library.kt:31 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int, baz1Var\21:int=3:int, baz1BlockParam1\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\23\130\20:int=0:int, baz1LambdaVar1\23:int=1:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int, baz1Var\21:int=3:int
// library.kt:42 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int, baz1Param\21:int=2:int, $i$f$baz1\21\118:int=0:int, baz1Var\21:int=3:int
// library.kt:33 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int, baz1BlockParam\20:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\20\111\17:int=0:int, baz1LambdaVar\20:int=1:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int
// library.kt:42 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, baz1Param\18:int=1:int, $i$f$baz1\18\108:int=0:int, baz1Var\18:int=3:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int
// library.kt:19 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$3\24\124\0:int=0:int
// library.kt:20 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$3\24\124\0:int=0:int, g\24:int=7:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int
// library.kt:36 baz: param:int=6:int, b:int=2:int, inlineCallParam1\17:int=1:int, inlineCallParam2\17:int=2:int, $i$f$inlineCall\17\18:int=0:int, e\17:int=5:int
// library.kt:21 baz: param:int=6:int, b:int=2:int
// library.kt:23 box: $i$f$bar:int=0:int
// test.kt:55 box:
@@ -0,0 +1,55 @@
// MODULE: library
// FILE: library.kt
inline fun foo(fooParam: Int, block: (Int) -> Unit) {
var fooVar = 0
block(42)
}
inline fun flaf() {
var flafVar = 0
foo(0) {
val x = 1
foo(1) {
val y = 2
}
foo(2) {
val z = 3
}
}
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
flaf()
}
// EXPECTATIONS JVM_IR
// test.kt:27 box:
// library.kt:10 box: $i$f$flaf\1\27:int=0:int
// library.kt:11 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int
// library.kt:5 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int
// library.kt:6 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int
// library.kt:12 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int
// library.kt:13 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int
// library.kt:5 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\4:int=1:int, $i$f$foo\4\67:int=0:int
// library.kt:6 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\4:int=1:int, $i$f$foo\4\67:int=0:int, fooVar\4:int=0:int
// library.kt:14 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\4:int=1:int, $i$f$foo\4\67:int=0:int, fooVar\4:int=0:int, it\5:int=42:int, $i$a$-foo-LibraryKt$flaf$1$1\5\60\3:int=0:int
// library.kt:15 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\4:int=1:int, $i$f$foo\4\67:int=0:int, fooVar\4:int=0:int, it\5:int=42:int, $i$a$-foo-LibraryKt$flaf$1$1\5\60\3:int=0:int, y\5:int=2:int
// library.kt:6 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\4:int=1:int, $i$f$foo\4\67:int=0:int, fooVar\4:int=0:int
// library.kt:7 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\4:int=1:int, $i$f$foo\4\67:int=0:int, fooVar\4:int=0:int
// library.kt:16 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int
// library.kt:5 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\6:int=2:int, $i$f$foo\6\70:int=0:int
// library.kt:6 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\6:int=2:int, $i$f$foo\6\70:int=0:int, fooVar\6:int=0:int
// library.kt:17 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\6:int=2:int, $i$f$foo\6\70:int=0:int, fooVar\6:int=0:int, it\7:int=42:int, $i$a$-foo-LibraryKt$flaf$1$2\7\60\3:int=0:int
// library.kt:18 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\6:int=2:int, $i$f$foo\6\70:int=0:int, fooVar\6:int=0:int, it\7:int=42:int, $i$a$-foo-LibraryKt$flaf$1$2\7\60\3:int=0:int, z\7:int=3:int
// library.kt:6 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\6:int=2:int, $i$f$foo\6\70:int=0:int, fooVar\6:int=0:int
// library.kt:7 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int, fooParam\6:int=2:int, $i$f$foo\6\70:int=0:int, fooVar\6:int=0:int
// library.kt:19 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int, it\3:int=42:int, $i$a$-foo-LibraryKt$flaf$1\3\60\1:int=0:int, x\3:int=1:int
// library.kt:6 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int
// library.kt:7 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int, fooParam\2:int=0:int, $i$f$foo\2\58:int=0:int, fooVar\2:int=0:int
// library.kt:20 box: $i$f$flaf\1\27:int=0:int, flafVar\1:int=0:int
// test.kt:28 box:
@@ -0,0 +1,76 @@
// MODULE: library
// FILE: library.kt
inline fun bar(crossinline block: () -> Unit) {
object {
fun baz(param: Int) {
val b = 2
block()
inlineCall {
val g = 7
}
block()
inlineCall {
val g = 7
}
block()
inlineCall {
val g = 7
}
}
}.baz(6)
}
inline fun inlineCall(block: () -> Unit) {
block()
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
bar() {
val d = 4
}
}
// EXPECTATIONS JVM_IR
// test.kt:33 box:
// library.kt:5 box: $i$f$bar\1\33:int=0:int
// library.kt:5 <init>:
// library.kt:21 box: $i$f$bar\1\33:int=0:int
// library.kt:7 baz: param:int=6:int
// library.kt:8 baz: param:int=6:int, b:int=2:int
// test.kt:34 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\1\8\0:int=0:int
// test.kt:35 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\1\8\0:int=0:int, d\1:int=4:int
// library.kt:8 baz: param:int=6:int, b:int=2:int
// library.kt:9 baz: param:int=6:int, b:int=2:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\9:int=0:int
// library.kt:10 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\9:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$1\3\31\0:int=0:int
// library.kt:11 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\9:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$1\3\31\0:int=0:int, g\3:int=7:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\9:int=0:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\9:int=0:int
// library.kt:12 baz: param:int=6:int, b:int=2:int
// test.kt:34 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\4\12\0:int=0:int
// test.kt:35 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\4\12\0:int=0:int, d\4:int=4:int
// library.kt:12 baz: param:int=6:int, b:int=2:int
// library.kt:13 baz: param:int=6:int, b:int=2:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\13:int=0:int
// library.kt:14 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\13:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$2\6\33\0:int=0:int
// library.kt:15 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\13:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$2\6\33\0:int=0:int, g\6:int=7:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\13:int=0:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\13:int=0:int
// library.kt:16 baz: param:int=6:int, b:int=2:int
// test.kt:34 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\7\16\0:int=0:int
// test.kt:35 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\7\16\0:int=0:int, d\7:int=4:int
// library.kt:16 baz: param:int=6:int, b:int=2:int
// library.kt:17 baz: param:int=6:int, b:int=2:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\17:int=0:int
// library.kt:18 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\17:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$3\9\35\0:int=0:int
// library.kt:19 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\17:int=0:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$3\9\35\0:int=0:int, g\9:int=7:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\17:int=0:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\17:int=0:int
// library.kt:20 baz: param:int=6:int, b:int=2:int
// library.kt:22 box: $i$f$bar\1\33:int=0:int
// test.kt:36 box:
@@ -0,0 +1,141 @@
// MODULE: library
// FILE: library.kt
inline fun foo(fooParam: Int, block: (Int) -> Unit) {
val fooVar = 1
baz(1)
block(1)
}
inline fun bar(barParam: Int, block: (Int) -> Unit) {
val barVar = 2
block(1)
}
inline fun baz(bazParam: Int) {
val bazVar = 3
baz1(1) { baz1BlockParam ->
val baz1LambdaVar = 1
baz1(2) { baz1BlockParam1 ->
val baz1LambdaVar1 = 1
3
}
2
}
}
inline fun baz1(baz1Param: Int, block: (Int) -> Int) {
val baz1Var = 3
baz2(1)
block(1)
}
inline fun baz2(baz2Param: Int) {
val baz2Var = 3
}
inline fun flaf() {
val flafVar = 1
foo(1) { fooLambdaParam ->
val fooLamdbdaVar = 2
bar(2) { barLambdaParam ->
val barLamdbdaVar = 3
}
}
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
val mainVar = 1
flaf()
foo(1) { fooLambdaParam ->
val fooLamdbdaVar = 2
bar(2) { barLambdaParam ->
val barLamdbdaVar = 3
}
}
}
// EXPECTATIONS JVM_IR
// test.kt:52 box:
// test.kt:53 box: mainVar:int=1:int
// library.kt:38 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int
// library.kt:39 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int
// library.kt:5 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int
// library.kt:6 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int
// library.kt:16 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int
// library.kt:17 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int
// library.kt:28 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int
// library.kt:29 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int
// library.kt:34 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz2Param\5:int=1:int, $i$f$baz2\5\159:int=0:int
// library.kt:35 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz2Param\5:int=1:int, $i$f$baz2\5\159:int=0:int, baz2Var\5:int=3:int
// library.kt:30 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int
// library.kt:18 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int
// library.kt:19 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int
// library.kt:28 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int
// library.kt:29 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int, baz1Var\7:int=3:int
// library.kt:34 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int, baz1Var\7:int=3:int, baz2Param\8:int=1:int, $i$f$baz2\8\177:int=0:int
// library.kt:35 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int, baz1Var\7:int=3:int, baz2Param\8:int=1:int, $i$f$baz2\8\177:int=0:int, baz2Var\8:int=3:int
// library.kt:30 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int, baz1Var\7:int=3:int
// library.kt:20 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int, baz1Var\7:int=3:int, baz1BlockParam1\9:int=1:int, $i$a$-baz1-LibraryKt$baz$1$1\9\178\6:int=0:int
// library.kt:21 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int, baz1Var\7:int=3:int, baz1BlockParam1\9:int=1:int, $i$a$-baz1-LibraryKt$baz$1$1\9\178\6:int=0:int, baz1LambdaVar1\9:int=1:int
// library.kt:30 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int, baz1Var\7:int=3:int
// library.kt:31 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int, baz1Param\7:int=2:int, $i$f$baz1\7\167:int=0:int, baz1Var\7:int=3:int
// library.kt:23 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int, baz1BlockParam\6:int=1:int, $i$a$-baz1-LibraryKt$baz$1\6\160\3:int=0:int, baz1LambdaVar\6:int=1:int
// library.kt:30 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int
// library.kt:31 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int, baz1Param\4:int=1:int, $i$f$baz1\4\157:int=0:int, baz1Var\4:int=3:int
// library.kt:25 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, bazParam\3:int=1:int, $i$f$baz\3\146:int=0:int, bazVar\3:int=3:int
// library.kt:7 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int
// library.kt:40 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int
// library.kt:41 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int, fooLamdbdaVar\10:int=2:int
// library.kt:11 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int, fooLamdbdaVar\10:int=2:int, barParam\11:int=2:int, $i$f$bar\11\186:int=0:int
// library.kt:12 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int, fooLamdbdaVar\10:int=2:int, barParam\11:int=2:int, $i$f$bar\11\186:int=0:int, barVar\11:int=2:int
// library.kt:42 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int, fooLamdbdaVar\10:int=2:int, barParam\11:int=2:int, $i$f$bar\11\186:int=0:int, barVar\11:int=2:int, barLambdaParam\12:int=1:int, $i$a$-bar-LibraryKt$flaf$1$1\12\188\10:int=0:int
// library.kt:43 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int, fooLamdbdaVar\10:int=2:int, barParam\11:int=2:int, $i$f$bar\11\186:int=0:int, barVar\11:int=2:int, barLambdaParam\12:int=1:int, $i$a$-bar-LibraryKt$flaf$1$1\12\188\10:int=0:int, barLamdbdaVar\12:int=3:int
// library.kt:12 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int, fooLamdbdaVar\10:int=2:int, barParam\11:int=2:int, $i$f$bar\11\186:int=0:int, barVar\11:int=2:int
// library.kt:13 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int, fooLamdbdaVar\10:int=2:int, barParam\11:int=2:int, $i$f$bar\11\186:int=0:int, barVar\11:int=2:int
// library.kt:44 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int, fooLambdaParam\10:int=1:int, $i$a$-foo-LibraryKt$flaf$1\10\184\1:int=0:int, fooLamdbdaVar\10:int=2:int
// library.kt:7 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int
// library.kt:8 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int, fooParam\2:int=1:int, $i$f$foo\2\144:int=0:int, fooVar\2:int=1:int
// library.kt:45 box: mainVar:int=1:int, $i$f$flaf\1\53:int=0:int, flafVar\1:int=1:int
// test.kt:54 box: mainVar:int=1:int
// library.kt:5 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int
// library.kt:6 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int
// library.kt:16 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int
// library.kt:17 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int
// library.kt:28 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int
// library.kt:29 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int
// library.kt:34 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz2Param\16:int=1:int, $i$f$baz2\16\209:int=0:int
// library.kt:35 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz2Param\16:int=1:int, $i$f$baz2\16\209:int=0:int, baz2Var\16:int=3:int
// library.kt:30 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int
// library.kt:18 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int
// library.kt:19 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int
// library.kt:28 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int
// library.kt:29 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int, baz1Var\18:int=3:int
// library.kt:34 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int, baz1Var\18:int=3:int, baz2Param\19:int=1:int, $i$f$baz2\19\227:int=0:int
// library.kt:35 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int, baz1Var\18:int=3:int, baz2Param\19:int=1:int, $i$f$baz2\19\227:int=0:int, baz2Var\19:int=3:int
// library.kt:30 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int, baz1Var\18:int=3:int
// library.kt:20 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int, baz1Var\18:int=3:int, baz1BlockParam1\20:int=1:int, $i$a$-baz1-LibraryKt$baz$1$1\20\228\17:int=0:int
// library.kt:21 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int, baz1Var\18:int=3:int, baz1BlockParam1\20:int=1:int, $i$a$-baz1-LibraryKt$baz$1$1\20\228\17:int=0:int, baz1LambdaVar1\20:int=1:int
// library.kt:30 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int, baz1Var\18:int=3:int
// library.kt:31 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int, baz1Param\18:int=2:int, $i$f$baz1\18\217:int=0:int, baz1Var\18:int=3:int
// library.kt:23 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int, baz1BlockParam\17:int=1:int, $i$a$-baz1-LibraryKt$baz$1\17\210\14:int=0:int, baz1LambdaVar\17:int=1:int
// library.kt:30 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int
// library.kt:31 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int, baz1Param\15:int=1:int, $i$f$baz1\15\207:int=0:int, baz1Var\15:int=3:int
// library.kt:25 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, bazParam\14:int=1:int, $i$f$baz\14\196:int=0:int, bazVar\14:int=3:int
// library.kt:7 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int
// test.kt:55 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int
// test.kt:56 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int, fooLamdbdaVar\21:int=2:int
// library.kt:11 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int, fooLamdbdaVar\21:int=2:int, barParam\22:int=2:int, $i$f$bar\22\56:int=0:int
// library.kt:12 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int, fooLamdbdaVar\21:int=2:int, barParam\22:int=2:int, $i$f$bar\22\56:int=0:int, barVar\22:int=2:int
// test.kt:57 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int, fooLamdbdaVar\21:int=2:int, barParam\22:int=2:int, $i$f$bar\22\56:int=0:int, barVar\22:int=2:int, barLambdaParam\23:int=1:int, $i$a$-bar-TestKt$box$1$1\23\236\21:int=0:int
// test.kt:58 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int, fooLamdbdaVar\21:int=2:int, barParam\22:int=2:int, $i$f$bar\22\56:int=0:int, barVar\22:int=2:int, barLambdaParam\23:int=1:int, $i$a$-bar-TestKt$box$1$1\23\236\21:int=0:int, barLamdbdaVar\23:int=3:int
// library.kt:12 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int, fooLamdbdaVar\21:int=2:int, barParam\22:int=2:int, $i$f$bar\22\56:int=0:int, barVar\22:int=2:int
// library.kt:13 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int, fooLamdbdaVar\21:int=2:int, barParam\22:int=2:int, $i$f$bar\22\56:int=0:int, barVar\22:int=2:int
// test.kt:59 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int, fooLambdaParam\21:int=1:int, $i$a$-foo-TestKt$box$1\21\234\0:int=0:int, fooLamdbdaVar\21:int=2:int
// library.kt:7 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int
// library.kt:8 box: mainVar:int=1:int, fooParam\13:int=1:int, $i$f$foo\13\54:int=0:int, fooVar\13:int=1:int
// test.kt:60 box: mainVar:int=1:int
@@ -0,0 +1,109 @@
// MODULE: library
// FILE: library.kt
inline fun g(xg: Int, block: (Int, Int) -> Unit) {
foo()
block(1, 2)
bar()
}
inline fun h() {
val xh = 1
val yh = 2
i()
}
inline fun i() {
val zi = 3
}
inline fun foo() {
val qfoo = 2
}
inline fun bar() {
val wbar = 2
}
inline fun j(xj: Int, block: (Int, Int) -> Unit) {
block(3, 4)
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
val m = 2
g(0) { xLambdaG, yLambdaG ->
h()
val p = 12
j(4) { xLambdaJ, yLambdaJ ->
val s = 22
}
}
val m1 = 2
g(0) { xLambdaG, yLambdaG ->
h()
val p1 = 12
j(4) { xLambdaJ, yLambdaJ ->
val s2 = 22
}
}
}
// EXPECTATIONS JVM_IR
// test.kt:37 box:
// test.kt:38 box: m:int=2:int
// library.kt:5 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int
// library.kt:21 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, $i$f$foo\2\111:int=0:int
// library.kt:22 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, $i$f$foo\2\111:int=0:int, qfoo\2:int=2:int
// library.kt:6 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int
// test.kt:39 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int
// library.kt:11 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, $i$f$h\5\39:int=0:int
// library.kt:12 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, $i$f$h\5\39:int=0:int, xh\5:int=1:int
// library.kt:13 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, $i$f$h\5\39:int=0:int, xh\5:int=1:int, yh\5:int=2:int
// library.kt:17 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, $i$f$h\5\39:int=0:int, xh\5:int=1:int, yh\5:int=2:int, $i$f$i\6\117:int=0:int
// library.kt:18 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, $i$f$h\5\39:int=0:int, xh\5:int=1:int, yh\5:int=2:int, $i$f$i\6\117:int=0:int, zi\6:int=3:int
// library.kt:14 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, $i$f$h\5\39:int=0:int, xh\5:int=1:int, yh\5:int=2:int
// test.kt:40 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int
// test.kt:41 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, p\4:int=12:int
// library.kt:29 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, p\4:int=12:int, xj\7:int=4:int, $i$f$j\7\41:int=0:int
// test.kt:42 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, p\4:int=12:int, xj\7:int=4:int, $i$f$j\7\41:int=0:int, yLambdaJ\8:int=4:int, xLambdaJ\8:int=3:int, $i$a$-j-TestKt$box$1$1\8\123\4:int=0:int
// test.kt:43 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, p\4:int=12:int, xj\7:int=4:int, $i$f$j\7\41:int=0:int, yLambdaJ\8:int=4:int, xLambdaJ\8:int=3:int, $i$a$-j-TestKt$box$1$1\8\123\4:int=0:int, s\8:int=22:int
// library.kt:29 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, p\4:int=12:int, xj\7:int=4:int, $i$f$j\7\41:int=0:int
// library.kt:30 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, p\4:int=12:int, xj\7:int=4:int, $i$f$j\7\41:int=0:int
// test.kt:44 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, yLambdaG\4:int=2:int, xLambdaG\4:int=1:int, $i$a$-g-TestKt$box$1\4\114\0:int=0:int, p\4:int=12:int
// library.kt:6 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int
// library.kt:7 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int
// library.kt:25 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, $i$f$bar\3\125:int=0:int
// library.kt:26 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int, $i$f$bar\3\125:int=0:int, wbar\3:int=2:int
// library.kt:8 box: m:int=2:int, xg\1:int=0:int, $i$f$g\1\38:int=0:int
// test.kt:46 box: m:int=2:int
// test.kt:47 box: m:int=2:int, m1:int=2:int
// library.kt:5 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int
// library.kt:21 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, $i$f$foo\10\129:int=0:int
// library.kt:22 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, $i$f$foo\10\129:int=0:int, qfoo\10:int=2:int
// library.kt:6 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int
// test.kt:48 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int
// library.kt:11 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, $i$f$h\13\48:int=0:int
// library.kt:12 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, $i$f$h\13\48:int=0:int, xh\13:int=1:int
// library.kt:13 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, $i$f$h\13\48:int=0:int, xh\13:int=1:int, yh\13:int=2:int
// library.kt:17 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, $i$f$h\13\48:int=0:int, xh\13:int=1:int, yh\13:int=2:int, $i$f$i\14\135:int=0:int
// library.kt:18 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, $i$f$h\13\48:int=0:int, xh\13:int=1:int, yh\13:int=2:int, $i$f$i\14\135:int=0:int, zi\14:int=3:int
// library.kt:14 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, $i$f$h\13\48:int=0:int, xh\13:int=1:int, yh\13:int=2:int
// test.kt:49 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int
// test.kt:50 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, p1\12:int=12:int
// library.kt:29 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, p1\12:int=12:int, xj\15:int=4:int, $i$f$j\15\50:int=0:int
// test.kt:51 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, p1\12:int=12:int, xj\15:int=4:int, $i$f$j\15\50:int=0:int, yLambdaJ\16:int=4:int, xLambdaJ\16:int=3:int, $i$a$-j-TestKt$box$2$1\16\141\12:int=0:int
// test.kt:52 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, p1\12:int=12:int, xj\15:int=4:int, $i$f$j\15\50:int=0:int, yLambdaJ\16:int=4:int, xLambdaJ\16:int=3:int, $i$a$-j-TestKt$box$2$1\16\141\12:int=0:int, s2\16:int=22:int
// library.kt:29 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, p1\12:int=12:int, xj\15:int=4:int, $i$f$j\15\50:int=0:int
// library.kt:30 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, p1\12:int=12:int, xj\15:int=4:int, $i$f$j\15\50:int=0:int
// test.kt:53 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, yLambdaG\12:int=2:int, xLambdaG\12:int=1:int, $i$a$-g-TestKt$box$2\12\132\0:int=0:int, p1\12:int=12:int
// library.kt:6 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int
// library.kt:7 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int
// library.kt:25 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, $i$f$bar\11\143:int=0:int
// library.kt:26 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int, $i$f$bar\11\143:int=0:int, wbar\11:int=2:int
// library.kt:8 box: m:int=2:int, m1:int=2:int, xg\9:int=0:int, $i$f$g\9\47:int=0:int
// test.kt:54 box: m:int=2:int, m1:int=2:int
@@ -0,0 +1,48 @@
// MODULE: library
// FILE: library.kt
inline fun foo(xFoo: Int, f: (Int, Int) -> Unit) {
val yFoo = 1
f(xFoo, yFoo)
}
inline fun bar(xBar: Int) {
val yBar = 2
val dangerous = 3; foo(3) { x, y ->
x + y
}
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
val m = 1
bar(1)
bar(2)
}
// EXPECTATIONS JVM_IR
// test.kt:21 box:
// test.kt:22 box: m:int=1:int
// library.kt:10 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int
// library.kt:11 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int, yBar\1:int=2:int
// library.kt:5 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int, yBar\1:int=2:int, dangerous\1:int=3:int, xFoo\2:int=3:int, $i$f$foo\2\51:int=0:int
// library.kt:6 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int, yBar\1:int=2:int, dangerous\1:int=3:int, xFoo\2:int=3:int, $i$f$foo\2\51:int=0:int, yFoo\2:int=1:int
// library.kt:12 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int, yBar\1:int=2:int, dangerous\1:int=3:int, xFoo\2:int=3:int, $i$f$foo\2\51:int=0:int, yFoo\2:int=1:int, y\3:int=1:int, x\3:int=3:int, $i$a$-foo-LibraryKt$bar$1\3\53\1:int=0:int
// library.kt:13 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int, yBar\1:int=2:int, dangerous\1:int=3:int, xFoo\2:int=3:int, $i$f$foo\2\51:int=0:int, yFoo\2:int=1:int, y\3:int=1:int, x\3:int=3:int, $i$a$-foo-LibraryKt$bar$1\3\53\1:int=0:int
// library.kt:6 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int, yBar\1:int=2:int, dangerous\1:int=3:int, xFoo\2:int=3:int, $i$f$foo\2\51:int=0:int, yFoo\2:int=1:int
// library.kt:7 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int, yBar\1:int=2:int, dangerous\1:int=3:int, xFoo\2:int=3:int, $i$f$foo\2\51:int=0:int, yFoo\2:int=1:int
// library.kt:14 box: m:int=1:int, xBar\1:int=1:int, $i$f$bar\1\22:int=0:int, yBar\1:int=2:int, dangerous\1:int=3:int
// test.kt:23 box: m:int=1:int
// library.kt:10 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int
// library.kt:11 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int, yBar\4:int=2:int
// library.kt:5 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int, yBar\4:int=2:int, dangerous\4:int=3:int, xFoo\5:int=3:int, $i$f$foo\5\63:int=0:int
// library.kt:6 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int, yBar\4:int=2:int, dangerous\4:int=3:int, xFoo\5:int=3:int, $i$f$foo\5\63:int=0:int, yFoo\5:int=1:int
// library.kt:12 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int, yBar\4:int=2:int, dangerous\4:int=3:int, xFoo\5:int=3:int, $i$f$foo\5\63:int=0:int, yFoo\5:int=1:int, y\6:int=1:int, x\6:int=3:int, $i$a$-foo-LibraryKt$bar$1\6\65\4:int=0:int
// library.kt:13 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int, yBar\4:int=2:int, dangerous\4:int=3:int, xFoo\5:int=3:int, $i$f$foo\5\63:int=0:int, yFoo\5:int=1:int, y\6:int=1:int, x\6:int=3:int, $i$a$-foo-LibraryKt$bar$1\6\65\4:int=0:int
// library.kt:6 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int, yBar\4:int=2:int, dangerous\4:int=3:int, xFoo\5:int=3:int, $i$f$foo\5\63:int=0:int, yFoo\5:int=1:int
// library.kt:7 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int, yBar\4:int=2:int, dangerous\4:int=3:int, xFoo\5:int=3:int, $i$f$foo\5\63:int=0:int, yFoo\5:int=1:int
// library.kt:14 box: m:int=1:int, xBar\4:int=2:int, $i$f$bar\4\23:int=0:int, yBar\4:int=2:int, dangerous\4:int=3:int
// test.kt:24 box: m:int=1:int
@@ -0,0 +1,92 @@
// MODULE: library
// FILE: library.kt
inline fun foo() {
val fooVar = 100
x1(1)
x4(4)
}
inline fun x1(x1Var: Int) {
val y1 = 1
x2(2)
x3(3)
}
inline fun x2(x2Var: Int) {
val y2 = 2
}
inline fun x3(x3Var: Int) {
val y3 = 3
}
inline fun x4(x4Var: Int) {
val y4 = 4
x5(5)
x6(6)
}
inline fun x5(x5Var: Int) {
val y5 = 5
}
inline fun x6(x6Var: Int) {
val y6 = 6
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
val m = 1
foo()
foo()
}
// EXPECTATIONS JVM_IR
// test.kt:43 box:
// test.kt:44 box: m:int=1:int
// library.kt:5 box: m:int=1:int, $i$f$foo\1\44:int=0:int
// library.kt:6 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int
// library.kt:11 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x1Var\2:int=1:int, $i$f$x1\2\95:int=0:int
// library.kt:12 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x1Var\2:int=1:int, $i$f$x1\2\95:int=0:int, y1\2:int=1:int
// library.kt:17 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x1Var\2:int=1:int, $i$f$x1\2\95:int=0:int, y1\2:int=1:int, x2Var\3:int=2:int, $i$f$x2\3\101:int=0:int
// library.kt:18 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x1Var\2:int=1:int, $i$f$x1\2\95:int=0:int, y1\2:int=1:int, x2Var\3:int=2:int, $i$f$x2\3\101:int=0:int, y2\3:int=2:int
// library.kt:13 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x1Var\2:int=1:int, $i$f$x1\2\95:int=0:int, y1\2:int=1:int
// library.kt:21 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x1Var\2:int=1:int, $i$f$x1\2\95:int=0:int, y1\2:int=1:int, x3Var\4:int=3:int, $i$f$x3\4\102:int=0:int
// library.kt:22 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x1Var\2:int=1:int, $i$f$x1\2\95:int=0:int, y1\2:int=1:int, x3Var\4:int=3:int, $i$f$x3\4\102:int=0:int, y3\4:int=3:int
// library.kt:14 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x1Var\2:int=1:int, $i$f$x1\2\95:int=0:int, y1\2:int=1:int
// library.kt:7 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int
// library.kt:25 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x4Var\5:int=4:int, $i$f$x4\5\96:int=0:int
// library.kt:26 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x4Var\5:int=4:int, $i$f$x4\5\96:int=0:int, y4\5:int=4:int
// library.kt:31 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x4Var\5:int=4:int, $i$f$x4\5\96:int=0:int, y4\5:int=4:int, x5Var\6:int=5:int, $i$f$x5\6\115:int=0:int
// library.kt:32 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x4Var\5:int=4:int, $i$f$x4\5\96:int=0:int, y4\5:int=4:int, x5Var\6:int=5:int, $i$f$x5\6\115:int=0:int, y5\6:int=5:int
// library.kt:27 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x4Var\5:int=4:int, $i$f$x4\5\96:int=0:int, y4\5:int=4:int
// library.kt:35 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x4Var\5:int=4:int, $i$f$x4\5\96:int=0:int, y4\5:int=4:int, x6Var\7:int=6:int, $i$f$x6\7\116:int=0:int
// library.kt:36 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x4Var\5:int=4:int, $i$f$x4\5\96:int=0:int, y4\5:int=4:int, x6Var\7:int=6:int, $i$f$x6\7\116:int=0:int, y6\7:int=6:int
// library.kt:28 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int, x4Var\5:int=4:int, $i$f$x4\5\96:int=0:int, y4\5:int=4:int
// library.kt:8 box: m:int=1:int, $i$f$foo\1\44:int=0:int, fooVar\1:int=100:int
// test.kt:45 box: m:int=1:int
// library.kt:5 box: m:int=1:int, $i$f$foo\8\45:int=0:int
// library.kt:6 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int
// library.kt:11 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x1Var\9:int=1:int, $i$f$x1\9\127:int=0:int
// library.kt:12 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x1Var\9:int=1:int, $i$f$x1\9\127:int=0:int, y1\9:int=1:int
// library.kt:17 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x1Var\9:int=1:int, $i$f$x1\9\127:int=0:int, y1\9:int=1:int, x2Var\10:int=2:int, $i$f$x2\10\133:int=0:int
// library.kt:18 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x1Var\9:int=1:int, $i$f$x1\9\127:int=0:int, y1\9:int=1:int, x2Var\10:int=2:int, $i$f$x2\10\133:int=0:int, y2\10:int=2:int
// library.kt:13 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x1Var\9:int=1:int, $i$f$x1\9\127:int=0:int, y1\9:int=1:int
// library.kt:21 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x1Var\9:int=1:int, $i$f$x1\9\127:int=0:int, y1\9:int=1:int, x3Var\11:int=3:int, $i$f$x3\11\134:int=0:int
// library.kt:22 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x1Var\9:int=1:int, $i$f$x1\9\127:int=0:int, y1\9:int=1:int, x3Var\11:int=3:int, $i$f$x3\11\134:int=0:int, y3\11:int=3:int
// library.kt:14 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x1Var\9:int=1:int, $i$f$x1\9\127:int=0:int, y1\9:int=1:int
// library.kt:7 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int
// library.kt:25 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x4Var\12:int=4:int, $i$f$x4\12\128:int=0:int
// library.kt:26 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x4Var\12:int=4:int, $i$f$x4\12\128:int=0:int, y4\12:int=4:int
// library.kt:31 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x4Var\12:int=4:int, $i$f$x4\12\128:int=0:int, y4\12:int=4:int, x5Var\13:int=5:int, $i$f$x5\13\147:int=0:int
// library.kt:32 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x4Var\12:int=4:int, $i$f$x4\12\128:int=0:int, y4\12:int=4:int, x5Var\13:int=5:int, $i$f$x5\13\147:int=0:int, y5\13:int=5:int
// library.kt:27 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x4Var\12:int=4:int, $i$f$x4\12\128:int=0:int, y4\12:int=4:int
// library.kt:35 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x4Var\12:int=4:int, $i$f$x4\12\128:int=0:int, y4\12:int=4:int, x6Var\14:int=6:int, $i$f$x6\14\148:int=0:int
// library.kt:36 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x4Var\12:int=4:int, $i$f$x4\12\128:int=0:int, y4\12:int=4:int, x6Var\14:int=6:int, $i$f$x6\14\148:int=0:int, y6\14:int=6:int
// library.kt:28 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int, x4Var\12:int=4:int, $i$f$x4\12\128:int=0:int, y4\12:int=4:int
// library.kt:8 box: m:int=1:int, $i$f$foo\8\45:int=0:int, fooVar\8:int=100:int
// test.kt:46 box: m:int=1:int
@@ -0,0 +1,79 @@
// MODULE: library
// FILE: library.kt
inline fun foo(f: (Int) -> Unit) {
val x6 = 6
f(8)
val x7 = 7
}
inline fun bar() {
val x0 = 0
x1()
}
inline fun baz() {
x4()
x5()
}
inline fun x1() {
val x1 = 1
x2()
val x3 = 3
}
inline fun x2() {
val x2 = 2
}
inline fun x4() {
val x4 = 4
}
inline fun x5() {
val x5 = 5
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
val m = -1
bar()
foo {
val x8 = 8
}
baz()
}
// EXPECTATIONS JVM_IR
// test.kt:43 box:
// test.kt:44 box: m:int=-1:int
// library.kt:11 box: m:int=-1:int, $i$f$bar\1\44:int=0:int
// library.kt:12 box: m:int=-1:int, $i$f$bar\1\44:int=0:int, x0\1:int=0:int
// library.kt:21 box: m:int=-1:int, $i$f$bar\1\44:int=0:int, x0\1:int=0:int, $i$f$x1\2\82:int=0:int
// library.kt:22 box: m:int=-1:int, $i$f$bar\1\44:int=0:int, x0\1:int=0:int, $i$f$x1\2\82:int=0:int, x1\2:int=1:int
// library.kt:27 box: m:int=-1:int, $i$f$bar\1\44:int=0:int, x0\1:int=0:int, $i$f$x1\2\82:int=0:int, x1\2:int=1:int, $i$f$x2\3\92:int=0:int
// library.kt:28 box: m:int=-1:int, $i$f$bar\1\44:int=0:int, x0\1:int=0:int, $i$f$x1\2\82:int=0:int, x1\2:int=1:int, $i$f$x2\3\92:int=0:int, x2\3:int=2:int
// library.kt:23 box: m:int=-1:int, $i$f$bar\1\44:int=0:int, x0\1:int=0:int, $i$f$x1\2\82:int=0:int, x1\2:int=1:int
// library.kt:24 box: m:int=-1:int, $i$f$bar\1\44:int=0:int, x0\1:int=0:int, $i$f$x1\2\82:int=0:int, x1\2:int=1:int, x3\2:int=3:int
// library.kt:13 box: m:int=-1:int, $i$f$bar\1\44:int=0:int, x0\1:int=0:int
// test.kt:45 box: m:int=-1:int
// library.kt:5 box: m:int=-1:int, $i$f$foo\4\45:int=0:int
// library.kt:6 box: m:int=-1:int, $i$f$foo\4\45:int=0:int, x6\4:int=6:int
// test.kt:46 box: m:int=-1:int, $i$f$foo\4\45:int=0:int, x6\4:int=6:int, it\5:int=8:int, $i$a$-foo-TestKt$box$1\5\100\0:int=0:int
// test.kt:47 box: m:int=-1:int, $i$f$foo\4\45:int=0:int, x6\4:int=6:int, it\5:int=8:int, $i$a$-foo-TestKt$box$1\5\100\0:int=0:int, x8\5:int=8:int
// library.kt:6 box: m:int=-1:int, $i$f$foo\4\45:int=0:int, x6\4:int=6:int
// library.kt:7 box: m:int=-1:int, $i$f$foo\4\45:int=0:int, x6\4:int=6:int
// library.kt:8 box: m:int=-1:int, $i$f$foo\4\45:int=0:int, x6\4:int=6:int, x7\4:int=7:int
// test.kt:48 box: m:int=-1:int
// library.kt:16 box: m:int=-1:int, $i$f$baz\6\48:int=0:int
// library.kt:31 box: m:int=-1:int, $i$f$baz\6\48:int=0:int, $i$f$x4\7\103:int=0:int
// library.kt:32 box: m:int=-1:int, $i$f$baz\6\48:int=0:int, $i$f$x4\7\103:int=0:int, x4\7:int=4:int
// library.kt:17 box: m:int=-1:int, $i$f$baz\6\48:int=0:int
// library.kt:35 box: m:int=-1:int, $i$f$baz\6\48:int=0:int, $i$f$x5\8\106:int=0:int
// library.kt:36 box: m:int=-1:int, $i$f$baz\6\48:int=0:int, $i$f$x5\8\106:int=0:int, x5\8:int=5:int
// library.kt:18 box: m:int=-1:int, $i$f$baz\6\48:int=0:int
// test.kt:49 box: m:int=-1:int
@@ -0,0 +1,172 @@
// MODULE: library
// FILE: library.kt
inline fun foo(xFoo: Int, f: (Int) -> Unit, g: (Int) -> Unit) {
bar(0, 1, 2)
f(1)
bar(1, 2, 3)
g(2)
bar(2, 3, 4)
}
inline fun bar(xBar1: Int, xBar2: Int, xBar3: Int) {
baz(100, 101, 102)
}
inline fun baz(xBaz1: Int, xBaz2: Int, xBaz3: Int) {
x1()
x2()
}
inline fun x1() {
val x1 = 1
}
inline fun x2() {
val x2 = 2
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
foo(1, {
val y1 = 1
bar(0, 1, 2)
}, {
val y2 = 2
bar(1, 2, 3)
})
foo(1, {
val y1 = 1
bar(0, 1, 2)
}, {
val y2 = 2
bar(1, 2, 3)
})
}
// EXPECTATIONS JVM_IR
// test.kt:34 box:
// library.kt:5 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int
// library.kt:13 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int
// library.kt:17 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int, xBaz1\3:int=100:int, xBaz2\3:int=101:int, xBaz3\3:int=102:int, $i$f$baz\3\182:int=0:int
// library.kt:22 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int, xBaz1\3:int=100:int, xBaz2\3:int=101:int, xBaz3\3:int=102:int, $i$f$baz\3\182:int=0:int, $i$f$x1\4\186:int=0:int
// library.kt:23 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int, xBaz1\3:int=100:int, xBaz2\3:int=101:int, xBaz3\3:int=102:int, $i$f$baz\3\182:int=0:int, $i$f$x1\4\186:int=0:int, x1\4:int=1:int
// library.kt:18 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int, xBaz1\3:int=100:int, xBaz2\3:int=101:int, xBaz3\3:int=102:int, $i$f$baz\3\182:int=0:int
// library.kt:26 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int, xBaz1\3:int=100:int, xBaz2\3:int=101:int, xBaz3\3:int=102:int, $i$f$baz\3\182:int=0:int, $i$f$x2\5\187:int=0:int
// library.kt:27 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int, xBaz1\3:int=100:int, xBaz2\3:int=101:int, xBaz3\3:int=102:int, $i$f$baz\3\182:int=0:int, $i$f$x2\5\187:int=0:int, x2\5:int=2:int
// library.kt:19 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int, xBaz1\3:int=100:int, xBaz2\3:int=101:int, xBaz3\3:int=102:int, $i$f$baz\3\182:int=0:int
// library.kt:14 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\2:int=0:int, xBar2\2:int=1:int, xBar3\2:int=2:int, $i$f$bar\2\174:int=0:int
// library.kt:6 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int
// test.kt:35 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int
// test.kt:36 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int
// library.kt:13 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int
// library.kt:17 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int, xBaz1\16:int=100:int, xBaz2\16:int=101:int, xBaz3\16:int=102:int, $i$f$baz\16\197:int=0:int
// library.kt:22 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int, xBaz1\16:int=100:int, xBaz2\16:int=101:int, xBaz3\16:int=102:int, $i$f$baz\16\197:int=0:int, $i$f$x1\17\201:int=0:int
// library.kt:23 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int, xBaz1\16:int=100:int, xBaz2\16:int=101:int, xBaz3\16:int=102:int, $i$f$baz\16\197:int=0:int, $i$f$x1\17\201:int=0:int, x1\17:int=1:int
// library.kt:18 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int, xBaz1\16:int=100:int, xBaz2\16:int=101:int, xBaz3\16:int=102:int, $i$f$baz\16\197:int=0:int
// library.kt:26 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int, xBaz1\16:int=100:int, xBaz2\16:int=101:int, xBaz3\16:int=102:int, $i$f$baz\16\197:int=0:int, $i$f$x2\18\202:int=0:int
// library.kt:27 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int, xBaz1\16:int=100:int, xBaz2\16:int=101:int, xBaz3\16:int=102:int, $i$f$baz\16\197:int=0:int, $i$f$x2\18\202:int=0:int, x2\18:int=2:int
// library.kt:19 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int, xBaz1\16:int=100:int, xBaz2\16:int=101:int, xBaz3\16:int=102:int, $i$f$baz\16\197:int=0:int
// library.kt:14 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int, xBar1\15:int=0:int, xBar2\15:int=1:int, xBar3\15:int=2:int, $i$f$bar\15\36:int=0:int
// test.kt:37 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\14:int=1:int, $i$a$-foo-TestKt$box$1\14\175\0:int=0:int, y1\14:int=1:int
// library.kt:6 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int
// library.kt:7 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int
// library.kt:13 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int
// library.kt:17 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int, xBaz1\7:int=100:int, xBaz2\7:int=101:int, xBaz3\7:int=102:int, $i$f$baz\7\182:int=0:int
// library.kt:22 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int, xBaz1\7:int=100:int, xBaz2\7:int=101:int, xBaz3\7:int=102:int, $i$f$baz\7\182:int=0:int, $i$f$x1\8\186:int=0:int
// library.kt:23 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int, xBaz1\7:int=100:int, xBaz2\7:int=101:int, xBaz3\7:int=102:int, $i$f$baz\7\182:int=0:int, $i$f$x1\8\186:int=0:int, x1\8:int=1:int
// library.kt:18 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int, xBaz1\7:int=100:int, xBaz2\7:int=101:int, xBaz3\7:int=102:int, $i$f$baz\7\182:int=0:int
// library.kt:26 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int, xBaz1\7:int=100:int, xBaz2\7:int=101:int, xBaz3\7:int=102:int, $i$f$baz\7\182:int=0:int, $i$f$x2\9\187:int=0:int
// library.kt:27 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int, xBaz1\7:int=100:int, xBaz2\7:int=101:int, xBaz3\7:int=102:int, $i$f$baz\7\182:int=0:int, $i$f$x2\9\187:int=0:int, x2\9:int=2:int
// library.kt:19 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int, xBaz1\7:int=100:int, xBaz2\7:int=101:int, xBaz3\7:int=102:int, $i$f$baz\7\182:int=0:int
// library.kt:14 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\6:int=1:int, xBar2\6:int=2:int, xBar3\6:int=3:int, $i$f$bar\6\176:int=0:int
// library.kt:8 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int
// test.kt:38 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int
// test.kt:39 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int
// library.kt:13 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int
// library.kt:17 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int, xBaz1\21:int=100:int, xBaz2\21:int=101:int, xBaz3\21:int=102:int, $i$f$baz\21\212:int=0:int
// library.kt:22 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int, xBaz1\21:int=100:int, xBaz2\21:int=101:int, xBaz3\21:int=102:int, $i$f$baz\21\212:int=0:int, $i$f$x1\22\216:int=0:int
// library.kt:23 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int, xBaz1\21:int=100:int, xBaz2\21:int=101:int, xBaz3\21:int=102:int, $i$f$baz\21\212:int=0:int, $i$f$x1\22\216:int=0:int, x1\22:int=1:int
// library.kt:18 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int, xBaz1\21:int=100:int, xBaz2\21:int=101:int, xBaz3\21:int=102:int, $i$f$baz\21\212:int=0:int
// library.kt:26 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int, xBaz1\21:int=100:int, xBaz2\21:int=101:int, xBaz3\21:int=102:int, $i$f$baz\21\212:int=0:int, $i$f$x2\23\217:int=0:int
// library.kt:27 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int, xBaz1\21:int=100:int, xBaz2\21:int=101:int, xBaz3\21:int=102:int, $i$f$baz\21\212:int=0:int, $i$f$x2\23\217:int=0:int, x2\23:int=2:int
// library.kt:19 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int, xBaz1\21:int=100:int, xBaz2\21:int=101:int, xBaz3\21:int=102:int, $i$f$baz\21\212:int=0:int
// library.kt:14 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int, xBar1\20:int=1:int, xBar2\20:int=2:int, xBar3\20:int=3:int, $i$f$bar\20\39:int=0:int
// test.kt:40 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, it\19:int=2:int, $i$a$-foo-TestKt$box$2\19\177\0:int=0:int, y2\19:int=2:int
// library.kt:8 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int
// library.kt:9 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int
// library.kt:13 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int
// library.kt:17 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int, xBaz1\11:int=100:int, xBaz2\11:int=101:int, xBaz3\11:int=102:int, $i$f$baz\11\182:int=0:int
// library.kt:22 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int, xBaz1\11:int=100:int, xBaz2\11:int=101:int, xBaz3\11:int=102:int, $i$f$baz\11\182:int=0:int, $i$f$x1\12\186:int=0:int
// library.kt:23 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int, xBaz1\11:int=100:int, xBaz2\11:int=101:int, xBaz3\11:int=102:int, $i$f$baz\11\182:int=0:int, $i$f$x1\12\186:int=0:int, x1\12:int=1:int
// library.kt:18 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int, xBaz1\11:int=100:int, xBaz2\11:int=101:int, xBaz3\11:int=102:int, $i$f$baz\11\182:int=0:int
// library.kt:26 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int, xBaz1\11:int=100:int, xBaz2\11:int=101:int, xBaz3\11:int=102:int, $i$f$baz\11\182:int=0:int, $i$f$x2\13\187:int=0:int
// library.kt:27 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int, xBaz1\11:int=100:int, xBaz2\11:int=101:int, xBaz3\11:int=102:int, $i$f$baz\11\182:int=0:int, $i$f$x2\13\187:int=0:int, x2\13:int=2:int
// library.kt:19 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int, xBaz1\11:int=100:int, xBaz2\11:int=101:int, xBaz3\11:int=102:int, $i$f$baz\11\182:int=0:int
// library.kt:14 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int, xBar1\10:int=2:int, xBar2\10:int=3:int, xBar3\10:int=4:int, $i$f$bar\10\178:int=0:int
// library.kt:10 box: xFoo\1:int=1:int, $i$f$foo\1\34:int=0:int
// test.kt:42 box:
// library.kt:5 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int
// library.kt:13 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int
// library.kt:17 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int, xBaz1\26:int=100:int, xBaz2\26:int=101:int, xBaz3\26:int=102:int, $i$f$baz\26\235:int=0:int
// library.kt:22 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int, xBaz1\26:int=100:int, xBaz2\26:int=101:int, xBaz3\26:int=102:int, $i$f$baz\26\235:int=0:int, $i$f$x1\27\239:int=0:int
// library.kt:23 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int, xBaz1\26:int=100:int, xBaz2\26:int=101:int, xBaz3\26:int=102:int, $i$f$baz\26\235:int=0:int, $i$f$x1\27\239:int=0:int, x1\27:int=1:int
// library.kt:18 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int, xBaz1\26:int=100:int, xBaz2\26:int=101:int, xBaz3\26:int=102:int, $i$f$baz\26\235:int=0:int
// library.kt:26 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int, xBaz1\26:int=100:int, xBaz2\26:int=101:int, xBaz3\26:int=102:int, $i$f$baz\26\235:int=0:int, $i$f$x2\28\240:int=0:int
// library.kt:27 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int, xBaz1\26:int=100:int, xBaz2\26:int=101:int, xBaz3\26:int=102:int, $i$f$baz\26\235:int=0:int, $i$f$x2\28\240:int=0:int, x2\28:int=2:int
// library.kt:19 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int, xBaz1\26:int=100:int, xBaz2\26:int=101:int, xBaz3\26:int=102:int, $i$f$baz\26\235:int=0:int
// library.kt:14 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\25:int=0:int, xBar2\25:int=1:int, xBar3\25:int=2:int, $i$f$bar\25\227:int=0:int
// library.kt:6 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int
// test.kt:43 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int
// test.kt:44 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int
// library.kt:13 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int
// library.kt:17 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int, xBaz1\39:int=100:int, xBaz2\39:int=101:int, xBaz3\39:int=102:int, $i$f$baz\39\250:int=0:int
// library.kt:22 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int, xBaz1\39:int=100:int, xBaz2\39:int=101:int, xBaz3\39:int=102:int, $i$f$baz\39\250:int=0:int, $i$f$x1\40\254:int=0:int
// library.kt:23 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int, xBaz1\39:int=100:int, xBaz2\39:int=101:int, xBaz3\39:int=102:int, $i$f$baz\39\250:int=0:int, $i$f$x1\40\254:int=0:int, x1\40:int=1:int
// library.kt:18 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int, xBaz1\39:int=100:int, xBaz2\39:int=101:int, xBaz3\39:int=102:int, $i$f$baz\39\250:int=0:int
// library.kt:26 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int, xBaz1\39:int=100:int, xBaz2\39:int=101:int, xBaz3\39:int=102:int, $i$f$baz\39\250:int=0:int, $i$f$x2\41\255:int=0:int
// library.kt:27 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int, xBaz1\39:int=100:int, xBaz2\39:int=101:int, xBaz3\39:int=102:int, $i$f$baz\39\250:int=0:int, $i$f$x2\41\255:int=0:int, x2\41:int=2:int
// library.kt:19 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int, xBaz1\39:int=100:int, xBaz2\39:int=101:int, xBaz3\39:int=102:int, $i$f$baz\39\250:int=0:int
// library.kt:14 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int, xBar1\38:int=0:int, xBar2\38:int=1:int, xBar3\38:int=2:int, $i$f$bar\38\44:int=0:int
// test.kt:45 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\37:int=1:int, $i$a$-foo-TestKt$box$3\37\228\0:int=0:int, y1\37:int=1:int
// library.kt:6 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int
// library.kt:7 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int
// library.kt:13 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int
// library.kt:17 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int, xBaz1\30:int=100:int, xBaz2\30:int=101:int, xBaz3\30:int=102:int, $i$f$baz\30\271:int=0:int
// library.kt:22 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int, xBaz1\30:int=100:int, xBaz2\30:int=101:int, xBaz3\30:int=102:int, $i$f$baz\30\271:int=0:int, $i$f$x1\31\275:int=0:int
// library.kt:23 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int, xBaz1\30:int=100:int, xBaz2\30:int=101:int, xBaz3\30:int=102:int, $i$f$baz\30\271:int=0:int, $i$f$x1\31\275:int=0:int, x1\31:int=1:int
// library.kt:18 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int, xBaz1\30:int=100:int, xBaz2\30:int=101:int, xBaz3\30:int=102:int, $i$f$baz\30\271:int=0:int
// library.kt:26 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int, xBaz1\30:int=100:int, xBaz2\30:int=101:int, xBaz3\30:int=102:int, $i$f$baz\30\271:int=0:int, $i$f$x2\32\276:int=0:int
// library.kt:27 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int, xBaz1\30:int=100:int, xBaz2\30:int=101:int, xBaz3\30:int=102:int, $i$f$baz\30\271:int=0:int, $i$f$x2\32\276:int=0:int, x2\32:int=2:int
// library.kt:19 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int, xBaz1\30:int=100:int, xBaz2\30:int=101:int, xBaz3\30:int=102:int, $i$f$baz\30\271:int=0:int
// library.kt:14 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\29:int=1:int, xBar2\29:int=2:int, xBar3\29:int=3:int, $i$f$bar\29\265:int=0:int
// library.kt:8 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int
// test.kt:46 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int
// test.kt:47 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int
// library.kt:13 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int
// library.kt:17 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int, xBaz1\44:int=100:int, xBaz2\44:int=101:int, xBaz3\44:int=102:int, $i$f$baz\44\286:int=0:int
// library.kt:22 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int, xBaz1\44:int=100:int, xBaz2\44:int=101:int, xBaz3\44:int=102:int, $i$f$baz\44\286:int=0:int, $i$f$x1\45\290:int=0:int
// library.kt:23 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int, xBaz1\44:int=100:int, xBaz2\44:int=101:int, xBaz3\44:int=102:int, $i$f$baz\44\286:int=0:int, $i$f$x1\45\290:int=0:int, x1\45:int=1:int
// library.kt:18 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int, xBaz1\44:int=100:int, xBaz2\44:int=101:int, xBaz3\44:int=102:int, $i$f$baz\44\286:int=0:int
// library.kt:26 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int, xBaz1\44:int=100:int, xBaz2\44:int=101:int, xBaz3\44:int=102:int, $i$f$baz\44\286:int=0:int, $i$f$x2\46\291:int=0:int
// library.kt:27 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int, xBaz1\44:int=100:int, xBaz2\44:int=101:int, xBaz3\44:int=102:int, $i$f$baz\44\286:int=0:int, $i$f$x2\46\291:int=0:int, x2\46:int=2:int
// library.kt:19 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int, xBaz1\44:int=100:int, xBaz2\44:int=101:int, xBaz3\44:int=102:int, $i$f$baz\44\286:int=0:int
// library.kt:14 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int, xBar1\43:int=1:int, xBar2\43:int=2:int, xBar3\43:int=3:int, $i$f$bar\43\47:int=0:int
// test.kt:48 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, it\42:int=2:int, $i$a$-foo-TestKt$box$4\42\266\0:int=0:int, y2\42:int=2:int
// library.kt:8 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int
// library.kt:9 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int
// library.kt:13 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int
// library.kt:17 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int, xBaz1\34:int=100:int, xBaz2\34:int=101:int, xBaz3\34:int=102:int, $i$f$baz\34\305:int=0:int
// library.kt:22 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int, xBaz1\34:int=100:int, xBaz2\34:int=101:int, xBaz3\34:int=102:int, $i$f$baz\34\305:int=0:int, $i$f$x1\35\309:int=0:int
// library.kt:23 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int, xBaz1\34:int=100:int, xBaz2\34:int=101:int, xBaz3\34:int=102:int, $i$f$baz\34\305:int=0:int, $i$f$x1\35\309:int=0:int, x1\35:int=1:int
// library.kt:18 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int, xBaz1\34:int=100:int, xBaz2\34:int=101:int, xBaz3\34:int=102:int, $i$f$baz\34\305:int=0:int
// library.kt:26 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int, xBaz1\34:int=100:int, xBaz2\34:int=101:int, xBaz3\34:int=102:int, $i$f$baz\34\305:int=0:int, $i$f$x2\36\310:int=0:int
// library.kt:27 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int, xBaz1\34:int=100:int, xBaz2\34:int=101:int, xBaz3\34:int=102:int, $i$f$baz\34\305:int=0:int, $i$f$x2\36\310:int=0:int, x2\36:int=2:int
// library.kt:19 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int, xBaz1\34:int=100:int, xBaz2\34:int=101:int, xBaz3\34:int=102:int, $i$f$baz\34\305:int=0:int
// library.kt:14 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int, xBar1\33:int=2:int, xBar2\33:int=3:int, xBar3\33:int=4:int, $i$f$bar\33\301:int=0:int
// library.kt:10 box: xFoo\24:int=1:int, $i$f$foo\24\42:int=0:int
// test.kt:49 box:
@@ -0,0 +1,413 @@
// WITH_STDLIB
// MODULE: library
// FILE: library.kt
class MyClass {
inline fun f1(f1Param: () -> Unit): MyClass {
test()
f1Param()
return this
}
inline fun f2(f1Param: () -> Unit): MyClass {
test()
f1Param()
return this
}
}
inline fun foo() {
val array = arrayOf(1, 2)
val myClass = MyClass()
test()
myClass.f1 { test() }
.f2 { test() }
test()
myClass.f1 { test() }
.f2 { test() }
test()
array.map {
it * 2
}
test()
array.map { it * 2 }
.filter {
it > 2
}
test()
array.map { it * 2 }
.filter {
it > 2
}
test()
myClass.f1 { test() }.f2 { test() }
test()
myClass.f1 { test() }.f2 { test() }
}
inline fun test() {
val testVal = 1
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
foo()
foo()
}
// EXPECTATIONS JVM_IR
// test.kt:64 box:
// library.kt:20 box: $i$f$foo\1\64:int=0:int
// library.kt:21 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[]
// library.kt:5 <init>:
// library.kt:21 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[]
// library.kt:23 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\2\418:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\2\418:int=0:int, testVal\2:int=1:int
// library.kt:24 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:7 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$f$test\4\422:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$f$test\4\422:int=0:int, testVal\4:int=1:int
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int
// library.kt:24 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$a$-f1-LibraryKt$foo$1\5\425\1:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$a$-f1-LibraryKt$foo$1\5\425\1:int=0:int, $i$f$test\6\421:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$a$-f1-LibraryKt$foo$1\5\425\1:int=0:int, $i$f$test\6\421:int=0:int, testVal\6:int=1:int
// library.kt:24 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int, $i$a$-f1-LibraryKt$foo$1\5\425\1:int=0:int
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\3:MyClass=MyClass, $i$f$f1\3\421:int=0:int
// library.kt:25 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:13 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$f$test\8\428:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$f$test\8\428:int=0:int, testVal\8:int=1:int
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int
// library.kt:25 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$a$-f2-LibraryKt$foo$2\9\431\1:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$a$-f2-LibraryKt$foo$2\9\431\1:int=0:int, $i$f$test\10\427:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$a$-f2-LibraryKt$foo$2\9\431\1:int=0:int, $i$f$test\10\427:int=0:int, testVal\10:int=1:int
// library.kt:25 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int, $i$a$-f2-LibraryKt$foo$2\9\431\1:int=0:int
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\7:MyClass=MyClass, $i$f$f2\7\427:int=0:int
// library.kt:27 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\11\433:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\11\433:int=0:int, testVal\11:int=1:int
// library.kt:28 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:7 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$f$test\13\422:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$f$test\13\422:int=0:int, testVal\13:int=1:int
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int
// library.kt:28 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$a$-f1-LibraryKt$foo$3\14\439\1:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$a$-f1-LibraryKt$foo$3\14\439\1:int=0:int, $i$f$test\15\436:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$a$-f1-LibraryKt$foo$3\14\439\1:int=0:int, $i$f$test\15\436:int=0:int, testVal\15:int=1:int
// library.kt:28 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int, $i$a$-f1-LibraryKt$foo$3\14\439\1:int=0:int
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\12:MyClass=MyClass, $i$f$f1\12\436:int=0:int
// library.kt:29 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:13 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$f$test\17\442:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$f$test\17\442:int=0:int, testVal\17:int=1:int
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int
// library.kt:29 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$a$-f2-LibraryKt$foo$4\18\445\1:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$a$-f2-LibraryKt$foo$4\18\445\1:int=0:int, $i$f$test\19\441:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$a$-f2-LibraryKt$foo$4\18\445\1:int=0:int, $i$f$test\19\441:int=0:int, testVal\19:int=1:int
// library.kt:29 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int, $i$a$-f2-LibraryKt$foo$4\18\445\1:int=0:int
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\16:MyClass=MyClass, $i$f$f2\16\441:int=0:int
// library.kt:31 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\20\447:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\20\447:int=0:int, testVal\20:int=1:int
// library.kt:32 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer
// library.kt:33 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer, it\23:int=1:int, $i$a$-map-LibraryKt$foo$5\23\453\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer
// library.kt:33 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer, it\23:int=2:int, $i$a$-map-LibraryKt$foo$5\23\453\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int, item\22:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int, $this$mapTo\22:java.lang.Object[]=java.lang.Integer[], destination\22:java.util.Collection=java.util.ArrayList, $i$f$mapTo\22\451:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\21:java.lang.Object[]=java.lang.Integer[], $i$f$map\21\450:int=0:int
// library.kt:36 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\24\456:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\24\456:int=0:int, testVal\24:int=1:int
// library.kt:37 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer
// library.kt:37 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer, it\27:int=1:int, $i$a$-map-LibraryKt$foo$6\27\461\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer
// library.kt:37 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer, it\27:int=2:int, $i$a$-map-LibraryKt$foo$6\27\461\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int, item\26:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int, $this$mapTo\26:java.lang.Object[]=java.lang.Integer[], destination\26:java.util.Collection=java.util.ArrayList, $i$f$mapTo\26\451:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\25:java.lang.Object[]=java.lang.Integer[], $i$f$map\25\459:int=0:int
// library.kt:38 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Collections.kt:764 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int
// library.kt:39 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int, element\29:java.lang.Object=java.lang.Integer, it\30:int=2:int, $i$a$-filter-LibraryKt$foo$7\30\465\1:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int, element\29:java.lang.Object=java.lang.Integer
// library.kt:39 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int, element\29:java.lang.Object=java.lang.Integer, it\30:int=4:int, $i$a$-filter-LibraryKt$foo$7\30\465\1:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int, element\29:java.lang.Object=java.lang.Integer
// _Collections.kt:856 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int, $this$filterTo\29:java.lang.Iterable=java.util.ArrayList, destination\29:java.util.Collection=java.util.ArrayList, $i$f$filterTo\29\464:int=0:int
// _Collections.kt:764 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\28:java.lang.Iterable=java.util.ArrayList, $i$f$filter\28\463:int=0:int
// library.kt:42 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\31\468:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\31\468:int=0:int, testVal\31:int=1:int
// library.kt:43 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer
// library.kt:43 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer, it\34:int=1:int, $i$a$-map-LibraryKt$foo$8\34\461\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer
// library.kt:43 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer, it\34:int=2:int, $i$a$-map-LibraryKt$foo$8\34\461\1:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int, item\33:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int, $this$mapTo\33:java.lang.Object[]=java.lang.Integer[], destination\33:java.util.Collection=java.util.ArrayList, $i$f$mapTo\33\451:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$map\32:java.lang.Object[]=java.lang.Integer[], $i$f$map\32\471:int=0:int
// library.kt:44 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// _Collections.kt:764 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int
// library.kt:45 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int, element\36:java.lang.Object=java.lang.Integer, it\37:int=2:int, $i$a$-filter-LibraryKt$foo$9\37\473\1:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int, element\36:java.lang.Object=java.lang.Integer
// library.kt:45 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int, element\36:java.lang.Object=java.lang.Integer, it\37:int=4:int, $i$a$-filter-LibraryKt$foo$9\37\473\1:int=0:int
// _Collections.kt:855 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int, element\36:java.lang.Object=java.lang.Integer
// _Collections.kt:856 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int, $this$filterTo\36:java.lang.Iterable=java.util.ArrayList, destination\36:java.util.Collection=java.util.ArrayList, $i$f$filterTo\36\464:int=0:int
// _Collections.kt:764 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $this$filter\35:java.lang.Iterable=java.util.ArrayList, $i$f$filter\35\472:int=0:int
// library.kt:48 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\38\476:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\38\476:int=0:int, testVal\38:int=1:int
// library.kt:49 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:7 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$f$test\40\422:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$f$test\40\422:int=0:int, testVal\40:int=1:int
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int
// library.kt:49 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$a$-f1-LibraryKt$foo$10\41\486\1:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$a$-f1-LibraryKt$foo$10\41\486\1:int=0:int, $i$f$test\42\477:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$a$-f1-LibraryKt$foo$10\41\486\1:int=0:int, $i$f$test\42\477:int=0:int, testVal\42:int=1:int
// library.kt:49 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int, $i$a$-f1-LibraryKt$foo$10\41\486\1:int=0:int
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\39:MyClass=MyClass, $i$f$f1\39\477:int=0:int
// library.kt:49 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:13 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$f$test\44\491:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$f$test\44\491:int=0:int, testVal\44:int=1:int
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int
// library.kt:49 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$a$-f2-LibraryKt$foo$11\45\492\1:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$a$-f2-LibraryKt$foo$11\45\492\1:int=0:int, $i$f$test\46\477:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$a$-f2-LibraryKt$foo$11\45\492\1:int=0:int, $i$f$test\46\477:int=0:int, testVal\46:int=1:int
// library.kt:49 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int, $i$a$-f2-LibraryKt$foo$11\45\492\1:int=0:int
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\43:MyClass=MyClass, $i$f$f2\43\477:int=0:int
// library.kt:51 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\47\479:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, $i$f$test\47\479:int=0:int, testVal\47:int=1:int
// library.kt:52 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:7 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$f$test\49\422:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$f$test\49\422:int=0:int, testVal\49:int=1:int
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int
// library.kt:52 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$a$-f1-LibraryKt$foo$12\50\486\1:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$a$-f1-LibraryKt$foo$12\50\486\1:int=0:int, $i$f$test\51\480:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$a$-f1-LibraryKt$foo$12\50\486\1:int=0:int, $i$f$test\51\480:int=0:int, testVal\51:int=1:int
// library.kt:52 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int, $i$a$-f1-LibraryKt$foo$12\50\486\1:int=0:int
// library.kt:8 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int
// library.kt:9 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\48:MyClass=MyClass, $i$f$f1\48\480:int=0:int
// library.kt:52 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// library.kt:13 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$f$test\53\491:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$f$test\53\491:int=0:int, testVal\53:int=1:int
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int
// library.kt:52 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$a$-f2-LibraryKt$foo$13\54\492\1:int=0:int
// library.kt:56 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$a$-f2-LibraryKt$foo$13\54\492\1:int=0:int, $i$f$test\55\480:int=0:int
// library.kt:57 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$a$-f2-LibraryKt$foo$13\54\492\1:int=0:int, $i$f$test\55\480:int=0:int, testVal\55:int=1:int
// library.kt:52 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int, $i$a$-f2-LibraryKt$foo$13\54\492\1:int=0:int
// library.kt:14 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int
// library.kt:15 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass, this_\52:MyClass=MyClass, $i$f$f2\52\480:int=0:int
// library.kt:53 box: $i$f$foo\1\64:int=0:int, array\1:java.lang.Integer[]=java.lang.Integer[], myClass\1:MyClass=MyClass
// test.kt:65 box:
// library.kt:20 box: $i$f$foo\56\65:int=0:int
// library.kt:21 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[]
// library.kt:5 <init>:
// library.kt:21 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[]
// library.kt:23 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\57\497:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\57\497:int=0:int, testVal\57:int=1:int
// library.kt:24 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:7 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$f$test\59\501:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$f$test\59\501:int=0:int, testVal\59:int=1:int
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int
// library.kt:24 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$a$-f1-LibraryKt$foo$1\60\504\56:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$a$-f1-LibraryKt$foo$1\60\504\56:int=0:int, $i$f$test\61\500:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$a$-f1-LibraryKt$foo$1\60\504\56:int=0:int, $i$f$test\61\500:int=0:int, testVal\61:int=1:int
// library.kt:24 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int, $i$a$-f1-LibraryKt$foo$1\60\504\56:int=0:int
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\58:MyClass=MyClass, $i$f$f1\58\500:int=0:int
// library.kt:25 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:13 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$f$test\63\507:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$f$test\63\507:int=0:int, testVal\63:int=1:int
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int
// library.kt:25 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$a$-f2-LibraryKt$foo$2\64\510\56:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$a$-f2-LibraryKt$foo$2\64\510\56:int=0:int, $i$f$test\65\506:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$a$-f2-LibraryKt$foo$2\64\510\56:int=0:int, $i$f$test\65\506:int=0:int, testVal\65:int=1:int
// library.kt:25 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int, $i$a$-f2-LibraryKt$foo$2\64\510\56:int=0:int
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\62:MyClass=MyClass, $i$f$f2\62\506:int=0:int
// library.kt:27 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\66\512:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\66\512:int=0:int, testVal\66:int=1:int
// library.kt:28 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:7 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$f$test\68\516:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$f$test\68\516:int=0:int, testVal\68:int=1:int
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int
// library.kt:28 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$a$-f1-LibraryKt$foo$3\69\519\56:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$a$-f1-LibraryKt$foo$3\69\519\56:int=0:int, $i$f$test\70\515:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$a$-f1-LibraryKt$foo$3\69\519\56:int=0:int, $i$f$test\70\515:int=0:int, testVal\70:int=1:int
// library.kt:28 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int, $i$a$-f1-LibraryKt$foo$3\69\519\56:int=0:int
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\67:MyClass=MyClass, $i$f$f1\67\515:int=0:int
// library.kt:29 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:13 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$f$test\72\522:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$f$test\72\522:int=0:int, testVal\72:int=1:int
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int
// library.kt:29 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$a$-f2-LibraryKt$foo$4\73\525\56:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$a$-f2-LibraryKt$foo$4\73\525\56:int=0:int, $i$f$test\74\521:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$a$-f2-LibraryKt$foo$4\73\525\56:int=0:int, $i$f$test\74\521:int=0:int, testVal\74:int=1:int
// library.kt:29 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int, $i$a$-f2-LibraryKt$foo$4\73\525\56:int=0:int
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\71:MyClass=MyClass, $i$f$f2\71\521:int=0:int
// library.kt:31 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\75\527:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\75\527:int=0:int, testVal\75:int=1:int
// library.kt:32 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer
// library.kt:33 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer, it\78:int=1:int, $i$a$-map-LibraryKt$foo$5\78\533\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer
// library.kt:33 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer, it\78:int=2:int, $i$a$-map-LibraryKt$foo$5\78\533\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int, item\77:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int, $this$mapTo\77:java.lang.Object[]=java.lang.Integer[], destination\77:java.util.Collection=java.util.ArrayList, $i$f$mapTo\77\531:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\76:java.lang.Object[]=java.lang.Integer[], $i$f$map\76\530:int=0:int
// library.kt:36 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\79\536:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\79\536:int=0:int, testVal\79:int=1:int
// library.kt:37 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer
// library.kt:37 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer, it\82:int=1:int, $i$a$-map-LibraryKt$foo$6\82\542\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer
// library.kt:37 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer, it\82:int=2:int, $i$a$-map-LibraryKt$foo$6\82\542\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int, item\81:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int, $this$mapTo\81:java.lang.Object[]=java.lang.Integer[], destination\81:java.util.Collection=java.util.ArrayList, $i$f$mapTo\81\540:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\80:java.lang.Object[]=java.lang.Integer[], $i$f$map\80\539:int=0:int
// library.kt:38 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Collections.kt:764 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int
// library.kt:39 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int, element\84:java.lang.Object=java.lang.Integer, it\85:int=2:int, $i$a$-filter-LibraryKt$foo$7\85\546\56:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int, element\84:java.lang.Object=java.lang.Integer
// library.kt:39 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int, element\84:java.lang.Object=java.lang.Integer, it\85:int=4:int, $i$a$-filter-LibraryKt$foo$7\85\546\56:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int, element\84:java.lang.Object=java.lang.Integer
// _Collections.kt:856 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int, $this$filterTo\84:java.lang.Iterable=java.util.ArrayList, destination\84:java.util.Collection=java.util.ArrayList, $i$f$filterTo\84\545:int=0:int
// _Collections.kt:764 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\83:java.lang.Iterable=java.util.ArrayList, $i$f$filter\83\544:int=0:int
// library.kt:42 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\86\549:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\86\549:int=0:int, testVal\86:int=1:int
// library.kt:43 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer
// library.kt:43 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer, it\89:int=1:int, $i$a$-map-LibraryKt$foo$8\89\555\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer
// library.kt:43 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer, it\89:int=2:int, $i$a$-map-LibraryKt$foo$8\89\555\56:int=0:int
// _Arrays.kt:11383 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int, item\88:java.lang.Object=java.lang.Integer
// _Arrays.kt:11382 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int
// _Arrays.kt:11384 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int, $this$mapTo\88:java.lang.Object[]=java.lang.Integer[], destination\88:java.util.Collection=java.util.ArrayList, $i$f$mapTo\88\553:int=0:int
// _Arrays.kt:11047 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$map\87:java.lang.Object[]=java.lang.Integer[], $i$f$map\87\552:int=0:int
// library.kt:44 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// _Collections.kt:764 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int
// library.kt:45 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int, element\91:java.lang.Object=java.lang.Integer, it\92:int=2:int, $i$a$-filter-LibraryKt$foo$9\92\559\56:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int, element\91:java.lang.Object=java.lang.Integer
// library.kt:45 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int, element\91:java.lang.Object=java.lang.Integer, it\92:int=4:int, $i$a$-filter-LibraryKt$foo$9\92\559\56:int=0:int
// _Collections.kt:855 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int, element\91:java.lang.Object=java.lang.Integer
// _Collections.kt:856 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int, $this$filterTo\91:java.lang.Iterable=java.util.ArrayList, destination\91:java.util.Collection=java.util.ArrayList, $i$f$filterTo\91\558:int=0:int
// _Collections.kt:764 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $this$filter\90:java.lang.Iterable=java.util.ArrayList, $i$f$filter\90\557:int=0:int
// library.kt:48 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\93\562:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\93\562:int=0:int, testVal\93:int=1:int
// library.kt:49 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:7 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$f$test\95\572:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$f$test\95\572:int=0:int, testVal\95:int=1:int
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int
// library.kt:49 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$a$-f1-LibraryKt$foo$10\96\573\56:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$a$-f1-LibraryKt$foo$10\96\573\56:int=0:int, $i$f$test\97\563:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$a$-f1-LibraryKt$foo$10\96\573\56:int=0:int, $i$f$test\97\563:int=0:int, testVal\97:int=1:int
// library.kt:49 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int, $i$a$-f1-LibraryKt$foo$10\96\573\56:int=0:int
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\94:MyClass=MyClass, $i$f$f1\94\563:int=0:int
// library.kt:49 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:13 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$f$test\99\578:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$f$test\99\578:int=0:int, testVal\99:int=1:int
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int
// library.kt:49 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$a$-f2-LibraryKt$foo$11\100\579\56:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$a$-f2-LibraryKt$foo$11\100\579\56:int=0:int, $i$f$test\101\563:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$a$-f2-LibraryKt$foo$11\100\579\56:int=0:int, $i$f$test\101\563:int=0:int, testVal\101:int=1:int
// library.kt:49 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int, $i$a$-f2-LibraryKt$foo$11\100\579\56:int=0:int
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\98:MyClass=MyClass, $i$f$f2\98\563:int=0:int
// library.kt:51 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\102\565:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, $i$f$test\102\565:int=0:int, testVal\102:int=1:int
// library.kt:52 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:7 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$f$test\104\572:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$f$test\104\572:int=0:int, testVal\104:int=1:int
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int
// library.kt:52 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$a$-f1-LibraryKt$foo$12\105\573\56:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$a$-f1-LibraryKt$foo$12\105\573\56:int=0:int, $i$f$test\106\566:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$a$-f1-LibraryKt$foo$12\105\573\56:int=0:int, $i$f$test\106\566:int=0:int, testVal\106:int=1:int
// library.kt:52 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int, $i$a$-f1-LibraryKt$foo$12\105\573\56:int=0:int
// library.kt:8 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int
// library.kt:9 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\103:MyClass=MyClass, $i$f$f1\103\566:int=0:int
// library.kt:52 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// library.kt:13 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$f$test\108\578:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$f$test\108\578:int=0:int, testVal\108:int=1:int
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int
// library.kt:52 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$a$-f2-LibraryKt$foo$13\109\579\56:int=0:int
// library.kt:56 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$a$-f2-LibraryKt$foo$13\109\579\56:int=0:int, $i$f$test\110\566:int=0:int
// library.kt:57 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$a$-f2-LibraryKt$foo$13\109\579\56:int=0:int, $i$f$test\110\566:int=0:int, testVal\110:int=1:int
// library.kt:52 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int, $i$a$-f2-LibraryKt$foo$13\109\579\56:int=0:int
// library.kt:14 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int
// library.kt:15 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass, this_\107:MyClass=MyClass, $i$f$f2\107\566:int=0:int
// library.kt:53 box: $i$f$foo\56\65:int=0:int, array\56:java.lang.Integer[]=java.lang.Integer[], myClass\56:MyClass=MyClass
// test.kt:66 box:
@@ -0,0 +1,158 @@
// MODULE: library
// FILE: library.kt
inline fun bar(crossinline block: () -> Unit) {
object {
fun baz(param: Int) {
val b = 2
block()
inlineCall(1, 2) {
val g = 7
}
block()
inlineCall(1, 2) {
val g = 7
}
block()
inlineCall(1, 2) {
val g = 7
}
}
}.baz(6)
}
inline fun inlineCall(inlineCallParam1: Int, inlineCallParam2: Int, block: () -> Unit) {
val e = 5
baz1(1) { baz1BlockParam ->
val baz1LambdaVar = 1
baz1(2) { baz1BlockParam1 ->
val baz1LambdaVar1 = 1
3
}
2
}
block()
}
inline fun baz1(baz1Param: Int, block: (Int) -> Int) {
val baz1Var = 3
baz2(1)
block(1)
}
inline fun baz2(baz2Param: Int) {
val baz2Var = 3
}
// MODULE: test(library)
// USE_INLINE_SCOPES_NUMBERS
// FILE: test.kt
fun box() {
bar() {
val d = 4
}
}
// EXPECTATIONS JVM_IR
// test.kt:52 box:
// library.kt:5 box: $i$f$bar\1\52:int=0:int
// library.kt:5 <init>:
// library.kt:21 box: $i$f$bar\1\52:int=0:int
// library.kt:7 baz: param:int=6:int
// library.kt:8 baz: param:int=6:int, b:int=2:int
// test.kt:53 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\1\8\0:int=0:int
// test.kt:54 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\1\8\0:int=0:int, d\1:int=4:int
// library.kt:8 baz: param:int=6:int, b:int=2:int
// library.kt:9 baz: param:int=6:int, b:int=2:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int
// library.kt:38 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int
// library.kt:44 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz2Param\4:int=1:int, $i$f$baz2\4\53:int=0:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz2Param\4:int=1:int, $i$f$baz2\4\53:int=0:int, baz2Var\4:int=3:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int
// library.kt:28 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int
// library.kt:38 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int, baz1Var\6:int=3:int
// library.kt:44 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int, baz1Var\6:int=3:int, baz2Param\7:int=1:int, $i$f$baz2\7\72:int=0:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int, baz1Var\6:int=3:int, baz2Param\7:int=1:int, $i$f$baz2\7\72:int=0:int, baz2Var\7:int=3:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int, baz1Var\6:int=3:int
// library.kt:29 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int, baz1Var\6:int=3:int, baz1BlockParam1\8:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\8\73\5:int=0:int
// library.kt:30 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int, baz1Var\6:int=3:int, baz1BlockParam1\8:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\8\73\5:int=0:int, baz1LambdaVar1\8:int=1:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int, baz1Var\6:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int, baz1Param\6:int=2:int, $i$f$baz1\6\61:int=0:int, baz1Var\6:int=3:int
// library.kt:32 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int, baz1BlockParam\5:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\5\54\2:int=0:int, baz1LambdaVar\5:int=1:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, baz1Param\3:int=1:int, $i$f$baz1\3\51:int=0:int, baz1Var\3:int=3:int
// library.kt:34 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int
// library.kt:10 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$1\9\67\0:int=0:int
// library.kt:11 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$1\9\67\0:int=0:int, g\9:int=7:int
// library.kt:34 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\2:int=1:int, inlineCallParam2\2:int=2:int, $i$f$inlineCall\2\9:int=0:int, e\2:int=5:int
// library.kt:12 baz: param:int=6:int, b:int=2:int
// test.kt:53 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\10\12\0:int=0:int
// test.kt:54 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\10\12\0:int=0:int, d\10:int=4:int
// library.kt:12 baz: param:int=6:int, b:int=2:int
// library.kt:13 baz: param:int=6:int, b:int=2:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int
// library.kt:38 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int
// library.kt:44 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz2Param\13:int=1:int, $i$f$baz2\13\82:int=0:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz2Param\13:int=1:int, $i$f$baz2\13\82:int=0:int, baz2Var\13:int=3:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int
// library.kt:28 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int
// library.kt:38 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int, baz1Var\15:int=3:int
// library.kt:44 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int, baz1Var\15:int=3:int, baz2Param\16:int=1:int, $i$f$baz2\16\101:int=0:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int, baz1Var\15:int=3:int, baz2Param\16:int=1:int, $i$f$baz2\16\101:int=0:int, baz2Var\16:int=3:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int, baz1Var\15:int=3:int
// library.kt:29 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int, baz1Var\15:int=3:int, baz1BlockParam1\17:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\17\102\14:int=0:int
// library.kt:30 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int, baz1Var\15:int=3:int, baz1BlockParam1\17:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\17\102\14:int=0:int, baz1LambdaVar1\17:int=1:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int, baz1Var\15:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int, baz1Param\15:int=2:int, $i$f$baz1\15\90:int=0:int, baz1Var\15:int=3:int
// library.kt:32 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int, baz1BlockParam\14:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\14\83\11:int=0:int, baz1LambdaVar\14:int=1:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, baz1Param\12:int=1:int, $i$f$baz1\12\80:int=0:int, baz1Var\12:int=3:int
// library.kt:34 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int
// library.kt:14 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$2\18\96\0:int=0:int
// library.kt:15 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$2\18\96\0:int=0:int, g\18:int=7:int
// library.kt:34 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\11:int=1:int, inlineCallParam2\11:int=2:int, $i$f$inlineCall\11\13:int=0:int, e\11:int=5:int
// library.kt:16 baz: param:int=6:int, b:int=2:int
// test.kt:53 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\19\16\0:int=0:int
// test.kt:54 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\19\16\0:int=0:int, d\19:int=4:int
// library.kt:16 baz: param:int=6:int, b:int=2:int
// library.kt:17 baz: param:int=6:int, b:int=2:int
// library.kt:25 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int
// library.kt:26 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int
// library.kt:38 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int
// library.kt:44 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz2Param\22:int=1:int, $i$f$baz2\22\111:int=0:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz2Param\22:int=1:int, $i$f$baz2\22\111:int=0:int, baz2Var\22:int=3:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int
// library.kt:27 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int
// library.kt:28 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int
// library.kt:38 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int
// library.kt:39 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int, baz1Var\24:int=3:int
// library.kt:44 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int, baz1Var\24:int=3:int, baz2Param\25:int=1:int, $i$f$baz2\25\130:int=0:int
// library.kt:45 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int, baz1Var\24:int=3:int, baz2Param\25:int=1:int, $i$f$baz2\25\130:int=0:int, baz2Var\25:int=3:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int, baz1Var\24:int=3:int
// library.kt:29 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int, baz1Var\24:int=3:int, baz1BlockParam1\26:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\26\131\23:int=0:int
// library.kt:30 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int, baz1Var\24:int=3:int, baz1BlockParam1\26:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1$1\26\131\23:int=0:int, baz1LambdaVar1\26:int=1:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int, baz1Var\24:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int, baz1Param\24:int=2:int, $i$f$baz1\24\119:int=0:int, baz1Var\24:int=3:int
// library.kt:32 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int, baz1BlockParam\23:int=1:int, $i$a$-baz1-LibraryKt$inlineCall$1\23\112\20:int=0:int, baz1LambdaVar\23:int=1:int
// library.kt:40 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int
// library.kt:41 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, baz1Param\21:int=1:int, $i$f$baz1\21\109:int=0:int, baz1Var\21:int=3:int
// library.kt:34 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int
// library.kt:18 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$3\27\125\0:int=0:int
// library.kt:19 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int, $i$a$-inlineCall-LibraryKt$bar$1$baz$3\27\125\0:int=0:int, g\27:int=7:int
// library.kt:34 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int
// library.kt:35 baz: param:int=6:int, b:int=2:int, inlineCallParam1\20:int=1:int, inlineCallParam2\20:int=2:int, $i$f$inlineCall\20\17:int=0:int, e\20:int=5:int
// library.kt:20 baz: param:int=6:int, b:int=2:int
// library.kt:22 box: $i$f$bar\1\52:int=0:int
// test.kt:55 box:
@@ -26,6 +26,29 @@ fun box() {
} }
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:20 box:
// test.kt:3 box: $i$f$foo\1\20:int=0:int
// test.kt:3 <init>:
// test.kt:7 box: $i$f$foo\1\20:int=0:int
// test.kt:5 baz: param:int=5:int
// test.kt:6 baz: param:int=5:int, a:int=1:int
// test.kt:8 box: $i$f$foo\1\20:int=0:int
// test.kt:24 box:
// test.kt:11 box: $i$f$bar\2\24:int=0:int
// test.kt:11 <init>:
// test.kt:16 box: $i$f$bar\2\24:int=0:int
// test.kt:13 baz: param:int=6:int
// test.kt:14 baz: param:int=6:int, b:int=2:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$2\1\14\0:int=0:int
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:26 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$2\1\14\0:int=0:int, d\1:int=4:int
// test.kt:14 baz: param:int=6:int, b:int=2:int
// test.kt:15 baz: param:int=6:int, b:int=2:int
// test.kt:17 box: $i$f$bar\2\24:int=0:int
// test.kt:27 box:
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:20 box: // test.kt:20 box:
// test.kt:3 box: $i$f$foo:int=0:int // test.kt:3 box: $i$f$foo:int=0:int
@@ -22,6 +22,32 @@ fun box() {
foo.start() foo.start()
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:21 box:
// test.kt:3 <init>:
// test.kt:4 <init>:
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:3 <init>:
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:21 box:
// test.kt:22 box: foo:Foo=Foo
// test.kt:13 start:
// test.kt:7 start: this_\1:Foo=Foo, $i$f$inlineCall\1\13:int=0:int
// test.kt:14 start: this_\1:Foo=Foo, $i$f$inlineCall\1\13:int=0:int, it\2:kotlin.jvm.functions.Function0=Foo$inlineCall$1, $i$a$-inlineCall-Foo$start$1\2\84\0:int=0:int
// test.kt:15 start: this_\1:Foo=Foo, $i$f$inlineCall\1\13:int=0:int, it\2:kotlin.jvm.functions.Function0=Foo$inlineCall$1, $i$a$-inlineCall-Foo$start$1\2\84\0:int=0:int
// test.kt:8 invoke:
// test.kt:4 getBar:
// test.kt:8 invoke:
// test.kt:4 setBar: <set-?>:java.lang.String="OK":java.lang.String
// test.kt:9 invoke:
// test.kt:15 start: this_\1:Foo=Foo, $i$f$inlineCall\1\13:int=0:int, it\2:kotlin.jvm.functions.Function0=Foo$inlineCall$1, $i$a$-inlineCall-Foo$start$1\2\84\0:int=0:int
// test.kt:16 start: this_\1:Foo=Foo, $i$f$inlineCall\1\13:int=0:int, it\2:kotlin.jvm.functions.Function0=Foo$inlineCall$1, $i$a$-inlineCall-Foo$start$1\2\84\0:int=0:int
// test.kt:7 start: this_\1:Foo=Foo, $i$f$inlineCall\1\13:int=0:int
// test.kt:10 start: this_\1:Foo=Foo, $i$f$inlineCall\1\13:int=0:int
// test.kt:17 start:
// test.kt:23 box: foo:Foo=Foo
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:21 box: // test.kt:21 box:
// test.kt:3 <init>: // test.kt:3 <init>:
@@ -0,0 +1,177 @@
// FILE: test.kt
inline fun bar(crossinline block: () -> Unit) {
object {
fun baz(param: Int) {
val b = 2
block()
inlineCall {
val g = 7
}
block()
inlineCall {
val g = 7
}
block()
inlineCall {
val g = 7
}
}
}.baz(6)
}
inline fun inlineCall(block: () -> Unit) {
val e = 5
block()
}
fun box() {
bar() {
val d = 4
}
}
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:28 box:
// test.kt:3 box: $i$f$bar\1\28:int=0:int
// test.kt:3 <init>:
// test.kt:19 box: $i$f$bar\1\28:int=0:int
// test.kt:5 baz: param:int=6:int
// test.kt:6 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\1\6\0:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\1\6\0:int=0:int, d\1:int=4:int
// test.kt:6 baz: param:int=6:int, b:int=2:int
// test.kt:7 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\7:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\7:int=0:int, e\2:int=5:int
// test.kt:8 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\7:int=0:int, e\2:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$1\3\182\0:int=0:int
// test.kt:9 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\7:int=0:int, e\2:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$1\3\182\0:int=0:int, g\3:int=7:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\7:int=0:int, e\2:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\2\7:int=0:int, e\2:int=5:int
// test.kt:10 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\4\10\0:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\4\10\0:int=0:int, d\4:int=4:int
// test.kt:10 baz: param:int=6:int, b:int=2:int
// test.kt:11 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\11:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\11:int=0:int, e\5:int=5:int
// test.kt:12 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\11:int=0:int, e\5:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$2\6\185\0:int=0:int
// test.kt:13 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\11:int=0:int, e\5:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$2\6\185\0:int=0:int, g\6:int=7:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\11:int=0:int, e\5:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\5\11:int=0:int, e\5:int=5:int
// test.kt:14 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\7\14\0:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1\7\14\0:int=0:int, d\7:int=4:int
// test.kt:14 baz: param:int=6:int, b:int=2:int
// test.kt:15 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\15:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\15:int=0:int, e\8:int=5:int
// test.kt:16 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\15:int=0:int, e\8:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$3\9\188\0:int=0:int
// test.kt:17 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\15:int=0:int, e\8:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$3\9\188\0:int=0:int, g\9:int=7:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\15:int=0:int, e\8:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall\8\15:int=0:int, e\8:int=5:int
// test.kt:18 baz: param:int=6:int, b:int=2:int
// test.kt:20 box: $i$f$bar\1\28:int=0:int
// test.kt:31 box:
// EXPECTATIONS JVM_IR
// test.kt:28 box:
// test.kt:3 box: $i$f$bar:int=0:int
// test.kt:3 <init>:
// test.kt:19 box: $i$f$bar:int=0:int
// test.kt:5 baz: param:int=6:int
// test.kt:6 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// test.kt:6 baz: param:int=6:int, b:int=2:int
// test.kt:7 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:8 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$1:int=0:int
// test.kt:9 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$1:int=0:int, g:int=7:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:10 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// test.kt:10 baz: param:int=6:int, b:int=2:int
// test.kt:11 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:12 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$2:int=0:int
// test.kt:13 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$2:int=0:int, g:int=7:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:14 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int, d:int=4:int
// test.kt:14 baz: param:int=6:int, b:int=2:int
// test.kt:15 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:16 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$3:int=0:int
// test.kt:17 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$3:int=0:int, g:int=7:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:18 baz: param:int=6:int, b:int=2:int
// test.kt:20 box: $i$f$bar:int=0:int
// test.kt:31 box:
// EXPECTATIONS JVM
// test.kt:28 box:
// test.kt:3 box: $i$f$bar:int=0:int
// test.kt:3 <init>:
// test.kt:19 box: $i$f$bar:int=0:int
// test.kt:5 baz: param:int=6:int
// test.kt:6 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:6 baz: param:int=6:int, b:int=2:int
// test.kt:7 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:8 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$1:int=0:int
// test.kt:9 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$1:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:10 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:10 baz: param:int=6:int, b:int=2:int
// test.kt:11 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:12 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$2:int=0:int
// test.kt:13 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$2:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:14 baz: param:int=6:int, b:int=2:int
// test.kt:29 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:30 baz: param:int=6:int, b:int=2:int, $i$a$-bar-TestKt$box$1:int=0:int
// test.kt:14 baz: param:int=6:int, b:int=2:int
// test.kt:15 baz: param:int=6:int, b:int=2:int
// test.kt:23 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:16 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$3:int=0:int
// test.kt:17 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int, $i$a$-inlineCall-TestKt$bar$1$baz$3:int=0:int
// test.kt:24 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:25 baz: param:int=6:int, b:int=2:int, $i$f$inlineCall:int=0:int, e$iv:int=5:int
// test.kt:18 baz: param:int=6:int, b:int=2:int
// test.kt:20 box: $i$f$bar:int=0:int
// test.kt:31 box:
// EXPECTATIONS JS_IR
// test.kt:19 box:
// test.kt:3 <init>:
// test.kt:19 box:
// test.kt:5 baz: param=6:number
// test.kt:29 baz: param=6:number, b=2:number
// test.kt:23 baz: param=6:number, b=2:number, d=4:number
// test.kt:8 baz: param=6:number, b=2:number, d=4:number, e=5:number
// test.kt:29 baz: param=6:number, b=2:number, d=4:number, e=5:number, g=7:number
// test.kt:23 baz: param=6:number, b=2:number, d=4:number, e=5:number, g=7:number, d=4:number
// test.kt:12 baz: param=6:number, b=2:number, d=4:number, e=5:number, g=7:number, d=4:number, e=5:number
// test.kt:29 baz: param=6:number, b=2:number, d=4:number, e=5:number, g=7:number, d=4:number, e=5:number, g=7:number
// test.kt:23 baz: param=6:number, b=2:number, d=4:number, e=5:number, g=7:number, d=4:number, e=5:number, g=7:number, d=4:number
// test.kt:16 baz: param=6:number, b=2:number, d=4:number, e=5:number, g=7:number, d=4:number, e=5:number, g=7:number, d=4:number, e=5:number
// test.kt:18 baz: param=6:number, b=2:number, d=4:number, e=5:number, g=7:number, d=4:number, e=5:number, g=7:number, d=4:number, e=5:number, g=7:number
// test.kt:31 box:
@@ -18,6 +18,20 @@ suspend fun box() {
hasLocal() hasLocal()
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:8 h: $completion:kotlin.coroutines.Continuation=TestKt$box$1
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:4 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$hasLocal\1\14:int=0:int
// test.kt:5 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$hasLocal\1\14:int=0:int, x\1:int=41:int
// test.kt:16 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:18 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:4 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$hasLocal\2\18:int=0:int
// test.kt:5 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$hasLocal\2\18:int=0:int, x\2:int=41:int
// test.kt:19 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1 // test.kt:10 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null // test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
@@ -29,6 +29,27 @@ suspend fun box() {
// FIXME(JS_IR): KT-54657 // FIXME(JS_IR): KT-54657
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:26 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:27 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:20 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int, $this$extensionFun\2:AtomicInt=AtomicInt, $i$f$extensionFun\2\94:int=0:int
// test.kt:16 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int, $this$extensionFun\2:AtomicInt=AtomicInt, $i$f$extensionFun\2\94:int=0:int
// test.kt:7 getValue:
// test.kt:16 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int, $this$extensionFun\2:AtomicInt=AtomicInt, $i$f$extensionFun\2\94:int=0:int
// test.kt:17 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int, $this$extensionFun\2:AtomicInt=AtomicInt, $i$f$extensionFun\2\94:int=0:int
// test.kt:21 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int
// test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$suspendBar$2\3\101\1:int=0:int
// EXPECTATIONS ClassicFrontend JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:23 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$suspendBar$2\3\101\1:int=0:int
// EXPECTATIONS ClassicFrontend FIR JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:21 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int
// test.kt:24 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar\1\27:int=0:int
// test.kt:27 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:28 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:26 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1 // test.kt:26 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:27 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null // test.kt:27 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
@@ -30,6 +30,35 @@ suspend fun box() {
val a = baz() val a = baz()
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:29 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:30 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:26 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int
// test.kt:11 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int
// test.kt:20 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int
// test.kt:21 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int
// test.kt:7 id: obj:java.lang.Object=java.lang.Integer
// test.kt:21 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int
// test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int, $i$a$-bar-TestKt$foo$2$1\5\133\3:int=0:int
// test.kt:13 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int, $i$a$-bar-TestKt$foo$2$1\5\133\3:int=0:int, b\5:int=2:int
// test.kt:7 id: obj:java.lang.Object=java.lang.Integer
// test.kt:13 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int, $i$a$-bar-TestKt$foo$2$1\5\133\3:int=0:int, b\5:int=2:int
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int, $i$a$-bar-TestKt$foo$2$1\5\133\3:int=0:int, b\5:int=2:int
// test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int
// test.kt:23 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int, $i$f$bar\4\122:int=0:int, c\4:int=1:int
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int
// EXPECTATIONS ClassicFrontend JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:16 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\3\121\2:int=0:int
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int
// test.kt:17 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int, $i$f$foo\2\120:int=0:int
// test.kt:27 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\30:int=0:int
// test.kt:30 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:31 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:29 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1 // test.kt:29 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:30 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null // test.kt:30 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
@@ -22,6 +22,23 @@ suspend fun box() {
val a = baz() val a = baz()
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:21 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:18 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int, $i$f$bar\2\78:int=0:int
// test.kt:8 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int, $i$f$bar\2\78:int=0:int, $i$f$foo\3\79:int=0:int
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int, $i$f$bar\2\78:int=0:int, $i$f$foo\3\79:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\80\3:int=0:int
// EXPECTATIONS ClassicFrontend JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:10 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int, $i$f$bar\2\78:int=0:int, $i$f$foo\3\79:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\80\3:int=0:int
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:8 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int, $i$f$bar\2\78:int=0:int, $i$f$foo\3\79:int=0:int
// test.kt:11 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int, $i$f$bar\2\78:int=0:int, $i$f$foo\3\79:int=0:int
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int, $i$f$bar\2\78:int=0:int
// test.kt:19 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\22:int=0:int
// test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:23 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:21 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1 // test.kt:21 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null // test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
@@ -36,6 +36,51 @@ suspend fun box() {
} }
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:32 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:33 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:27 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int
// test.kt:28 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, d\1:int=4:int
// test.kt:7 id: obj:java.lang.Object=java.lang.Integer
// test.kt:28 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, d\1:int=4:int
// test.kt:29 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int
// test.kt:21 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int
// test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, c\2:int=3:int
// test.kt:7 id: obj:java.lang.Object=java.lang.Integer
// test.kt:22 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, c\2:int=3:int
// test.kt:23 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int
// test.kt:11 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, a\3:int=1:int
// test.kt:7 id: obj:java.lang.Object=java.lang.Integer
// test.kt:11 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, a\3:int=1:int
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int
// test.kt:13 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int
// test.kt:7 id: obj:java.lang.Object=java.lang.Integer
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int
// test.kt:34 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int, $i$a$-baz-TestKt$box$result$1\5\183\0:int=0:int
// test.kt:35 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int, $i$a$-baz-TestKt$box$result$1\5\183\0:int=0:int, e\5:int=5:int
// test.kt:7 id: obj:java.lang.Object=java.lang.Integer
// test.kt:35 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int, $i$a$-baz-TestKt$box$result$1\5\183\0:int=0:int, e\5:int=5:int
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:36 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int, $i$a$-baz-TestKt$box$result$1\5\183\0:int=0:int, e\5:int=5:int
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int
// test.kt:16 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int
// EXPECTATIONS ClassicFrontend JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:17 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int, $i$a$-suspendCoroutineUninterceptedOrReturn-TestKt$foo$2\4\180\3:int=0:int, b\4:int=2:int
// EXPECTATIONS FIR JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int
// EXPECTATIONS ClassicFrontend JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:12 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:18 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int, $i$f$foo\3\177:int=0:int
// test.kt:24 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int, $i$f$bar\2\174:int=0:int
// test.kt:30 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$baz\1\33:int=0:int
// test.kt:33 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:37 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:32 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1 // test.kt:32 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:33 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null // test.kt:33 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
+18
View File
@@ -36,6 +36,24 @@ fun box() {
val localX = x val localX = x
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:35 box:
// test.kt:20 compute:
// test.kt:21 compute:
// test.kt:22 compute: y:int=42:int
// test.kt:23 compute: y:int=42:int, i:int=0:int
// test.kt:7 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int
// test.kt:8 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int
// test.kt:9 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int, z\1:int=32:int
// test.kt:10 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int, z\1:int=32:int, j\1:int=0:int
// test.kt:13 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int
// test.kt:24 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int, $i$a$-f-TestKt$compute$1\2\97\0:int=0:int
// test.kt:28 compute:
// test.kt:29 compute: s2:java.lang.String="OK":java.lang.String
// test.kt:35 box:
// test.kt:36 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:37 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:35 box: // test.kt:35 box:
// test.kt:20 compute: // test.kt:20 compute:
+13
View File
@@ -29,6 +29,19 @@ fun box() {
val localX = x val localX = x
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:28 box:
// test.kt:13 compute:
// test.kt:14 compute:
// test.kt:15 compute: a:java.lang.String="a":java.lang.String
// test.kt:7 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\15:int=0:int
// test.kt:16 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\15:int=0:int, $i$a$-g-TestKt$compute$1\2\71\0:int=0:int
// test.kt:17 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\15:int=0:int, $i$a$-g-TestKt$compute$1\2\71\0:int=0:int, b\2:java.lang.String="b":java.lang.String
// test.kt:22 compute:
// test.kt:28 box:
// test.kt:29 box: result:java.lang.String="b":java.lang.String
// test.kt:30 box: result:java.lang.String="b":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:28 box: // test.kt:28 box:
// test.kt:13 compute: // test.kt:13 compute:
+20
View File
@@ -43,6 +43,26 @@ fun box() {
val localX = x val localX = x
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:42 box:
// test.kt:27 compute:
// test.kt:28 compute:
// test.kt:29 compute: a:java.lang.String="a":java.lang.String
// test.kt:16 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int
// test.kt:17 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int
// test.kt:18 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String
// test.kt:7 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\112:int=0:int
// test.kt:8 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\112:int=0:int
// test.kt:9 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\112:int=0:int, hLocal\2:java.lang.String="hLocal":java.lang.String
// test.kt:30 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\112:int=0:int, hLocal\2:java.lang.String="hLocal":java.lang.String, $i$a$-g-TestKt$compute$1\3\115\0:int=0:int
// test.kt:31 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\112:int=0:int, hLocal\2:java.lang.String="hLocal":java.lang.String, $i$a$-g-TestKt$compute$1\3\115\0:int=0:int, b\3:java.lang.String="b":java.lang.String
// test.kt:11 compute: a:java.lang.String="a":java.lang.String
// test.kt:20 compute: a:java.lang.String="a":java.lang.String
// test.kt:36 compute:
// test.kt:42 box:
// test.kt:43 box: result:java.lang.String="b":java.lang.String
// test.kt:44 box: result:java.lang.String="b":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:42 box: // test.kt:42 box:
// test.kt:27 compute: // test.kt:27 compute:
+15
View File
@@ -31,6 +31,21 @@ fun box() {
val localX = x val localX = x
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:30 box:
// test.kt:17 compute:
// test.kt:18 compute:
// test.kt:6 compute: $i$f$g\1\18:int=0:int
// test.kt:7 compute: $i$f$g\1\18:int=0:int
// test.kt:8 compute: $i$f$g\1\18:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String
// test.kt:19 compute: $i$f$g\1\18:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$a$-g-TestKt$compute$1\2\77\0:int=0:int
// test.kt:20 compute: $i$f$g\1\18:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$a$-g-TestKt$compute$1\2\77\0:int=0:int, b\2:java.lang.String="b":java.lang.String
// test.kt:10 compute:
// test.kt:24 compute:
// test.kt:30 box:
// test.kt:31 box: result:java.lang.String="b":java.lang.String
// test.kt:32 box: result:java.lang.String="b":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:30 box: // test.kt:30 box:
// test.kt:17 compute: // test.kt:17 compute:
+17
View File
@@ -33,6 +33,23 @@ fun box() {
val localX = x val localX = x
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:32 box:
// test.kt:13 compute:
// test.kt:14 compute:
// test.kt:15 compute: y:int=42:int
// test.kt:16 compute: y:int=42:int, i:int=0:int
// test.kt:18 compute:
// test.kt:19 compute: e:java.lang.Exception=java.lang.RuntimeException
// test.kt:20 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int
// test.kt:21 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int
// test.kt:7 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int, $i$f$f\1\21:int=0:int
// test.kt:22 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int, $i$f$f\1\21:int=0:int, $i$a$-f-TestKt$compute$1\2\88\0:int=0:int
// test.kt:26 compute:
// test.kt:32 box:
// test.kt:33 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:34 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:32 box: // test.kt:32 box:
// test.kt:13 compute: // test.kt:13 compute:
+18
View File
@@ -35,6 +35,24 @@ fun box() {
val localX = x val localX = x
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:34 box:
// test.kt:20 compute:
// test.kt:21 compute:
// test.kt:22 compute: y:int=42:int
// test.kt:23 compute: y:int=42:int, i:int=0:int
// test.kt:7 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int
// test.kt:8 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int
// test.kt:9 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int, z\1:int=32:int
// test.kt:10 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int, z\1:int=32:int, j\1:int=0:int
// test.kt:12 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int
// test.kt:13 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int, e\1:java.lang.Exception=java.lang.RuntimeException
// test.kt:24 compute: y:int=42:int, i:int=0:int, $i$f$f\1\23:int=0:int, e\1:java.lang.Exception=java.lang.RuntimeException, $i$a$-f-TestKt$compute$1\2\98\0:int=0:int
// test.kt:28 compute:
// test.kt:34 box:
// test.kt:35 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:36 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:34 box: // test.kt:34 box:
// test.kt:20 compute: // test.kt:20 compute:
+21
View File
@@ -38,6 +38,27 @@ fun box() {
val localX = x val localX = x
} }
// EXPECTATIONS JVM_IR +USE_INLINE_SCOPES_NUMBERS
// test.kt:37 box:
// test.kt:13 compute:
// test.kt:14 compute:
// test.kt:15 compute:
// test.kt:16 compute: y:int=42:int
// test.kt:17 compute: y:int=42:int, i:int=0:int
// test.kt:20 compute:
// test.kt:21 compute: s:java.lang.String="NOPE":java.lang.String
// test.kt:22 compute: s:java.lang.String="NOPE":java.lang.String
// test.kt:7 compute: s:java.lang.String="NOPE":java.lang.String, $i$f$f\1\22:int=0:int
// test.kt:23 compute: s:java.lang.String="NOPE":java.lang.String, $i$f$f\1\22:int=0:int, $i$a$-f-TestKt$compute$1\2\103\0:int=0:int
// test.kt:27 compute:
// test.kt:28 compute: s2:java.lang.String="NOPE":java.lang.String
// test.kt:29 compute: s2:java.lang.String="NOPE":java.lang.String, j:int=0:int
// test.kt:28 compute: s2:java.lang.String="OK":java.lang.String, j:int=0:int
// test.kt:31 compute: s2:java.lang.String="OK":java.lang.String
// test.kt:37 box:
// test.kt:38 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:39 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS JVM_IR // EXPECTATIONS JVM_IR
// test.kt:37 box: // test.kt:37 box:
// test.kt:13 compute: // test.kt:13 compute:
@@ -109,6 +109,12 @@ public class IrLocalVariableBytecodeInlinerTestGenerated extends AbstractIrLocal
runTest("compiler/testData/debug/localVariables/localFunUnused.kt"); runTest("compiler/testData/debug/localVariables/localFunUnused.kt");
} }
@Test
@TestMetadata("manyInlineFunsInObject.kt")
public void testManyInlineFunsInObject() {
runTest("compiler/testData/debug/localVariables/manyInlineFunsInObject.kt");
}
@Test @Test
@TestMetadata("tryFinally.kt") @TestMetadata("tryFinally.kt")
public void testTryFinally() { public void testTryFinally() {
@@ -333,6 +339,156 @@ public class IrLocalVariableBytecodeInlinerTestGenerated extends AbstractIrLocal
} }
} }
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes")
@TestDataPath("$PROJECT_ROOT")
public class InlineScopes {
@Test
public void testAllFilesPresentInInlineScopes() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld")
@TestDataPath("$PROJECT_ROOT")
public class NewFormatToOld {
@Test
public void testAllFilesPresentInNewFormatToOld() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineScopes1.kt")
public void testInlineScopes1() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes1.kt");
}
@Test
@TestMetadata("inlineScopes10.kt")
public void testInlineScopes10() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes10.kt");
}
@Test
@TestMetadata("inlineScopes2.kt")
public void testInlineScopes2() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes2.kt");
}
@Test
@TestMetadata("inlineScopes3.kt")
public void testInlineScopes3() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes3.kt");
}
@Test
@TestMetadata("inlineScopes4.kt")
public void testInlineScopes4() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes4.kt");
}
@Test
@TestMetadata("inlineScopes5.kt")
public void testInlineScopes5() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes5.kt");
}
@Test
@TestMetadata("inlineScopes6.kt")
public void testInlineScopes6() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes6.kt");
}
@Test
@TestMetadata("inlineScopes7.kt")
public void testInlineScopes7() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes7.kt");
}
@Test
@TestMetadata("inlineScopes8.kt")
public void testInlineScopes8() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes8.kt");
}
@Test
@TestMetadata("inlineScopes9.kt")
public void testInlineScopes9() {
runTest("compiler/testData/debug/localVariables/inlineScopes/newFormatToOld/inlineScopes9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew")
@TestDataPath("$PROJECT_ROOT")
public class OldFormatToNew {
@Test
public void testAllFilesPresentInOldFormatToNew() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineScopes1.kt")
public void testInlineScopes1() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes1.kt");
}
@Test
@TestMetadata("inlineScopes10.kt")
public void testInlineScopes10() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes10.kt");
}
@Test
@TestMetadata("inlineScopes2.kt")
public void testInlineScopes2() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes2.kt");
}
@Test
@TestMetadata("inlineScopes3.kt")
public void testInlineScopes3() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes3.kt");
}
@Test
@TestMetadata("inlineScopes4.kt")
public void testInlineScopes4() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes4.kt");
}
@Test
@TestMetadata("inlineScopes5.kt")
public void testInlineScopes5() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes5.kt");
}
@Test
@TestMetadata("inlineScopes6.kt")
public void testInlineScopes6() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes6.kt");
}
@Test
@TestMetadata("inlineScopes7.kt")
public void testInlineScopes7() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes7.kt");
}
@Test
@TestMetadata("inlineScopes8.kt")
public void testInlineScopes8() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes8.kt");
}
@Test
@TestMetadata("inlineScopes9.kt")
public void testInlineScopes9() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes9.kt");
}
}
}
@Nested @Nested
@TestMetadata("compiler/testData/debug/localVariables/receiverMangling") @TestMetadata("compiler/testData/debug/localVariables/receiverMangling")
@TestDataPath("$PROJECT_ROOT") @TestDataPath("$PROJECT_ROOT")
@@ -22,7 +22,7 @@ import java.util.regex.Pattern;
public class IrLocalVariableIrInlinerTestGenerated extends AbstractIrLocalVariableIrInlinerTest { public class IrLocalVariableIrInlinerTestGenerated extends AbstractIrLocalVariableIrInlinerTest {
@Test @Test
public void testAllFilesPresentInLocalVariables() { public void testAllFilesPresentInLocalVariables() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true, "inlineScopes");
} }
@Test @Test
@@ -109,6 +109,12 @@ public class IrLocalVariableIrInlinerTestGenerated extends AbstractIrLocalVariab
runTest("compiler/testData/debug/localVariables/localFunUnused.kt"); runTest("compiler/testData/debug/localVariables/localFunUnused.kt");
} }
@Test
@TestMetadata("manyInlineFunsInObject.kt")
public void testManyInlineFunsInObject() {
runTest("compiler/testData/debug/localVariables/manyInlineFunsInObject.kt");
}
@Test @Test
@TestMetadata("tryFinally.kt") @TestMetadata("tryFinally.kt")
public void testTryFinally() { public void testTryFinally() {
@@ -0,0 +1,822 @@
/*
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.test.runners.codegen.inlineScopes;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Tag;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.test.generators.GenerateCompilerTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/codegen/boxModernJdk")
@TestDataPath("$PROJECT_ROOT")
public class FirBlackBoxModernJdkCodegenTestGeneratedWithInlineScopes extends AbstractFirBlackBoxCodegenTestWithInlineScopes {
@Test
public void testAllFilesPresentInBoxModernJdk() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Nested
@Tag("<modernJava>")
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava11")
@TestDataPath("$PROJECT_ROOT")
public class TestsWithJava11 {
@Test
public void testAllFilesPresentInTestsWithJava11() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava11"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("concatDynamic.kt")
public void testConcatDynamic() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamic.kt");
}
@Test
@TestMetadata("concatDynamic199Long.kt")
public void testConcatDynamic199Long() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamic199Long.kt");
}
@Test
@TestMetadata("concatDynamic200.kt")
public void testConcatDynamic200() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamic200.kt");
}
@Test
@TestMetadata("concatDynamic200Long.kt")
public void testConcatDynamic200Long() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamic200Long.kt");
}
@Test
@TestMetadata("concatDynamic201.kt")
public void testConcatDynamic201() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamic201.kt");
}
@Test
@TestMetadata("concatDynamicIndy199Long.kt")
public void testConcatDynamicIndy199Long() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamicIndy199Long.kt");
}
@Test
@TestMetadata("concatDynamicIndy200.kt")
public void testConcatDynamicIndy200() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamicIndy200.kt");
}
@Test
@TestMetadata("concatDynamicIndy200Long.kt")
public void testConcatDynamicIndy200Long() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamicIndy200Long.kt");
}
@Test
@TestMetadata("concatDynamicIndy201.kt")
public void testConcatDynamicIndy201() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamicIndy201.kt");
}
@Test
@TestMetadata("concatDynamicInlineClasses.kt")
public void testConcatDynamicInlineClasses() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamicInlineClasses.kt");
}
@Test
@TestMetadata("concatDynamicSpecialSymbols.kt")
public void testConcatDynamicSpecialSymbols() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamicSpecialSymbols.kt");
}
@Test
@TestMetadata("concatDynamicWithInline.kt")
public void testConcatDynamicWithInline() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/concatDynamicWithInline.kt");
}
@Test
@TestMetadata("kt36984.kt")
public void testKt36984() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/kt36984.kt");
}
@Test
@TestMetadata("kt47917.kt")
public void testKt47917() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/kt47917.kt");
}
@Test
@TestMetadata("kt47917_oldBackend.kt")
public void testKt47917_oldBackend() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/kt47917_oldBackend.kt");
}
@Test
@TestMetadata("kt47917_russian.kt")
public void testKt47917_russian() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/kt47917_russian.kt");
}
@Test
@TestMetadata("kt47917_surrogatePairs.kt")
public void testKt47917_surrogatePairs() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/kt47917_surrogatePairs.kt");
}
@Test
@TestMetadata("varHandle.kt")
public void testVarHandle() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/varHandle.kt");
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag")
@TestDataPath("$PROJECT_ROOT")
public class ReleaseFlag {
@Test
public void testAllFilesPresentInReleaseFlag() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/byteBuffer")
@TestDataPath("$PROJECT_ROOT")
public class ByteBuffer {
@Test
public void testAllFilesPresentInByteBuffer() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/byteBuffer"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("byteBuffer.kt")
public void testByteBuffer() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/byteBuffer/byteBuffer.kt");
}
@Test
@TestMetadata("byteBuffer_10.kt")
public void testByteBuffer_10() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/byteBuffer/byteBuffer_10.kt");
}
@Test
@TestMetadata("byteBuffer_11.kt")
public void testByteBuffer_11() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/byteBuffer/byteBuffer_11.kt");
}
@Test
@TestMetadata("byteBuffer_6.kt")
public void testByteBuffer_6() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/byteBuffer/byteBuffer_6.kt");
}
@Test
@TestMetadata("byteBuffer_8.kt")
public void testByteBuffer_8() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/byteBuffer/byteBuffer_8.kt");
}
@Test
@TestMetadata("byteBuffer_9.kt")
public void testByteBuffer_9() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/byteBuffer/byteBuffer_9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/innerClass")
@TestDataPath("$PROJECT_ROOT")
public class InnerClass {
@Test
public void testAllFilesPresentInInnerClass() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/innerClass"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("threadState_10.kt")
public void testThreadState_10() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/innerClass/threadState_10.kt");
}
@Test
@TestMetadata("threadState_11.kt")
public void testThreadState_11() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/innerClass/threadState_11.kt");
}
@Test
@TestMetadata("threadState_8.kt")
public void testThreadState_8() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/innerClass/threadState_8.kt");
}
@Test
@TestMetadata("threadState_9.kt")
public void testThreadState_9() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/innerClass/threadState_9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/reflective")
@TestDataPath("$PROJECT_ROOT")
public class Reflective {
@Test
public void testAllFilesPresentInReflective() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/reflective"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("reflective.kt")
public void testReflective() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/reflective/reflective.kt");
}
@Test
@TestMetadata("reflective_10.kt")
public void testReflective_10() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/reflective/reflective_10.kt");
}
@Test
@TestMetadata("reflective_11.kt")
public void testReflective_11() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/reflective/reflective_11.kt");
}
@Test
@TestMetadata("reflective_6.kt")
public void testReflective_6() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/reflective/reflective_6.kt");
}
@Test
@TestMetadata("reflective_8.kt")
public void testReflective_8() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/reflective/reflective_8.kt");
}
@Test
@TestMetadata("reflective_9.kt")
public void testReflective_9() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/reflective/reflective_9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/withJava")
@TestDataPath("$PROJECT_ROOT")
public class WithJava {
@Test
public void testAllFilesPresentInWithJava() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/withJava"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("withJava_10.kt")
public void testWithJava_10() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/withJava/withJava_10.kt");
}
@Test
@TestMetadata("withJava_11.kt")
public void testWithJava_11() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/withJava/withJava_11.kt");
}
@Test
@TestMetadata("withJava_6.kt")
public void testWithJava_6() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/withJava/withJava_6.kt");
}
@Test
@TestMetadata("withJava_8.kt")
public void testWithJava_8() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/withJava/withJava_8.kt");
}
@Test
@TestMetadata("withJava_9.kt")
public void testWithJava_9() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava11/releaseFlag/withJava/withJava_9.kt");
}
}
}
}
@Nested
@Tag("<modernJava>")
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava17")
@TestDataPath("$PROJECT_ROOT")
public class TestsWithJava17 {
@Test
public void testAllFilesPresentInTestsWithJava17() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava17/records")
@TestDataPath("$PROJECT_ROOT")
public class Records {
@Test
public void testAllFilesPresentInRecords() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17/records"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("binaryRecord.kt")
public void testBinaryRecord() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/binaryRecord.kt");
}
@Test
@TestMetadata("bytecodeShapeForJava.kt")
public void testBytecodeShapeForJava() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/bytecodeShapeForJava.kt");
}
@Test
@TestMetadata("callableReferenceToGenericRecord.kt")
public void testCallableReferenceToGenericRecord() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/callableReferenceToGenericRecord.kt");
}
@Test
@TestMetadata("collectionSizeOverrides.kt")
public void testCollectionSizeOverrides() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/collectionSizeOverrides.kt");
}
@Test
@TestMetadata("dataJvmRecord.kt")
public void testDataJvmRecord() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/dataJvmRecord.kt");
}
@Test
@TestMetadata("jvmRecordBinary.kt")
public void testJvmRecordBinary() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/jvmRecordBinary.kt");
}
@Test
@TestMetadata("kt54573.kt")
public void testKt54573() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/kt54573.kt");
}
@Test
@TestMetadata("propertiesOverrides.kt")
public void testPropertiesOverrides() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/propertiesOverrides.kt");
}
@Test
@TestMetadata("propertiesOverridesAllCompatibilityJvmDefault.kt")
public void testPropertiesOverridesAllCompatibilityJvmDefault() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/propertiesOverridesAllCompatibilityJvmDefault.kt");
}
@Test
@TestMetadata("propertiesOverridesAllJvmDefault.kt")
public void testPropertiesOverridesAllJvmDefault() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/propertiesOverridesAllJvmDefault.kt");
}
@Test
@TestMetadata("recordDifferentPropertyOverride.kt")
public void testRecordDifferentPropertyOverride() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/recordDifferentPropertyOverride.kt");
}
@Test
@TestMetadata("recordDifferentSyntheticProperty.kt")
public void testRecordDifferentSyntheticProperty() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/recordDifferentSyntheticProperty.kt");
}
@Test
@TestMetadata("recordPropertyAccess.kt")
public void testRecordPropertyAccess() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/recordPropertyAccess.kt");
}
@Test
@TestMetadata("recordWithCompanion.kt")
public void testRecordWithCompanion() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/records/recordWithCompanion.kt");
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag")
@TestDataPath("$PROJECT_ROOT")
public class ReleaseFlag {
@Test
public void testAllFilesPresentInReleaseFlag() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer")
@TestDataPath("$PROJECT_ROOT")
public class ByteBuffer {
@Test
public void testAllFilesPresentInByteBuffer() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("byteBuffer.kt")
public void testByteBuffer() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer.kt");
}
@Test
@TestMetadata("byteBuffer_10.kt")
public void testByteBuffer_10() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_10.kt");
}
@Test
@TestMetadata("byteBuffer_11.kt")
public void testByteBuffer_11() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_11.kt");
}
@Test
@TestMetadata("byteBuffer_12.kt")
public void testByteBuffer_12() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_12.kt");
}
@Test
@TestMetadata("byteBuffer_13.kt")
public void testByteBuffer_13() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_13.kt");
}
@Test
@TestMetadata("byteBuffer_14.kt")
public void testByteBuffer_14() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_14.kt");
}
@Test
@TestMetadata("byteBuffer_15.kt")
public void testByteBuffer_15() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_15.kt");
}
@Test
@TestMetadata("byteBuffer_16.kt")
public void testByteBuffer_16() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_16.kt");
}
@Test
@TestMetadata("byteBuffer_17.kt")
public void testByteBuffer_17() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_17.kt");
}
@Test
@TestMetadata("byteBuffer_8.kt")
public void testByteBuffer_8() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_8.kt");
}
@Test
@TestMetadata("byteBuffer_9.kt")
public void testByteBuffer_9() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/byteBuffer/byteBuffer_9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable")
@TestDataPath("$PROJECT_ROOT")
public class Constable {
@Test
public void testAllFilesPresentInConstable() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("constable.kt")
public void testConstable() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable.kt");
}
@Test
@TestMetadata("constable_10.kt")
public void testConstable_10() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_10.kt");
}
@Test
@TestMetadata("constable_11.kt")
public void testConstable_11() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_11.kt");
}
@Test
@TestMetadata("constable_12.kt")
public void testConstable_12() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_12.kt");
}
@Test
@TestMetadata("constable_13.kt")
public void testConstable_13() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_13.kt");
}
@Test
@TestMetadata("constable_14.kt")
public void testConstable_14() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_14.kt");
}
@Test
@TestMetadata("constable_15.kt")
public void testConstable_15() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_15.kt");
}
@Test
@TestMetadata("constable_16.kt")
public void testConstable_16() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_16.kt");
}
@Test
@TestMetadata("constable_17.kt")
public void testConstable_17() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_17.kt");
}
@Test
@TestMetadata("constable_8.kt")
public void testConstable_8() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_8.kt");
}
@Test
@TestMetadata("constable_9.kt")
public void testConstable_9() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/constable/constable_9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass")
@TestDataPath("$PROJECT_ROOT")
public class InnerClass {
@Test
public void testAllFilesPresentInInnerClass() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("threadState_10.kt")
public void testThreadState_10() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_10.kt");
}
@Test
@TestMetadata("threadState_11.kt")
public void testThreadState_11() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_11.kt");
}
@Test
@TestMetadata("threadState_12.kt")
public void testThreadState_12() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_12.kt");
}
@Test
@TestMetadata("threadState_13.kt")
public void testThreadState_13() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_13.kt");
}
@Test
@TestMetadata("threadState_14.kt")
public void testThreadState_14() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_14.kt");
}
@Test
@TestMetadata("threadState_15.kt")
public void testThreadState_15() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_15.kt");
}
@Test
@TestMetadata("threadState_16.kt")
public void testThreadState_16() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_16.kt");
}
@Test
@TestMetadata("threadState_17.kt")
public void testThreadState_17() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_17.kt");
}
@Test
@TestMetadata("threadState_8.kt")
public void testThreadState_8() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_8.kt");
}
@Test
@TestMetadata("threadState_9.kt")
public void testThreadState_9() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/innerClass/threadState_9.kt");
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava")
@TestDataPath("$PROJECT_ROOT")
public class WithJava {
@Test
public void testAllFilesPresentInWithJava() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("withJava_10.kt")
public void testWithJava_10() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_10.kt");
}
@Test
@TestMetadata("withJava_11.kt")
public void testWithJava_11() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_11.kt");
}
@Test
@TestMetadata("withJava_12.kt")
public void testWithJava_12() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_12.kt");
}
@Test
@TestMetadata("withJava_13.kt")
public void testWithJava_13() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_13.kt");
}
@Test
@TestMetadata("withJava_14.kt")
public void testWithJava_14() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_14.kt");
}
@Test
@TestMetadata("withJava_15.kt")
public void testWithJava_15() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_15.kt");
}
@Test
@TestMetadata("withJava_16.kt")
public void testWithJava_16() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_16.kt");
}
@Test
@TestMetadata("withJava_17.kt")
public void testWithJava_17() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_17.kt");
}
@Test
@TestMetadata("withJava_8.kt")
public void testWithJava_8() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_8.kt");
}
@Test
@TestMetadata("withJava_9.kt")
public void testWithJava_9() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/releaseFlag/withJava/withJava_9.kt");
}
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed")
@TestDataPath("$PROJECT_ROOT")
public class Sealed {
@Test
public void testAllFilesPresentInSealed() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("compiledJavaSealedClass.kt")
public void testCompiledJavaSealedClass() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/compiledJavaSealedClass.kt");
}
@Test
@TestMetadata("compiledJavaSealedInterface.kt")
public void testCompiledJavaSealedInterface() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/compiledJavaSealedInterface.kt");
}
@Test
@TestMetadata("javaExhaustiveWhenOnKotlinSealedClass.kt")
public void testJavaExhaustiveWhenOnKotlinSealedClass() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/javaExhaustiveWhenOnKotlinSealedClass.kt");
}
@Test
@TestMetadata("javaRecordsViaKotlinReflection.kt")
public void testJavaRecordsViaKotlinReflection() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/javaRecordsViaKotlinReflection.kt");
}
@Test
@TestMetadata("javaSealedClass.kt")
public void testJavaSealedClass() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/javaSealedClass.kt");
}
@Test
@TestMetadata("javaSealedInterface.kt")
public void testJavaSealedInterface() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/javaSealedInterface.kt");
}
@Test
@TestMetadata("kotlinExhaustiveWhenOnJavaSealedClass.kt")
public void testKotlinExhaustiveWhenOnJavaSealedClass() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/kotlinExhaustiveWhenOnJavaSealedClass.kt");
}
@Test
@TestMetadata("permittedSubclassesOfSealedKotlinClass.kt")
public void testPermittedSubclassesOfSealedKotlinClass() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/permittedSubclassesOfSealedKotlinClass.kt");
}
@Test
@TestMetadata("sealedJavaClassViaJavaReflection.kt")
public void testSealedJavaClassViaJavaReflection() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/sealedJavaClassViaJavaReflection.kt");
}
@Test
@TestMetadata("sealedJavaClassViaKotlinReflection.kt")
public void testSealedJavaClassViaKotlinReflection() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/sealedJavaClassViaKotlinReflection.kt");
}
@Test
@TestMetadata("sealedJavaInterfaceViaKotlinReflection.kt")
public void testSealedJavaInterfaceViaKotlinReflection() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava17/sealed/sealedJavaInterfaceViaKotlinReflection.kt");
}
}
}
@Nested
@TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava21")
@TestDataPath("$PROJECT_ROOT")
public class TestsWithJava21 {
@Test
@TestMetadata("addRemoveOnMutableList.kt")
public void testAddRemoveOnMutableList() {
runTest("compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt");
}
@Test
public void testAllFilesPresentInTestsWithJava21() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava21"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
}
}
@@ -0,0 +1,583 @@
/*
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.test.runners.codegen.inlineScopes;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.test.generators.GenerateCompilerTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/debug/localVariables")
@TestDataPath("$PROJECT_ROOT")
public class FirLocalVariableBytecodeInlinerTestWithInlineScopesGenerated extends AbstractFirLocalVariableBytecodeInlinerTestWithInlineScopes {
@Test
public void testAllFilesPresentInLocalVariables() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true, "inlineScopes/newFormatToOld");
}
@Test
@TestMetadata("assignment.kt")
public void testAssignment() {
runTest("compiler/testData/debug/localVariables/assignment.kt");
}
@Test
@TestMetadata("catchClause.kt")
public void testCatchClause() {
runTest("compiler/testData/debug/localVariables/catchClause.kt");
}
@Test
@TestMetadata("copyFunction.kt")
public void testCopyFunction() {
runTest("compiler/testData/debug/localVariables/copyFunction.kt");
}
@Test
@TestMetadata("directInvoke.kt")
public void testDirectInvoke() {
runTest("compiler/testData/debug/localVariables/directInvoke.kt");
}
@Test
@TestMetadata("doWhile.kt")
public void testDoWhile() {
runTest("compiler/testData/debug/localVariables/doWhile.kt");
}
@Test
@TestMetadata("emptyFun.kt")
public void testEmptyFun() {
runTest("compiler/testData/debug/localVariables/emptyFun.kt");
}
@Test
@TestMetadata("forLoopMultiline.kt")
public void testForLoopMultiline() {
runTest("compiler/testData/debug/localVariables/forLoopMultiline.kt");
}
@Test
@TestMetadata("inlineFunInObject.kt")
public void testInlineFunInObject() {
runTest("compiler/testData/debug/localVariables/inlineFunInObject.kt");
}
@Test
@TestMetadata("inlineProperty.kt")
public void testInlineProperty() {
runTest("compiler/testData/debug/localVariables/inlineProperty.kt");
}
@Test
@TestMetadata("jvmOverloads.kt")
public void testJvmOverloads() {
runTest("compiler/testData/debug/localVariables/jvmOverloads.kt");
}
@Test
@TestMetadata("lambdaInObject.kt")
public void testLambdaInObject() {
runTest("compiler/testData/debug/localVariables/lambdaInObject.kt");
}
@Test
@TestMetadata("lambdaWithLambdaParameter.kt")
public void testLambdaWithLambdaParameter() {
runTest("compiler/testData/debug/localVariables/lambdaWithLambdaParameter.kt");
}
@Test
@TestMetadata("localFun.kt")
public void testLocalFun() {
runTest("compiler/testData/debug/localVariables/localFun.kt");
}
@Test
@TestMetadata("localFunUnused.kt")
public void testLocalFunUnused() {
runTest("compiler/testData/debug/localVariables/localFunUnused.kt");
}
@Test
@TestMetadata("manyInlineFunsInObject.kt")
public void testManyInlineFunsInObject() {
runTest("compiler/testData/debug/localVariables/manyInlineFunsInObject.kt");
}
@Test
@TestMetadata("tryFinally.kt")
public void testTryFinally() {
runTest("compiler/testData/debug/localVariables/tryFinally.kt");
}
@Test
@TestMetadata("tryFinally10.kt")
public void testTryFinally10() {
runTest("compiler/testData/debug/localVariables/tryFinally10.kt");
}
@Test
@TestMetadata("tryFinally11.kt")
public void testTryFinally11() {
runTest("compiler/testData/debug/localVariables/tryFinally11.kt");
}
@Test
@TestMetadata("tryFinally12.kt")
public void testTryFinally12() {
runTest("compiler/testData/debug/localVariables/tryFinally12.kt");
}
@Test
@TestMetadata("tryFinally13.kt")
public void testTryFinally13() {
runTest("compiler/testData/debug/localVariables/tryFinally13.kt");
}
@Test
@TestMetadata("tryFinally14.kt")
public void testTryFinally14() {
runTest("compiler/testData/debug/localVariables/tryFinally14.kt");
}
@Test
@TestMetadata("tryFinally15.kt")
public void testTryFinally15() {
runTest("compiler/testData/debug/localVariables/tryFinally15.kt");
}
@Test
@TestMetadata("tryFinally16.kt")
public void testTryFinally16() {
runTest("compiler/testData/debug/localVariables/tryFinally16.kt");
}
@Test
@TestMetadata("tryFinally17.kt")
public void testTryFinally17() {
runTest("compiler/testData/debug/localVariables/tryFinally17.kt");
}
@Test
@TestMetadata("tryFinally2.kt")
public void testTryFinally2() {
runTest("compiler/testData/debug/localVariables/tryFinally2.kt");
}
@Test
@TestMetadata("tryFinally3.kt")
public void testTryFinally3() {
runTest("compiler/testData/debug/localVariables/tryFinally3.kt");
}
@Test
@TestMetadata("tryFinally4.kt")
public void testTryFinally4() {
runTest("compiler/testData/debug/localVariables/tryFinally4.kt");
}
@Test
@TestMetadata("tryFinally5.kt")
public void testTryFinally5() {
runTest("compiler/testData/debug/localVariables/tryFinally5.kt");
}
@Test
@TestMetadata("tryFinally6_1.kt")
public void testTryFinally6_1() {
runTest("compiler/testData/debug/localVariables/tryFinally6_1.kt");
}
@Test
@TestMetadata("tryFinally6_2.kt")
public void testTryFinally6_2() {
runTest("compiler/testData/debug/localVariables/tryFinally6_2.kt");
}
@Test
@TestMetadata("tryFinally7.kt")
public void testTryFinally7() {
runTest("compiler/testData/debug/localVariables/tryFinally7.kt");
}
@Test
@TestMetadata("tryFinally8.kt")
public void testTryFinally8() {
runTest("compiler/testData/debug/localVariables/tryFinally8.kt");
}
@Test
@TestMetadata("tryFinally9.kt")
public void testTryFinally9() {
runTest("compiler/testData/debug/localVariables/tryFinally9.kt");
}
@Test
@TestMetadata("underscoreNames.kt")
public void testUnderscoreNames() {
runTest("compiler/testData/debug/localVariables/underscoreNames.kt");
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/constructors")
@TestDataPath("$PROJECT_ROOT")
public class Constructors {
@Test
public void testAllFilesPresentInConstructors() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/constructors"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("multipleConstructors.kt")
public void testMultipleConstructors() {
runTest("compiler/testData/debug/localVariables/constructors/multipleConstructors.kt");
}
@Test
@TestMetadata("property.kt")
public void testProperty() {
runTest("compiler/testData/debug/localVariables/constructors/property.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/destructuring")
@TestDataPath("$PROJECT_ROOT")
public class Destructuring {
@Test
public void testAllFilesPresentInDestructuring() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/destructuring"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("assignment.kt")
public void testAssignment() {
runTest("compiler/testData/debug/localVariables/destructuring/assignment.kt");
}
@Test
@TestMetadata("assignmentCustomComponentNs.kt")
public void testAssignmentCustomComponentNs() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentCustomComponentNs.kt");
}
@Test
@TestMetadata("assignmentCustomComponentNsMultiline.kt")
public void testAssignmentCustomComponentNsMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentCustomComponentNsMultiline.kt");
}
@Test
@TestMetadata("assignmentMultiline.kt")
public void testAssignmentMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentMultiline.kt");
}
@Test
@TestMetadata("assignmentUnderscoreNames.kt")
public void testAssignmentUnderscoreNames() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentUnderscoreNames.kt");
}
@Test
@TestMetadata("assignmentUnderscoreNamesMultiline.kt")
public void testAssignmentUnderscoreNamesMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentUnderscoreNamesMultiline.kt");
}
@Test
@TestMetadata("forLoop.kt")
public void testForLoop() {
runTest("compiler/testData/debug/localVariables/destructuring/forLoop.kt");
}
@Test
@TestMetadata("forLoopMultiline.kt")
public void testForLoopMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/forLoopMultiline.kt");
}
@Test
@TestMetadata("lambda.kt")
public void testLambda() {
runTest("compiler/testData/debug/localVariables/destructuring/lambda.kt");
}
@Test
@TestMetadata("lambdaCustomComponentNs.kt")
public void testLambdaCustomComponentNs() {
runTest("compiler/testData/debug/localVariables/destructuring/lambdaCustomComponentNs.kt");
}
@Test
@TestMetadata("lambdaCustomComponentNsMultiline.kt")
public void testLambdaCustomComponentNsMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/lambdaCustomComponentNsMultiline.kt");
}
@Test
@TestMetadata("lambdaMultiline.kt")
public void testLambdaMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/lambdaMultiline.kt");
}
@Test
@TestMetadata("lambdaMultipleDestructs.kt")
public void testLambdaMultipleDestructs() {
runTest("compiler/testData/debug/localVariables/destructuring/lambdaMultipleDestructs.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes")
@TestDataPath("$PROJECT_ROOT")
public class InlineScopes {
@Test
public void testAllFilesPresentInInlineScopes() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true, "newFormatToOld");
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew")
@TestDataPath("$PROJECT_ROOT")
public class OldFormatToNew {
@Test
public void testAllFilesPresentInOldFormatToNew() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineScopes1.kt")
public void testInlineScopes1() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes1.kt");
}
@Test
@TestMetadata("inlineScopes10.kt")
public void testInlineScopes10() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes10.kt");
}
@Test
@TestMetadata("inlineScopes2.kt")
public void testInlineScopes2() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes2.kt");
}
@Test
@TestMetadata("inlineScopes3.kt")
public void testInlineScopes3() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes3.kt");
}
@Test
@TestMetadata("inlineScopes4.kt")
public void testInlineScopes4() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes4.kt");
}
@Test
@TestMetadata("inlineScopes5.kt")
public void testInlineScopes5() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes5.kt");
}
@Test
@TestMetadata("inlineScopes6.kt")
public void testInlineScopes6() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes6.kt");
}
@Test
@TestMetadata("inlineScopes7.kt")
public void testInlineScopes7() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes7.kt");
}
@Test
@TestMetadata("inlineScopes8.kt")
public void testInlineScopes8() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes8.kt");
}
@Test
@TestMetadata("inlineScopes9.kt")
public void testInlineScopes9() {
runTest("compiler/testData/debug/localVariables/inlineScopes/oldFormatToNew/inlineScopes9.kt");
}
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/receiverMangling")
@TestDataPath("$PROJECT_ROOT")
public class ReceiverMangling {
@Test
public void testAllFilesPresentInReceiverMangling() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/receiverMangling"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("capturedThisField.kt")
public void testCapturedThisField() {
runTest("compiler/testData/debug/localVariables/receiverMangling/capturedThisField.kt");
}
@Test
@TestMetadata("labeledThisParameterLabel.kt")
public void testLabeledThisParameterLabel() {
runTest("compiler/testData/debug/localVariables/receiverMangling/labeledThisParameterLabel.kt");
}
@Test
@TestMetadata("lambdaWithExtensionReceiver.kt")
public void testLambdaWithExtensionReceiver() {
runTest("compiler/testData/debug/localVariables/receiverMangling/lambdaWithExtensionReceiver.kt");
}
@Test
@TestMetadata("receiverParameter.kt")
public void testReceiverParameter() {
runTest("compiler/testData/debug/localVariables/receiverMangling/receiverParameter.kt");
}
@Test
@TestMetadata("simple.kt")
public void testSimple() {
runTest("compiler/testData/debug/localVariables/receiverMangling/simple.kt");
}
@Test
@TestMetadata("simpleCapturedReceiver.kt")
public void testSimpleCapturedReceiver() {
runTest("compiler/testData/debug/localVariables/receiverMangling/simpleCapturedReceiver.kt");
}
@Test
@TestMetadata("simpleCapturedReceiverWithLabel.kt")
public void testSimpleCapturedReceiverWithLabel() {
runTest("compiler/testData/debug/localVariables/receiverMangling/simpleCapturedReceiverWithLabel.kt");
}
@Test
@TestMetadata("simpleCapturedReceiverWithParenthesis.kt")
public void testSimpleCapturedReceiverWithParenthesis() {
runTest("compiler/testData/debug/localVariables/receiverMangling/simpleCapturedReceiverWithParenthesis.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/suspend")
@TestDataPath("$PROJECT_ROOT")
public class Suspend {
@Test
public void testAllFilesPresentInSuspend() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/suspend"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineLocalsStateMachineTransform.kt")
public void testInlineLocalsStateMachineTransform() {
runTest("compiler/testData/debug/localVariables/suspend/inlineLocalsStateMachineTransform.kt");
}
@Test
@TestMetadata("localsStateMachineTransform.kt")
public void testLocalsStateMachineTransform() {
runTest("compiler/testData/debug/localVariables/suspend/localsStateMachineTransform.kt");
}
@Test
@TestMetadata("mergeLvt.kt")
public void testMergeLvt() {
runTest("compiler/testData/debug/localVariables/suspend/mergeLvt.kt");
}
@Test
@TestMetadata("nestedInsideSuspendUnintercepted.kt")
public void testNestedInsideSuspendUnintercepted() {
runTest("compiler/testData/debug/localVariables/suspend/nestedInsideSuspendUnintercepted.kt");
}
@Test
@TestMetadata("nestedSuspendUnintercepted.kt")
public void testNestedSuspendUnintercepted() {
runTest("compiler/testData/debug/localVariables/suspend/nestedSuspendUnintercepted.kt");
}
@Test
@TestMetadata("nestedSuspendUninterceptedWithDeepLambdaCall.kt")
public void testNestedSuspendUninterceptedWithDeepLambdaCall() {
runTest("compiler/testData/debug/localVariables/suspend/nestedSuspendUninterceptedWithDeepLambdaCall.kt");
}
@Test
@TestMetadata("simple.kt")
public void testSimple() {
runTest("compiler/testData/debug/localVariables/suspend/simple.kt");
}
@Test
@TestMetadata("underscoreNames.kt")
public void testUnderscoreNames() {
runTest("compiler/testData/debug/localVariables/suspend/underscoreNames.kt");
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/suspend/completion")
@TestDataPath("$PROJECT_ROOT")
public class Completion {
@Test
public void testAllFilesPresentInCompletion() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/suspend/completion"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("nonStaticSimple.kt")
public void testNonStaticSimple() {
runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt");
}
@Test
@TestMetadata("nonStaticStateMachine.kt")
public void testNonStaticStateMachine() {
runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt");
}
@Test
@TestMetadata("staticSimple.kt")
public void testStaticSimple() {
runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt");
}
@Test
@TestMetadata("staticSimpleReceiver.kt")
public void testStaticSimpleReceiver() {
runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt");
}
@Test
@TestMetadata("staticStateMachine.kt")
public void testStaticStateMachine() {
runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt");
}
@Test
@TestMetadata("staticStateMachineReceiver.kt")
public void testStaticStateMachineReceiver() {
runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt");
}
}
}
}
@@ -0,0 +1,503 @@
/*
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.test.runners.codegen.inlineScopes;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.test.generators.GenerateCompilerTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/debug/localVariables")
@TestDataPath("$PROJECT_ROOT")
public class FirLocalVariableIrInlinerTestWithInlineScopesGenerated extends AbstractFirLocalVariableIrInlinerTestWithInlineScopes {
@Test
public void testAllFilesPresentInLocalVariables() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true, "inlineScopes");
}
@Test
@TestMetadata("assignment.kt")
public void testAssignment() {
runTest("compiler/testData/debug/localVariables/assignment.kt");
}
@Test
@TestMetadata("catchClause.kt")
public void testCatchClause() {
runTest("compiler/testData/debug/localVariables/catchClause.kt");
}
@Test
@TestMetadata("copyFunction.kt")
public void testCopyFunction() {
runTest("compiler/testData/debug/localVariables/copyFunction.kt");
}
@Test
@TestMetadata("directInvoke.kt")
public void testDirectInvoke() {
runTest("compiler/testData/debug/localVariables/directInvoke.kt");
}
@Test
@TestMetadata("doWhile.kt")
public void testDoWhile() {
runTest("compiler/testData/debug/localVariables/doWhile.kt");
}
@Test
@TestMetadata("emptyFun.kt")
public void testEmptyFun() {
runTest("compiler/testData/debug/localVariables/emptyFun.kt");
}
@Test
@TestMetadata("forLoopMultiline.kt")
public void testForLoopMultiline() {
runTest("compiler/testData/debug/localVariables/forLoopMultiline.kt");
}
@Test
@TestMetadata("inlineFunInObject.kt")
public void testInlineFunInObject() {
runTest("compiler/testData/debug/localVariables/inlineFunInObject.kt");
}
@Test
@TestMetadata("inlineProperty.kt")
public void testInlineProperty() {
runTest("compiler/testData/debug/localVariables/inlineProperty.kt");
}
@Test
@TestMetadata("jvmOverloads.kt")
public void testJvmOverloads() {
runTest("compiler/testData/debug/localVariables/jvmOverloads.kt");
}
@Test
@TestMetadata("lambdaInObject.kt")
public void testLambdaInObject() {
runTest("compiler/testData/debug/localVariables/lambdaInObject.kt");
}
@Test
@TestMetadata("lambdaWithLambdaParameter.kt")
public void testLambdaWithLambdaParameter() {
runTest("compiler/testData/debug/localVariables/lambdaWithLambdaParameter.kt");
}
@Test
@TestMetadata("localFun.kt")
public void testLocalFun() {
runTest("compiler/testData/debug/localVariables/localFun.kt");
}
@Test
@TestMetadata("localFunUnused.kt")
public void testLocalFunUnused() {
runTest("compiler/testData/debug/localVariables/localFunUnused.kt");
}
@Test
@TestMetadata("manyInlineFunsInObject.kt")
public void testManyInlineFunsInObject() {
runTest("compiler/testData/debug/localVariables/manyInlineFunsInObject.kt");
}
@Test
@TestMetadata("tryFinally.kt")
public void testTryFinally() {
runTest("compiler/testData/debug/localVariables/tryFinally.kt");
}
@Test
@TestMetadata("tryFinally10.kt")
public void testTryFinally10() {
runTest("compiler/testData/debug/localVariables/tryFinally10.kt");
}
@Test
@TestMetadata("tryFinally11.kt")
public void testTryFinally11() {
runTest("compiler/testData/debug/localVariables/tryFinally11.kt");
}
@Test
@TestMetadata("tryFinally12.kt")
public void testTryFinally12() {
runTest("compiler/testData/debug/localVariables/tryFinally12.kt");
}
@Test
@TestMetadata("tryFinally13.kt")
public void testTryFinally13() {
runTest("compiler/testData/debug/localVariables/tryFinally13.kt");
}
@Test
@TestMetadata("tryFinally14.kt")
public void testTryFinally14() {
runTest("compiler/testData/debug/localVariables/tryFinally14.kt");
}
@Test
@TestMetadata("tryFinally15.kt")
public void testTryFinally15() {
runTest("compiler/testData/debug/localVariables/tryFinally15.kt");
}
@Test
@TestMetadata("tryFinally16.kt")
public void testTryFinally16() {
runTest("compiler/testData/debug/localVariables/tryFinally16.kt");
}
@Test
@TestMetadata("tryFinally17.kt")
public void testTryFinally17() {
runTest("compiler/testData/debug/localVariables/tryFinally17.kt");
}
@Test
@TestMetadata("tryFinally2.kt")
public void testTryFinally2() {
runTest("compiler/testData/debug/localVariables/tryFinally2.kt");
}
@Test
@TestMetadata("tryFinally3.kt")
public void testTryFinally3() {
runTest("compiler/testData/debug/localVariables/tryFinally3.kt");
}
@Test
@TestMetadata("tryFinally4.kt")
public void testTryFinally4() {
runTest("compiler/testData/debug/localVariables/tryFinally4.kt");
}
@Test
@TestMetadata("tryFinally5.kt")
public void testTryFinally5() {
runTest("compiler/testData/debug/localVariables/tryFinally5.kt");
}
@Test
@TestMetadata("tryFinally6_1.kt")
public void testTryFinally6_1() {
runTest("compiler/testData/debug/localVariables/tryFinally6_1.kt");
}
@Test
@TestMetadata("tryFinally6_2.kt")
public void testTryFinally6_2() {
runTest("compiler/testData/debug/localVariables/tryFinally6_2.kt");
}
@Test
@TestMetadata("tryFinally7.kt")
public void testTryFinally7() {
runTest("compiler/testData/debug/localVariables/tryFinally7.kt");
}
@Test
@TestMetadata("tryFinally8.kt")
public void testTryFinally8() {
runTest("compiler/testData/debug/localVariables/tryFinally8.kt");
}
@Test
@TestMetadata("tryFinally9.kt")
public void testTryFinally9() {
runTest("compiler/testData/debug/localVariables/tryFinally9.kt");
}
@Test
@TestMetadata("underscoreNames.kt")
public void testUnderscoreNames() {
runTest("compiler/testData/debug/localVariables/underscoreNames.kt");
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/constructors")
@TestDataPath("$PROJECT_ROOT")
public class Constructors {
@Test
public void testAllFilesPresentInConstructors() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/constructors"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("multipleConstructors.kt")
public void testMultipleConstructors() {
runTest("compiler/testData/debug/localVariables/constructors/multipleConstructors.kt");
}
@Test
@TestMetadata("property.kt")
public void testProperty() {
runTest("compiler/testData/debug/localVariables/constructors/property.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/destructuring")
@TestDataPath("$PROJECT_ROOT")
public class Destructuring {
@Test
public void testAllFilesPresentInDestructuring() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/destructuring"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("assignment.kt")
public void testAssignment() {
runTest("compiler/testData/debug/localVariables/destructuring/assignment.kt");
}
@Test
@TestMetadata("assignmentCustomComponentNs.kt")
public void testAssignmentCustomComponentNs() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentCustomComponentNs.kt");
}
@Test
@TestMetadata("assignmentCustomComponentNsMultiline.kt")
public void testAssignmentCustomComponentNsMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentCustomComponentNsMultiline.kt");
}
@Test
@TestMetadata("assignmentMultiline.kt")
public void testAssignmentMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentMultiline.kt");
}
@Test
@TestMetadata("assignmentUnderscoreNames.kt")
public void testAssignmentUnderscoreNames() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentUnderscoreNames.kt");
}
@Test
@TestMetadata("assignmentUnderscoreNamesMultiline.kt")
public void testAssignmentUnderscoreNamesMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/assignmentUnderscoreNamesMultiline.kt");
}
@Test
@TestMetadata("forLoop.kt")
public void testForLoop() {
runTest("compiler/testData/debug/localVariables/destructuring/forLoop.kt");
}
@Test
@TestMetadata("forLoopMultiline.kt")
public void testForLoopMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/forLoopMultiline.kt");
}
@Test
@TestMetadata("lambda.kt")
public void testLambda() {
runTest("compiler/testData/debug/localVariables/destructuring/lambda.kt");
}
@Test
@TestMetadata("lambdaCustomComponentNs.kt")
public void testLambdaCustomComponentNs() {
runTest("compiler/testData/debug/localVariables/destructuring/lambdaCustomComponentNs.kt");
}
@Test
@TestMetadata("lambdaCustomComponentNsMultiline.kt")
public void testLambdaCustomComponentNsMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/lambdaCustomComponentNsMultiline.kt");
}
@Test
@TestMetadata("lambdaMultiline.kt")
public void testLambdaMultiline() {
runTest("compiler/testData/debug/localVariables/destructuring/lambdaMultiline.kt");
}
@Test
@TestMetadata("lambdaMultipleDestructs.kt")
public void testLambdaMultipleDestructs() {
runTest("compiler/testData/debug/localVariables/destructuring/lambdaMultipleDestructs.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/receiverMangling")
@TestDataPath("$PROJECT_ROOT")
public class ReceiverMangling {
@Test
public void testAllFilesPresentInReceiverMangling() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/receiverMangling"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("capturedThisField.kt")
public void testCapturedThisField() {
runTest("compiler/testData/debug/localVariables/receiverMangling/capturedThisField.kt");
}
@Test
@TestMetadata("labeledThisParameterLabel.kt")
public void testLabeledThisParameterLabel() {
runTest("compiler/testData/debug/localVariables/receiverMangling/labeledThisParameterLabel.kt");
}
@Test
@TestMetadata("lambdaWithExtensionReceiver.kt")
public void testLambdaWithExtensionReceiver() {
runTest("compiler/testData/debug/localVariables/receiverMangling/lambdaWithExtensionReceiver.kt");
}
@Test
@TestMetadata("receiverParameter.kt")
public void testReceiverParameter() {
runTest("compiler/testData/debug/localVariables/receiverMangling/receiverParameter.kt");
}
@Test
@TestMetadata("simple.kt")
public void testSimple() {
runTest("compiler/testData/debug/localVariables/receiverMangling/simple.kt");
}
@Test
@TestMetadata("simpleCapturedReceiver.kt")
public void testSimpleCapturedReceiver() {
runTest("compiler/testData/debug/localVariables/receiverMangling/simpleCapturedReceiver.kt");
}
@Test
@TestMetadata("simpleCapturedReceiverWithLabel.kt")
public void testSimpleCapturedReceiverWithLabel() {
runTest("compiler/testData/debug/localVariables/receiverMangling/simpleCapturedReceiverWithLabel.kt");
}
@Test
@TestMetadata("simpleCapturedReceiverWithParenthesis.kt")
public void testSimpleCapturedReceiverWithParenthesis() {
runTest("compiler/testData/debug/localVariables/receiverMangling/simpleCapturedReceiverWithParenthesis.kt");
}
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/suspend")
@TestDataPath("$PROJECT_ROOT")
public class Suspend {
@Test
public void testAllFilesPresentInSuspend() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/suspend"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("inlineLocalsStateMachineTransform.kt")
public void testInlineLocalsStateMachineTransform() {
runTest("compiler/testData/debug/localVariables/suspend/inlineLocalsStateMachineTransform.kt");
}
@Test
@TestMetadata("localsStateMachineTransform.kt")
public void testLocalsStateMachineTransform() {
runTest("compiler/testData/debug/localVariables/suspend/localsStateMachineTransform.kt");
}
@Test
@TestMetadata("mergeLvt.kt")
public void testMergeLvt() {
runTest("compiler/testData/debug/localVariables/suspend/mergeLvt.kt");
}
@Test
@TestMetadata("nestedInsideSuspendUnintercepted.kt")
public void testNestedInsideSuspendUnintercepted() {
runTest("compiler/testData/debug/localVariables/suspend/nestedInsideSuspendUnintercepted.kt");
}
@Test
@TestMetadata("nestedSuspendUnintercepted.kt")
public void testNestedSuspendUnintercepted() {
runTest("compiler/testData/debug/localVariables/suspend/nestedSuspendUnintercepted.kt");
}
@Test
@TestMetadata("nestedSuspendUninterceptedWithDeepLambdaCall.kt")
public void testNestedSuspendUninterceptedWithDeepLambdaCall() {
runTest("compiler/testData/debug/localVariables/suspend/nestedSuspendUninterceptedWithDeepLambdaCall.kt");
}
@Test
@TestMetadata("simple.kt")
public void testSimple() {
runTest("compiler/testData/debug/localVariables/suspend/simple.kt");
}
@Test
@TestMetadata("underscoreNames.kt")
public void testUnderscoreNames() {
runTest("compiler/testData/debug/localVariables/suspend/underscoreNames.kt");
}
@Nested
@TestMetadata("compiler/testData/debug/localVariables/suspend/completion")
@TestDataPath("$PROJECT_ROOT")
public class Completion {
@Test
public void testAllFilesPresentInCompletion() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/suspend/completion"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("nonStaticSimple.kt")
public void testNonStaticSimple() {
runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt");
}
@Test
@TestMetadata("nonStaticStateMachine.kt")
public void testNonStaticStateMachine() {
runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt");
}
@Test
@TestMetadata("staticSimple.kt")
public void testStaticSimple() {
runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt");
}
@Test
@TestMetadata("staticSimpleReceiver.kt")
public void testStaticSimpleReceiver() {
runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt");
}
@Test
@TestMetadata("staticStateMachine.kt")
public void testStaticStateMachine() {
runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt");
}
@Test
@TestMetadata("staticStateMachineReceiver.kt")
public void testStaticStateMachineReceiver() {
runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt");
}
}
}
}
@@ -0,0 +1,699 @@
/*
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.test.runners.codegen.inlineScopes;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.test.generators.GenerateCompilerTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/debug/stepping")
@TestDataPath("$PROJECT_ROOT")
public class FirSteppingWithBytecodeInlinerTestWithInlineScopesGenerated extends AbstractFirSteppingWithBytecodeInlinerTestWithInlineScopes {
@Test
public void testAllFilesPresentInStepping() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/stepping"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("anonymousFunction.kt")
public void testAnonymousFunction() {
runTest("compiler/testData/debug/stepping/anonymousFunction.kt");
}
@Test
@TestMetadata("anonymousFunctionDirect.kt")
public void testAnonymousFunctionDirect() {
runTest("compiler/testData/debug/stepping/anonymousFunctionDirect.kt");
}
@Test
@TestMetadata("assertion.kt")
public void testAssertion() {
runTest("compiler/testData/debug/stepping/assertion.kt");
}
@Test
@TestMetadata("beforeGotoToWhileStart.kt")
public void testBeforeGotoToWhileStart() {
runTest("compiler/testData/debug/stepping/beforeGotoToWhileStart.kt");
}
@Test
@TestMetadata("callWithCallInArguments.kt")
public void testCallWithCallInArguments() {
runTest("compiler/testData/debug/stepping/callWithCallInArguments.kt");
}
@Test
@TestMetadata("callWithReceiver.kt")
public void testCallWithReceiver() {
runTest("compiler/testData/debug/stepping/callWithReceiver.kt");
}
@Test
@TestMetadata("callableReference.kt")
public void testCallableReference() {
runTest("compiler/testData/debug/stepping/callableReference.kt");
}
@Test
@TestMetadata("chainCall.kt")
public void testChainCall() {
runTest("compiler/testData/debug/stepping/chainCall.kt");
}
@Test
@TestMetadata("class.kt")
public void testClass() {
runTest("compiler/testData/debug/stepping/class.kt");
}
@Test
@TestMetadata("classObject.kt")
public void testClassObject() {
runTest("compiler/testData/debug/stepping/classObject.kt");
}
@Test
@TestMetadata("commentBeforeClass.kt")
public void testCommentBeforeClass() {
runTest("compiler/testData/debug/stepping/commentBeforeClass.kt");
}
@Test
@TestMetadata("commentBeforeCompanionProperty.kt")
public void testCommentBeforeCompanionProperty() {
runTest("compiler/testData/debug/stepping/commentBeforeCompanionProperty.kt");
}
@Test
@TestMetadata("commentBeforeFunctionWithDefault.kt")
public void testCommentBeforeFunctionWithDefault() {
runTest("compiler/testData/debug/stepping/commentBeforeFunctionWithDefault.kt");
}
@Test
@TestMetadata("comments.kt")
public void testComments() {
runTest("compiler/testData/debug/stepping/comments.kt");
}
@Test
@TestMetadata("compileTimeConstant.kt")
public void testCompileTimeConstant() {
runTest("compiler/testData/debug/stepping/compileTimeConstant.kt");
}
@Test
@TestMetadata("conjunction.kt")
public void testConjunction() {
runTest("compiler/testData/debug/stepping/conjunction.kt");
}
@Test
@TestMetadata("constantConditions.kt")
public void testConstantConditions() {
runTest("compiler/testData/debug/stepping/constantConditions.kt");
}
@Test
@TestMetadata("constructorCall.kt")
public void testConstructorCall() {
runTest("compiler/testData/debug/stepping/constructorCall.kt");
}
@Test
@TestMetadata("constructors.kt")
public void testConstructors() {
runTest("compiler/testData/debug/stepping/constructors.kt");
}
@Test
@TestMetadata("continue.kt")
public void testContinue() {
runTest("compiler/testData/debug/stepping/continue.kt");
}
@Test
@TestMetadata("dataClass.kt")
public void testDataClass() {
runTest("compiler/testData/debug/stepping/dataClass.kt");
}
@Test
@TestMetadata("defaultParameter.kt")
public void testDefaultParameter() {
runTest("compiler/testData/debug/stepping/defaultParameter.kt");
}
@Test
@TestMetadata("delegation.kt")
public void testDelegation() {
runTest("compiler/testData/debug/stepping/delegation.kt");
}
@Test
@TestMetadata("enum.kt")
public void testEnum() {
runTest("compiler/testData/debug/stepping/enum.kt");
}
@Test
@TestMetadata("for.kt")
public void testFor() {
runTest("compiler/testData/debug/stepping/for.kt");
}
@Test
@TestMetadata("functionCallWithDefault.kt")
public void testFunctionCallWithDefault() {
runTest("compiler/testData/debug/stepping/functionCallWithDefault.kt");
}
@Test
@TestMetadata("functionCallWithInlinedLambdaParam.kt")
public void testFunctionCallWithInlinedLambdaParam() {
runTest("compiler/testData/debug/stepping/functionCallWithInlinedLambdaParam.kt");
}
@Test
@TestMetadata("functionCallWithLambdaParam.kt")
public void testFunctionCallWithLambdaParam() {
runTest("compiler/testData/debug/stepping/functionCallWithLambdaParam.kt");
}
@Test
@TestMetadata("functionInAnotherFile.kt")
public void testFunctionInAnotherFile() {
runTest("compiler/testData/debug/stepping/functionInAnotherFile.kt");
}
@Test
@TestMetadata("if.kt")
public void testIf() {
runTest("compiler/testData/debug/stepping/if.kt");
}
@Test
@TestMetadata("if2.kt")
public void testIf2() {
runTest("compiler/testData/debug/stepping/if2.kt");
}
@Test
@TestMetadata("ifThen.kt")
public void testIfThen() {
runTest("compiler/testData/debug/stepping/ifThen.kt");
}
@Test
@TestMetadata("ifThenElse.kt")
public void testIfThenElse() {
runTest("compiler/testData/debug/stepping/ifThenElse.kt");
}
@Test
@TestMetadata("ifThenElseFalse.kt")
public void testIfThenElseFalse() {
runTest("compiler/testData/debug/stepping/ifThenElseFalse.kt");
}
@Test
@TestMetadata("IfTrueThenFalse.kt")
public void testIfTrueThenFalse() {
runTest("compiler/testData/debug/stepping/IfTrueThenFalse.kt");
}
@Test
@TestMetadata("ifWithInlineInCondition.kt")
public void testIfWithInlineInCondition() {
runTest("compiler/testData/debug/stepping/ifWithInlineInCondition.kt");
}
@Test
@TestMetadata("iincStepping.kt")
public void testIincStepping() {
runTest("compiler/testData/debug/stepping/iincStepping.kt");
}
@Test
@TestMetadata("implicitThis.kt")
public void testImplicitThis() {
runTest("compiler/testData/debug/stepping/implicitThis.kt");
}
@Test
@TestMetadata("implicitThisOnInvoke.kt")
public void testImplicitThisOnInvoke() {
runTest("compiler/testData/debug/stepping/implicitThisOnInvoke.kt");
}
@Test
@TestMetadata("inTheEndOfLambdaArgumentOfInlineCall.kt")
public void testInTheEndOfLambdaArgumentOfInlineCall() {
runTest("compiler/testData/debug/stepping/inTheEndOfLambdaArgumentOfInlineCall.kt");
}
@Test
@TestMetadata("initBlocks.kt")
public void testInitBlocks() {
runTest("compiler/testData/debug/stepping/initBlocks.kt");
}
@Test
@TestMetadata("initBlocksCompanion.kt")
public void testInitBlocksCompanion() {
runTest("compiler/testData/debug/stepping/initBlocksCompanion.kt");
}
@Test
@TestMetadata("inlineCallableReference.kt")
public void testInlineCallableReference() {
runTest("compiler/testData/debug/stepping/inlineCallableReference.kt");
}
@Test
@TestMetadata("inlineNamedCallableReference.kt")
public void testInlineNamedCallableReference() {
runTest("compiler/testData/debug/stepping/inlineNamedCallableReference.kt");
}
@Test
@TestMetadata("inlineSimpleCall.kt")
public void testInlineSimpleCall() {
runTest("compiler/testData/debug/stepping/inlineSimpleCall.kt");
}
@Test
@TestMetadata("javaSam.kt")
public void testJavaSam() {
runTest("compiler/testData/debug/stepping/javaSam.kt");
}
@Test
@TestMetadata("kt15259.kt")
public void testKt15259() {
runTest("compiler/testData/debug/stepping/kt15259.kt");
}
@Test
@TestMetadata("kt29179.kt")
public void testKt29179() {
runTest("compiler/testData/debug/stepping/kt29179.kt");
}
@Test
@TestMetadata("kt42208.kt")
public void testKt42208() {
runTest("compiler/testData/debug/stepping/kt42208.kt");
}
@Test
@TestMetadata("kt42208b.kt")
public void testKt42208b() {
runTest("compiler/testData/debug/stepping/kt42208b.kt");
}
@Test
@TestMetadata("kt42208c.kt")
public void testKt42208c() {
runTest("compiler/testData/debug/stepping/kt42208c.kt");
}
@Test
@TestMetadata("lambdaStepInline.kt")
public void testLambdaStepInline() {
runTest("compiler/testData/debug/stepping/lambdaStepInline.kt");
}
@Test
@TestMetadata("lambdaStepInlineWithDefaults.kt")
public void testLambdaStepInlineWithDefaults() {
runTest("compiler/testData/debug/stepping/lambdaStepInlineWithDefaults.kt");
}
@Test
@TestMetadata("lineNumberAfterInline.kt")
public void testLineNumberAfterInline() {
runTest("compiler/testData/debug/stepping/lineNumberAfterInline.kt");
}
@Test
@TestMetadata("linenumberForOneParametersArgumentCall.kt")
public void testLinenumberForOneParametersArgumentCall() {
runTest("compiler/testData/debug/stepping/linenumberForOneParametersArgumentCall.kt");
}
@Test
@TestMetadata("localFunction.kt")
public void testLocalFunction() {
runTest("compiler/testData/debug/stepping/localFunction.kt");
}
@Test
@TestMetadata("localFunctionWIthOnelineExpressionBody.kt")
public void testLocalFunctionWIthOnelineExpressionBody() {
runTest("compiler/testData/debug/stepping/localFunctionWIthOnelineExpressionBody.kt");
}
@Test
@TestMetadata("localProperty.kt")
public void testLocalProperty() {
runTest("compiler/testData/debug/stepping/localProperty.kt");
}
@Test
@TestMetadata("multiModule.kt")
public void testMultiModule() {
runTest("compiler/testData/debug/stepping/multiModule.kt");
}
@Test
@TestMetadata("multilineExpression.kt")
public void testMultilineExpression() {
runTest("compiler/testData/debug/stepping/multilineExpression.kt");
}
@Test
@TestMetadata("multilineFunctionCall.kt")
public void testMultilineFunctionCall() {
runTest("compiler/testData/debug/stepping/multilineFunctionCall.kt");
}
@Test
@TestMetadata("multilineInfixCall.kt")
public void testMultilineInfixCall() {
runTest("compiler/testData/debug/stepping/multilineInfixCall.kt");
}
@Test
@TestMetadata("namedCallableReference.kt")
public void testNamedCallableReference() {
runTest("compiler/testData/debug/stepping/namedCallableReference.kt");
}
@Test
@TestMetadata("nestedInline.kt")
public void testNestedInline() {
runTest("compiler/testData/debug/stepping/nestedInline.kt");
}
@Test
@TestMetadata("noLinenumberInInvokeOfSuspendLambda.kt")
public void testNoLinenumberInInvokeOfSuspendLambda() {
runTest("compiler/testData/debug/stepping/noLinenumberInInvokeOfSuspendLambda.kt");
}
@Test
@TestMetadata("noParametersArgumentCallInExpression.kt")
public void testNoParametersArgumentCallInExpression() {
runTest("compiler/testData/debug/stepping/noParametersArgumentCallInExpression.kt");
}
@Test
@TestMetadata("nullcheck.kt")
public void testNullcheck() {
runTest("compiler/testData/debug/stepping/nullcheck.kt");
}
@Test
@TestMetadata("overridenGetterSetter.kt")
public void testOverridenGetterSetter() {
runTest("compiler/testData/debug/stepping/overridenGetterSetter.kt");
}
@Test
@TestMetadata("primitiveNullChecks.kt")
public void testPrimitiveNullChecks() {
runTest("compiler/testData/debug/stepping/primitiveNullChecks.kt");
}
@Test
@TestMetadata("propertyAccessor.kt")
public void testPropertyAccessor() {
runTest("compiler/testData/debug/stepping/propertyAccessor.kt");
}
@Test
@TestMetadata("psvm.kt")
public void testPsvm() {
runTest("compiler/testData/debug/stepping/psvm.kt");
}
@Test
@TestMetadata("recursion.kt")
public void testRecursion() {
runTest("compiler/testData/debug/stepping/recursion.kt");
}
@Test
@TestMetadata("simpleDefaultArg.kt")
public void testSimpleDefaultArg() {
runTest("compiler/testData/debug/stepping/simpleDefaultArg.kt");
}
@Test
@TestMetadata("simpleDefaultArgWithInline.kt")
public void testSimpleDefaultArgWithInline() {
runTest("compiler/testData/debug/stepping/simpleDefaultArgWithInline.kt");
}
@Test
@TestMetadata("simpleInlineDefaultArg.kt")
public void testSimpleInlineDefaultArg() {
runTest("compiler/testData/debug/stepping/simpleInlineDefaultArg.kt");
}
@Test
@TestMetadata("simpleSmap.kt")
public void testSimpleSmap() {
runTest("compiler/testData/debug/stepping/simpleSmap.kt");
}
@Test
@TestMetadata("smapInlineAsArgument.kt")
public void testSmapInlineAsArgument() {
runTest("compiler/testData/debug/stepping/smapInlineAsArgument.kt");
}
@Test
@TestMetadata("smapInlineAsInfixArgument.kt")
public void testSmapInlineAsInfixArgument() {
runTest("compiler/testData/debug/stepping/smapInlineAsInfixArgument.kt");
}
@Test
@TestMetadata("smapInlineAsInlineArgument.kt")
public void testSmapInlineAsInlineArgument() {
runTest("compiler/testData/debug/stepping/smapInlineAsInlineArgument.kt");
}
@Test
@TestMetadata("smapInlineInIntrinsicArgument.kt")
public void testSmapInlineInIntrinsicArgument() {
runTest("compiler/testData/debug/stepping/smapInlineInIntrinsicArgument.kt");
}
@Test
@TestMetadata("stringSwitches.kt")
public void testStringSwitches() {
runTest("compiler/testData/debug/stepping/stringSwitches.kt");
}
@Test
@TestMetadata("stringSwitchesSmall.kt")
public void testStringSwitchesSmall() {
runTest("compiler/testData/debug/stepping/stringSwitchesSmall.kt");
}
@Test
@TestMetadata("suspendFunWithLambdaParameter.kt")
public void testSuspendFunWithLambdaParameter() {
runTest("compiler/testData/debug/stepping/suspendFunWithLambdaParameter.kt");
}
@Test
@TestMetadata("suspendFunWithSuspendLambdaParameter.kt")
public void testSuspendFunWithSuspendLambdaParameter() {
runTest("compiler/testData/debug/stepping/suspendFunWithSuspendLambdaParameter.kt");
}
@Test
@TestMetadata("throwException.kt")
public void testThrowException() {
runTest("compiler/testData/debug/stepping/throwException.kt");
}
@Test
@TestMetadata("topLevel.kt")
public void testTopLevel() {
runTest("compiler/testData/debug/stepping/topLevel.kt");
}
@Test
@TestMetadata("trait.kt")
public void testTrait() {
runTest("compiler/testData/debug/stepping/trait.kt");
}
@Test
@TestMetadata("tryCatch.kt")
public void testTryCatch() {
runTest("compiler/testData/debug/stepping/tryCatch.kt");
}
@Test
@TestMetadata("tryCatchExpression.kt")
public void testTryCatchExpression() {
runTest("compiler/testData/debug/stepping/tryCatchExpression.kt");
}
@Test
@TestMetadata("tryCatchFinally.kt")
public void testTryCatchFinally() {
runTest("compiler/testData/debug/stepping/tryCatchFinally.kt");
}
@Test
@TestMetadata("tryFinally.kt")
public void testTryFinally() {
runTest("compiler/testData/debug/stepping/tryFinally.kt");
}
@Test
@TestMetadata("variablesWithoutInitializer.kt")
public void testVariablesWithoutInitializer() {
runTest("compiler/testData/debug/stepping/variablesWithoutInitializer.kt");
}
@Test
@TestMetadata("voidLambdaStepInline.kt")
public void testVoidLambdaStepInline() {
runTest("compiler/testData/debug/stepping/voidLambdaStepInline.kt");
}
@Test
@TestMetadata("when.kt")
public void testWhen() {
runTest("compiler/testData/debug/stepping/when.kt");
}
@Test
@TestMetadata("whenComplicatedSubject.kt")
public void testWhenComplicatedSubject() {
runTest("compiler/testData/debug/stepping/whenComplicatedSubject.kt");
}
@Test
@TestMetadata("whenConstant.kt")
public void testWhenConstant() {
runTest("compiler/testData/debug/stepping/whenConstant.kt");
}
@Test
@TestMetadata("whenExpr.kt")
public void testWhenExpr() {
runTest("compiler/testData/debug/stepping/whenExpr.kt");
}
@Test
@TestMetadata("whenInConjunction.kt")
public void testWhenInConjunction() {
runTest("compiler/testData/debug/stepping/whenInConjunction.kt");
}
@Test
@TestMetadata("whenInDisjunction.kt")
public void testWhenInDisjunction() {
runTest("compiler/testData/debug/stepping/whenInDisjunction.kt");
}
@Test
@TestMetadata("whenInGeneralObjectComparison.kt")
public void testWhenInGeneralObjectComparison() {
runTest("compiler/testData/debug/stepping/whenInGeneralObjectComparison.kt");
}
@Test
@TestMetadata("whenInNegation.kt")
public void testWhenInNegation() {
runTest("compiler/testData/debug/stepping/whenInNegation.kt");
}
@Test
@TestMetadata("whenInNullComparison.kt")
public void testWhenInNullComparison() {
runTest("compiler/testData/debug/stepping/whenInNullComparison.kt");
}
@Test
@TestMetadata("whenInPrimitiveToObjectComparison.kt")
public void testWhenInPrimitiveToObjectComparison() {
runTest("compiler/testData/debug/stepping/whenInPrimitiveToObjectComparison.kt");
}
@Test
@TestMetadata("whenInZeroComparison.kt")
public void testWhenInZeroComparison() {
runTest("compiler/testData/debug/stepping/whenInZeroComparison.kt");
}
@Test
@TestMetadata("whenIsChecks.kt")
public void testWhenIsChecks() {
runTest("compiler/testData/debug/stepping/whenIsChecks.kt");
}
@Test
@TestMetadata("whenMultiLine.kt")
public void testWhenMultiLine() {
runTest("compiler/testData/debug/stepping/whenMultiLine.kt");
}
@Test
@TestMetadata("whenMultiLineSubject.kt")
public void testWhenMultiLineSubject() {
runTest("compiler/testData/debug/stepping/whenMultiLineSubject.kt");
}
@Test
@TestMetadata("whenNullalbeSubject.kt")
public void testWhenNullalbeSubject() {
runTest("compiler/testData/debug/stepping/whenNullalbeSubject.kt");
}
@Test
@TestMetadata("whenSubject.kt")
public void testWhenSubject() {
runTest("compiler/testData/debug/stepping/whenSubject.kt");
}
@Test
@TestMetadata("whenSubject2.kt")
public void testWhenSubject2() {
runTest("compiler/testData/debug/stepping/whenSubject2.kt");
}
@Test
@TestMetadata("whenWithInlineInCondition.kt")
public void testWhenWithInlineInCondition() {
runTest("compiler/testData/debug/stepping/whenWithInlineInCondition.kt");
}
@Test
@TestMetadata("while.kt")
public void testWhile() {
runTest("compiler/testData/debug/stepping/while.kt");
}
}
@@ -0,0 +1,699 @@
/*
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.test.runners.codegen.inlineScopes;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.test.generators.GenerateCompilerTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/debug/stepping")
@TestDataPath("$PROJECT_ROOT")
public class FirSteppingWithIrInlinerTestWithInlineScopesGenerated extends AbstractFirSteppingWithIrInlinerTestWithInlineScopes {
@Test
public void testAllFilesPresentInStepping() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/stepping"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
}
@Test
@TestMetadata("anonymousFunction.kt")
public void testAnonymousFunction() {
runTest("compiler/testData/debug/stepping/anonymousFunction.kt");
}
@Test
@TestMetadata("anonymousFunctionDirect.kt")
public void testAnonymousFunctionDirect() {
runTest("compiler/testData/debug/stepping/anonymousFunctionDirect.kt");
}
@Test
@TestMetadata("assertion.kt")
public void testAssertion() {
runTest("compiler/testData/debug/stepping/assertion.kt");
}
@Test
@TestMetadata("beforeGotoToWhileStart.kt")
public void testBeforeGotoToWhileStart() {
runTest("compiler/testData/debug/stepping/beforeGotoToWhileStart.kt");
}
@Test
@TestMetadata("callWithCallInArguments.kt")
public void testCallWithCallInArguments() {
runTest("compiler/testData/debug/stepping/callWithCallInArguments.kt");
}
@Test
@TestMetadata("callWithReceiver.kt")
public void testCallWithReceiver() {
runTest("compiler/testData/debug/stepping/callWithReceiver.kt");
}
@Test
@TestMetadata("callableReference.kt")
public void testCallableReference() {
runTest("compiler/testData/debug/stepping/callableReference.kt");
}
@Test
@TestMetadata("chainCall.kt")
public void testChainCall() {
runTest("compiler/testData/debug/stepping/chainCall.kt");
}
@Test
@TestMetadata("class.kt")
public void testClass() {
runTest("compiler/testData/debug/stepping/class.kt");
}
@Test
@TestMetadata("classObject.kt")
public void testClassObject() {
runTest("compiler/testData/debug/stepping/classObject.kt");
}
@Test
@TestMetadata("commentBeforeClass.kt")
public void testCommentBeforeClass() {
runTest("compiler/testData/debug/stepping/commentBeforeClass.kt");
}
@Test
@TestMetadata("commentBeforeCompanionProperty.kt")
public void testCommentBeforeCompanionProperty() {
runTest("compiler/testData/debug/stepping/commentBeforeCompanionProperty.kt");
}
@Test
@TestMetadata("commentBeforeFunctionWithDefault.kt")
public void testCommentBeforeFunctionWithDefault() {
runTest("compiler/testData/debug/stepping/commentBeforeFunctionWithDefault.kt");
}
@Test
@TestMetadata("comments.kt")
public void testComments() {
runTest("compiler/testData/debug/stepping/comments.kt");
}
@Test
@TestMetadata("compileTimeConstant.kt")
public void testCompileTimeConstant() {
runTest("compiler/testData/debug/stepping/compileTimeConstant.kt");
}
@Test
@TestMetadata("conjunction.kt")
public void testConjunction() {
runTest("compiler/testData/debug/stepping/conjunction.kt");
}
@Test
@TestMetadata("constantConditions.kt")
public void testConstantConditions() {
runTest("compiler/testData/debug/stepping/constantConditions.kt");
}
@Test
@TestMetadata("constructorCall.kt")
public void testConstructorCall() {
runTest("compiler/testData/debug/stepping/constructorCall.kt");
}
@Test
@TestMetadata("constructors.kt")
public void testConstructors() {
runTest("compiler/testData/debug/stepping/constructors.kt");
}
@Test
@TestMetadata("continue.kt")
public void testContinue() {
runTest("compiler/testData/debug/stepping/continue.kt");
}
@Test
@TestMetadata("dataClass.kt")
public void testDataClass() {
runTest("compiler/testData/debug/stepping/dataClass.kt");
}
@Test
@TestMetadata("defaultParameter.kt")
public void testDefaultParameter() {
runTest("compiler/testData/debug/stepping/defaultParameter.kt");
}
@Test
@TestMetadata("delegation.kt")
public void testDelegation() {
runTest("compiler/testData/debug/stepping/delegation.kt");
}
@Test
@TestMetadata("enum.kt")
public void testEnum() {
runTest("compiler/testData/debug/stepping/enum.kt");
}
@Test
@TestMetadata("for.kt")
public void testFor() {
runTest("compiler/testData/debug/stepping/for.kt");
}
@Test
@TestMetadata("functionCallWithDefault.kt")
public void testFunctionCallWithDefault() {
runTest("compiler/testData/debug/stepping/functionCallWithDefault.kt");
}
@Test
@TestMetadata("functionCallWithInlinedLambdaParam.kt")
public void testFunctionCallWithInlinedLambdaParam() {
runTest("compiler/testData/debug/stepping/functionCallWithInlinedLambdaParam.kt");
}
@Test
@TestMetadata("functionCallWithLambdaParam.kt")
public void testFunctionCallWithLambdaParam() {
runTest("compiler/testData/debug/stepping/functionCallWithLambdaParam.kt");
}
@Test
@TestMetadata("functionInAnotherFile.kt")
public void testFunctionInAnotherFile() {
runTest("compiler/testData/debug/stepping/functionInAnotherFile.kt");
}
@Test
@TestMetadata("if.kt")
public void testIf() {
runTest("compiler/testData/debug/stepping/if.kt");
}
@Test
@TestMetadata("if2.kt")
public void testIf2() {
runTest("compiler/testData/debug/stepping/if2.kt");
}
@Test
@TestMetadata("ifThen.kt")
public void testIfThen() {
runTest("compiler/testData/debug/stepping/ifThen.kt");
}
@Test
@TestMetadata("ifThenElse.kt")
public void testIfThenElse() {
runTest("compiler/testData/debug/stepping/ifThenElse.kt");
}
@Test
@TestMetadata("ifThenElseFalse.kt")
public void testIfThenElseFalse() {
runTest("compiler/testData/debug/stepping/ifThenElseFalse.kt");
}
@Test
@TestMetadata("IfTrueThenFalse.kt")
public void testIfTrueThenFalse() {
runTest("compiler/testData/debug/stepping/IfTrueThenFalse.kt");
}
@Test
@TestMetadata("ifWithInlineInCondition.kt")
public void testIfWithInlineInCondition() {
runTest("compiler/testData/debug/stepping/ifWithInlineInCondition.kt");
}
@Test
@TestMetadata("iincStepping.kt")
public void testIincStepping() {
runTest("compiler/testData/debug/stepping/iincStepping.kt");
}
@Test
@TestMetadata("implicitThis.kt")
public void testImplicitThis() {
runTest("compiler/testData/debug/stepping/implicitThis.kt");
}
@Test
@TestMetadata("implicitThisOnInvoke.kt")
public void testImplicitThisOnInvoke() {
runTest("compiler/testData/debug/stepping/implicitThisOnInvoke.kt");
}
@Test
@TestMetadata("inTheEndOfLambdaArgumentOfInlineCall.kt")
public void testInTheEndOfLambdaArgumentOfInlineCall() {
runTest("compiler/testData/debug/stepping/inTheEndOfLambdaArgumentOfInlineCall.kt");
}
@Test
@TestMetadata("initBlocks.kt")
public void testInitBlocks() {
runTest("compiler/testData/debug/stepping/initBlocks.kt");
}
@Test
@TestMetadata("initBlocksCompanion.kt")
public void testInitBlocksCompanion() {
runTest("compiler/testData/debug/stepping/initBlocksCompanion.kt");
}
@Test
@TestMetadata("inlineCallableReference.kt")
public void testInlineCallableReference() {
runTest("compiler/testData/debug/stepping/inlineCallableReference.kt");
}
@Test
@TestMetadata("inlineNamedCallableReference.kt")
public void testInlineNamedCallableReference() {
runTest("compiler/testData/debug/stepping/inlineNamedCallableReference.kt");
}
@Test
@TestMetadata("inlineSimpleCall.kt")
public void testInlineSimpleCall() {
runTest("compiler/testData/debug/stepping/inlineSimpleCall.kt");
}
@Test
@TestMetadata("javaSam.kt")
public void testJavaSam() {
runTest("compiler/testData/debug/stepping/javaSam.kt");
}
@Test
@TestMetadata("kt15259.kt")
public void testKt15259() {
runTest("compiler/testData/debug/stepping/kt15259.kt");
}
@Test
@TestMetadata("kt29179.kt")
public void testKt29179() {
runTest("compiler/testData/debug/stepping/kt29179.kt");
}
@Test
@TestMetadata("kt42208.kt")
public void testKt42208() {
runTest("compiler/testData/debug/stepping/kt42208.kt");
}
@Test
@TestMetadata("kt42208b.kt")
public void testKt42208b() {
runTest("compiler/testData/debug/stepping/kt42208b.kt");
}
@Test
@TestMetadata("kt42208c.kt")
public void testKt42208c() {
runTest("compiler/testData/debug/stepping/kt42208c.kt");
}
@Test
@TestMetadata("lambdaStepInline.kt")
public void testLambdaStepInline() {
runTest("compiler/testData/debug/stepping/lambdaStepInline.kt");
}
@Test
@TestMetadata("lambdaStepInlineWithDefaults.kt")
public void testLambdaStepInlineWithDefaults() {
runTest("compiler/testData/debug/stepping/lambdaStepInlineWithDefaults.kt");
}
@Test
@TestMetadata("lineNumberAfterInline.kt")
public void testLineNumberAfterInline() {
runTest("compiler/testData/debug/stepping/lineNumberAfterInline.kt");
}
@Test
@TestMetadata("linenumberForOneParametersArgumentCall.kt")
public void testLinenumberForOneParametersArgumentCall() {
runTest("compiler/testData/debug/stepping/linenumberForOneParametersArgumentCall.kt");
}
@Test
@TestMetadata("localFunction.kt")
public void testLocalFunction() {
runTest("compiler/testData/debug/stepping/localFunction.kt");
}
@Test
@TestMetadata("localFunctionWIthOnelineExpressionBody.kt")
public void testLocalFunctionWIthOnelineExpressionBody() {
runTest("compiler/testData/debug/stepping/localFunctionWIthOnelineExpressionBody.kt");
}
@Test
@TestMetadata("localProperty.kt")
public void testLocalProperty() {
runTest("compiler/testData/debug/stepping/localProperty.kt");
}
@Test
@TestMetadata("multiModule.kt")
public void testMultiModule() {
runTest("compiler/testData/debug/stepping/multiModule.kt");
}
@Test
@TestMetadata("multilineExpression.kt")
public void testMultilineExpression() {
runTest("compiler/testData/debug/stepping/multilineExpression.kt");
}
@Test
@TestMetadata("multilineFunctionCall.kt")
public void testMultilineFunctionCall() {
runTest("compiler/testData/debug/stepping/multilineFunctionCall.kt");
}
@Test
@TestMetadata("multilineInfixCall.kt")
public void testMultilineInfixCall() {
runTest("compiler/testData/debug/stepping/multilineInfixCall.kt");
}
@Test
@TestMetadata("namedCallableReference.kt")
public void testNamedCallableReference() {
runTest("compiler/testData/debug/stepping/namedCallableReference.kt");
}
@Test
@TestMetadata("nestedInline.kt")
public void testNestedInline() {
runTest("compiler/testData/debug/stepping/nestedInline.kt");
}
@Test
@TestMetadata("noLinenumberInInvokeOfSuspendLambda.kt")
public void testNoLinenumberInInvokeOfSuspendLambda() {
runTest("compiler/testData/debug/stepping/noLinenumberInInvokeOfSuspendLambda.kt");
}
@Test
@TestMetadata("noParametersArgumentCallInExpression.kt")
public void testNoParametersArgumentCallInExpression() {
runTest("compiler/testData/debug/stepping/noParametersArgumentCallInExpression.kt");
}
@Test
@TestMetadata("nullcheck.kt")
public void testNullcheck() {
runTest("compiler/testData/debug/stepping/nullcheck.kt");
}
@Test
@TestMetadata("overridenGetterSetter.kt")
public void testOverridenGetterSetter() {
runTest("compiler/testData/debug/stepping/overridenGetterSetter.kt");
}
@Test
@TestMetadata("primitiveNullChecks.kt")
public void testPrimitiveNullChecks() {
runTest("compiler/testData/debug/stepping/primitiveNullChecks.kt");
}
@Test
@TestMetadata("propertyAccessor.kt")
public void testPropertyAccessor() {
runTest("compiler/testData/debug/stepping/propertyAccessor.kt");
}
@Test
@TestMetadata("psvm.kt")
public void testPsvm() {
runTest("compiler/testData/debug/stepping/psvm.kt");
}
@Test
@TestMetadata("recursion.kt")
public void testRecursion() {
runTest("compiler/testData/debug/stepping/recursion.kt");
}
@Test
@TestMetadata("simpleDefaultArg.kt")
public void testSimpleDefaultArg() {
runTest("compiler/testData/debug/stepping/simpleDefaultArg.kt");
}
@Test
@TestMetadata("simpleDefaultArgWithInline.kt")
public void testSimpleDefaultArgWithInline() {
runTest("compiler/testData/debug/stepping/simpleDefaultArgWithInline.kt");
}
@Test
@TestMetadata("simpleInlineDefaultArg.kt")
public void testSimpleInlineDefaultArg() {
runTest("compiler/testData/debug/stepping/simpleInlineDefaultArg.kt");
}
@Test
@TestMetadata("simpleSmap.kt")
public void testSimpleSmap() {
runTest("compiler/testData/debug/stepping/simpleSmap.kt");
}
@Test
@TestMetadata("smapInlineAsArgument.kt")
public void testSmapInlineAsArgument() {
runTest("compiler/testData/debug/stepping/smapInlineAsArgument.kt");
}
@Test
@TestMetadata("smapInlineAsInfixArgument.kt")
public void testSmapInlineAsInfixArgument() {
runTest("compiler/testData/debug/stepping/smapInlineAsInfixArgument.kt");
}
@Test
@TestMetadata("smapInlineAsInlineArgument.kt")
public void testSmapInlineAsInlineArgument() {
runTest("compiler/testData/debug/stepping/smapInlineAsInlineArgument.kt");
}
@Test
@TestMetadata("smapInlineInIntrinsicArgument.kt")
public void testSmapInlineInIntrinsicArgument() {
runTest("compiler/testData/debug/stepping/smapInlineInIntrinsicArgument.kt");
}
@Test
@TestMetadata("stringSwitches.kt")
public void testStringSwitches() {
runTest("compiler/testData/debug/stepping/stringSwitches.kt");
}
@Test
@TestMetadata("stringSwitchesSmall.kt")
public void testStringSwitchesSmall() {
runTest("compiler/testData/debug/stepping/stringSwitchesSmall.kt");
}
@Test
@TestMetadata("suspendFunWithLambdaParameter.kt")
public void testSuspendFunWithLambdaParameter() {
runTest("compiler/testData/debug/stepping/suspendFunWithLambdaParameter.kt");
}
@Test
@TestMetadata("suspendFunWithSuspendLambdaParameter.kt")
public void testSuspendFunWithSuspendLambdaParameter() {
runTest("compiler/testData/debug/stepping/suspendFunWithSuspendLambdaParameter.kt");
}
@Test
@TestMetadata("throwException.kt")
public void testThrowException() {
runTest("compiler/testData/debug/stepping/throwException.kt");
}
@Test
@TestMetadata("topLevel.kt")
public void testTopLevel() {
runTest("compiler/testData/debug/stepping/topLevel.kt");
}
@Test
@TestMetadata("trait.kt")
public void testTrait() {
runTest("compiler/testData/debug/stepping/trait.kt");
}
@Test
@TestMetadata("tryCatch.kt")
public void testTryCatch() {
runTest("compiler/testData/debug/stepping/tryCatch.kt");
}
@Test
@TestMetadata("tryCatchExpression.kt")
public void testTryCatchExpression() {
runTest("compiler/testData/debug/stepping/tryCatchExpression.kt");
}
@Test
@TestMetadata("tryCatchFinally.kt")
public void testTryCatchFinally() {
runTest("compiler/testData/debug/stepping/tryCatchFinally.kt");
}
@Test
@TestMetadata("tryFinally.kt")
public void testTryFinally() {
runTest("compiler/testData/debug/stepping/tryFinally.kt");
}
@Test
@TestMetadata("variablesWithoutInitializer.kt")
public void testVariablesWithoutInitializer() {
runTest("compiler/testData/debug/stepping/variablesWithoutInitializer.kt");
}
@Test
@TestMetadata("voidLambdaStepInline.kt")
public void testVoidLambdaStepInline() {
runTest("compiler/testData/debug/stepping/voidLambdaStepInline.kt");
}
@Test
@TestMetadata("when.kt")
public void testWhen() {
runTest("compiler/testData/debug/stepping/when.kt");
}
@Test
@TestMetadata("whenComplicatedSubject.kt")
public void testWhenComplicatedSubject() {
runTest("compiler/testData/debug/stepping/whenComplicatedSubject.kt");
}
@Test
@TestMetadata("whenConstant.kt")
public void testWhenConstant() {
runTest("compiler/testData/debug/stepping/whenConstant.kt");
}
@Test
@TestMetadata("whenExpr.kt")
public void testWhenExpr() {
runTest("compiler/testData/debug/stepping/whenExpr.kt");
}
@Test
@TestMetadata("whenInConjunction.kt")
public void testWhenInConjunction() {
runTest("compiler/testData/debug/stepping/whenInConjunction.kt");
}
@Test
@TestMetadata("whenInDisjunction.kt")
public void testWhenInDisjunction() {
runTest("compiler/testData/debug/stepping/whenInDisjunction.kt");
}
@Test
@TestMetadata("whenInGeneralObjectComparison.kt")
public void testWhenInGeneralObjectComparison() {
runTest("compiler/testData/debug/stepping/whenInGeneralObjectComparison.kt");
}
@Test
@TestMetadata("whenInNegation.kt")
public void testWhenInNegation() {
runTest("compiler/testData/debug/stepping/whenInNegation.kt");
}
@Test
@TestMetadata("whenInNullComparison.kt")
public void testWhenInNullComparison() {
runTest("compiler/testData/debug/stepping/whenInNullComparison.kt");
}
@Test
@TestMetadata("whenInPrimitiveToObjectComparison.kt")
public void testWhenInPrimitiveToObjectComparison() {
runTest("compiler/testData/debug/stepping/whenInPrimitiveToObjectComparison.kt");
}
@Test
@TestMetadata("whenInZeroComparison.kt")
public void testWhenInZeroComparison() {
runTest("compiler/testData/debug/stepping/whenInZeroComparison.kt");
}
@Test
@TestMetadata("whenIsChecks.kt")
public void testWhenIsChecks() {
runTest("compiler/testData/debug/stepping/whenIsChecks.kt");
}
@Test
@TestMetadata("whenMultiLine.kt")
public void testWhenMultiLine() {
runTest("compiler/testData/debug/stepping/whenMultiLine.kt");
}
@Test
@TestMetadata("whenMultiLineSubject.kt")
public void testWhenMultiLineSubject() {
runTest("compiler/testData/debug/stepping/whenMultiLineSubject.kt");
}
@Test
@TestMetadata("whenNullalbeSubject.kt")
public void testWhenNullalbeSubject() {
runTest("compiler/testData/debug/stepping/whenNullalbeSubject.kt");
}
@Test
@TestMetadata("whenSubject.kt")
public void testWhenSubject() {
runTest("compiler/testData/debug/stepping/whenSubject.kt");
}
@Test
@TestMetadata("whenSubject2.kt")
public void testWhenSubject2() {
runTest("compiler/testData/debug/stepping/whenSubject2.kt");
}
@Test
@TestMetadata("whenWithInlineInCondition.kt")
public void testWhenWithInlineInCondition() {
runTest("compiler/testData/debug/stepping/whenWithInlineInCondition.kt");
}
@Test
@TestMetadata("while.kt")
public void testWhile() {
runTest("compiler/testData/debug/stepping/while.kt");
}
}
@@ -11,9 +11,11 @@ import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives
import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.CHECK_ASM_LIKE_INSTRUCTIONS import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.CHECK_ASM_LIKE_INSTRUCTIONS
import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.CURIOUS_ABOUT import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.CURIOUS_ABOUT
import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.FIR_DIFFERENCE import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.FIR_DIFFERENCE
import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.INLINE_SCOPES_DIFFERENCE
import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.IR_DIFFERENCE import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.IR_DIFFERENCE
import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.LOCAL_VARIABLE_TABLE import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.LOCAL_VARIABLE_TABLE
import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.RENDER_ANNOTATIONS import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.RENDER_ANNOTATIONS
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.USE_INLINE_SCOPES_NUMBERS
import org.jetbrains.kotlin.test.directives.model.Directive import org.jetbrains.kotlin.test.directives.model.Directive
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.model.BinaryArtifacts import org.jetbrains.kotlin.test.model.BinaryArtifacts
@@ -38,6 +40,7 @@ class AsmLikeInstructionListingHandler(testServices: TestServices) : JvmBinaryAr
companion object { companion object {
const val DUMP_EXTENSION = "asm.txt" const val DUMP_EXTENSION = "asm.txt"
const val IR_DUMP_EXTENSION = "asm.ir.txt" const val IR_DUMP_EXTENSION = "asm.ir.txt"
const val INLINE_SCOPES_DUMP_EXTENSION = "asm.scopes.txt"
const val FIR_DUMP_EXTENSION = "asm.fir.txt" const val FIR_DUMP_EXTENSION = "asm.fir.txt"
const val LINE_SEPARATOR = "\n" const val LINE_SEPARATOR = "\n"
@@ -388,13 +391,20 @@ class AsmLikeInstructionListingHandler(testServices: TestServices) : JvmBinaryAr
val irDifference = IR_DIFFERENCE in testServices.moduleStructure.allDirectives val irDifference = IR_DIFFERENCE in testServices.moduleStructure.allDirectives
val firDifference = FIR_DIFFERENCE in testServices.moduleStructure.allDirectives val firDifference = FIR_DIFFERENCE in testServices.moduleStructure.allDirectives
val inlineScopesDifference = INLINE_SCOPES_DIFFERENCE in testServices.moduleStructure.allDirectives
val firstModule = testServices.moduleStructure.modules.first() val firstModule = testServices.moduleStructure.modules.first()
val inlineScopesNumbersEnabled = firstModule.directives.contains(USE_INLINE_SCOPES_NUMBERS)
val extension = when { val extension = when {
firDifference && firstModule.frontendKind == FrontendKinds.FIR -> FIR_DUMP_EXTENSION inlineScopesNumbersEnabled && inlineScopesDifference && firstModule.targetBackend?.isIR == true ->
irDifference && firstModule.targetBackend?.isIR == true -> IR_DUMP_EXTENSION INLINE_SCOPES_DUMP_EXTENSION
else -> DUMP_EXTENSION firDifference && firstModule.frontendKind == FrontendKinds.FIR ->
FIR_DUMP_EXTENSION
irDifference && firstModule.targetBackend?.isIR == true ->
IR_DUMP_EXTENSION
else ->
DUMP_EXTENSION
} }
val testDataFile = testServices.moduleStructure.originalTestDataFiles.first() val testDataFile = testServices.moduleStructure.originalTestDataFiles.first()
@@ -11,11 +11,13 @@ import org.jetbrains.kotlin.test.backend.codegenSuppressionChecker
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.CHECK_BYTECODE_TEXT import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.CHECK_BYTECODE_TEXT
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.TREAT_AS_ONE_FILE import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.TREAT_AS_ONE_FILE
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.model.BinaryArtifacts import org.jetbrains.kotlin.test.model.BinaryArtifacts
import org.jetbrains.kotlin.test.model.TestFile import org.jetbrains.kotlin.test.model.TestFile
import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.defaultDirectives
import org.jetbrains.kotlin.test.services.isKtFile import org.jetbrains.kotlin.test.services.isKtFile
class BytecodeTextHandler(testServices: TestServices, private val shouldEnableExplicitly: Boolean = false) : class BytecodeTextHandler(testServices: TestServices, private val shouldEnableExplicitly: Boolean = false) :
@@ -40,7 +42,14 @@ class BytecodeTextHandler(testServices: TestServices, private val shouldEnableEx
val file = files.first { !it.isAdditional } val file = files.first { !it.isAdditional }
val expected = readExpectedOccurrences(file.originalContent.split("\n")) val expected = readExpectedOccurrences(file.originalContent.split("\n"))
val actual = info.classFileFactory.createText(IGNORED_PREFIX) val actual = info.classFileFactory.createText(IGNORED_PREFIX)
checkGeneratedTextAgainstExpectedOccurrences(actual, expected, targetBackend, !isIgnored, assertions) checkGeneratedTextAgainstExpectedOccurrences(
actual,
expected,
targetBackend,
!isIgnored,
assertions,
inlineScopesNumbersEnabled()
)
} }
} }
@@ -58,7 +67,14 @@ class BytecodeTextHandler(testServices: TestServices, private val shouldEnableEx
if (globalOccurrences.isNotEmpty()) { if (globalOccurrences.isNotEmpty()) {
val generatedText = info.classFileFactory.createText() val generatedText = info.classFileFactory.createText()
checkGeneratedTextAgainstExpectedOccurrences(generatedText, globalOccurrences, targetBackend, reportProblems, assertions) checkGeneratedTextAgainstExpectedOccurrences(
generatedText,
globalOccurrences,
targetBackend,
reportProblems,
assertions,
inlineScopesNumbersEnabled()
)
} }
val generatedByFile = info.classFileFactory.createTextForEachFile() val generatedByFile = info.classFileFactory.createTextForEachFile()
@@ -66,9 +82,20 @@ class BytecodeTextHandler(testServices: TestServices, private val shouldEnableEx
assertTextWasGenerated(expectedOutputFile, generatedByFile, assertions) assertTextWasGenerated(expectedOutputFile, generatedByFile, assertions)
val generatedText = generatedByFile[expectedOutputFile]!! val generatedText = generatedByFile[expectedOutputFile]!!
val expectedOccurrences = expectedOccurrencesByOutputFile[expectedOutputFile]!! val expectedOccurrences = expectedOccurrencesByOutputFile[expectedOutputFile]!!
checkGeneratedTextAgainstExpectedOccurrences(generatedText, expectedOccurrences, targetBackend, reportProblems, assertions) checkGeneratedTextAgainstExpectedOccurrences(
generatedText,
expectedOccurrences,
targetBackend,
reportProblems,
assertions,
inlineScopesNumbersEnabled()
)
} }
} }
private fun inlineScopesNumbersEnabled(): Boolean {
return LanguageSettingsDirectives.USE_INLINE_SCOPES_NUMBERS in testServices.defaultDirectives
}
override fun processAfterAllModules(someAssertionWasFailed: Boolean) {} override fun processAfterAllModules(someAssertionWasFailed: Boolean) {}
} }
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.model.FrontendKind import org.jetbrains.kotlin.test.model.FrontendKind
import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.defaultDirectives
import org.jetbrains.kotlin.test.services.sourceProviders.MainFunctionForBlackBoxTestsSourceProvider.Companion.BOX_MAIN_FILE_NAME import org.jetbrains.kotlin.test.services.sourceProviders.MainFunctionForBlackBoxTestsSourceProvider.Companion.BOX_MAIN_FILE_NAME
import org.jetbrains.kotlin.test.utils.* import org.jetbrains.kotlin.test.utils.*
import java.io.File import java.io.File
@@ -155,7 +156,7 @@ abstract class DebugRunner(testServices: TestServices) : JvmBoxRunner(testServic
} }
eventSet.resume() eventSet.resume()
} }
checkSteppingTestResult(frontend, backend, wholeFile, loggedItems) checkSteppingTestResult(frontend, backend, wholeFile, loggedItems, testServices.defaultDirectives)
virtualMachine.resume() virtualMachine.resume()
} }
@@ -17,6 +17,10 @@ object AsmLikeInstructionListingDirectives : SimpleDirectivesContainer() {
"If present then saves dump for IR backend in asm.ir.txt file" "If present then saves dump for IR backend in asm.ir.txt file"
) )
val INLINE_SCOPES_DIFFERENCE by directive(
"If present and if inline scopes are enabled then saves dump for IR backend in asm.scopes.txt file"
)
val FIR_DIFFERENCE by directive( val FIR_DIFFERENCE by directive(
"If present then saves dump for IR backend in asm.fir.txt file" "If present then saves dump for IR backend in asm.fir.txt file"
) )
@@ -97,6 +97,12 @@ fun TestConfigurationBuilder.useIrInliner() {
} }
} }
fun TestConfigurationBuilder.useInlineScopesNumbers() {
defaultDirectives {
+LanguageSettingsDirectives.USE_INLINE_SCOPES_NUMBERS
}
}
fun TestConfigurationBuilder.applyDumpSmapDirective() { fun TestConfigurationBuilder.applyDumpSmapDirective() {
forTestsMatching("compiler/testData/codegen/boxInline/smap/*") { forTestsMatching("compiler/testData/codegen/boxInline/smap/*") {
defaultDirectives { defaultDirectives {
@@ -0,0 +1,100 @@
/*
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.test.runners.codegen.inlineScopes
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.runners.codegen.*
/*
* All tests in this file are Fir Light Tree tests because they are meant to test inline scopes numbers
* in the JVM backend and their execution result shouldn't be affected by the parser.
*/
open class AbstractFirBlackBoxInlineCodegenWithBytecodeInlinerTestWithInlineScopes :
AbstractFirLightTreeBlackBoxInlineCodegenWithBytecodeInlinerTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
}
}
open class AbstractFirBlackBoxInlineCodegenWithIrInlinerTestWithInlineScopes : AbstractFirLightTreeBlackBoxInlineCodegenWithIrInlinerTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
}
}
// Adding this test will result in test failures.
// TODO: Decide what to do with this test
open class AbstractFirAsmLikeInstructionListingTestWithInlineScopes : AbstractFirLightTreeAsmLikeInstructionListingTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
}
}
open class AbstractFirBlackBoxCodegenTestWithInlineScopes : AbstractFirLightTreeBlackBoxCodegenTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
}
}
// Adding this test will result in test failures.
// TODO: Add or remove when the fate of the IR inliner is decided.
open class AbstractFirBlackBoxCodegenWithIrInlinerTestWithInlineScopes : AbstractFirLightTreeBlackBoxCodegenTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
builder.useIrInliner()
}
}
open class AbstractFirBytecodeTextTestWithInlineScopes : AbstractFirLightTreeBytecodeTextTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
}
}
open class AbstractFirLocalVariableBytecodeInlinerTestWithInlineScopes : AbstractFirLightTreeLocalVariableTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
}
}
open class AbstractFirLocalVariableIrInlinerTestWithInlineScopes : AbstractFirLightTreeLocalVariableTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
builder.useIrInliner()
}
}
open class AbstractFirSerializeCompileKotlinAgainstInlineKotlinTestWithInlineScopes :
AbstractFirLightTreeSerializeCompileKotlinAgainstInlineKotlinTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
}
}
open class AbstractFirSteppingWithBytecodeInlinerTestWithInlineScopes : AbstractFirLightTreeSteppingTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
}
}
open class AbstractFirSteppingWithIrInlinerTestWithInlineScopes : AbstractFirLightTreeSteppingTest() {
override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder)
builder.useInlineScopesNumbers()
builder.useIrInliner()
}
}
@@ -41,6 +41,7 @@ import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.DISABLE_CALL_ASSERTIONS import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.DISABLE_CALL_ASSERTIONS
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.DISABLE_PARAM_ASSERTIONS import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.DISABLE_PARAM_ASSERTIONS
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.EMIT_JVM_TYPE_ANNOTATIONS import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.EMIT_JVM_TYPE_ANNOTATIONS
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.USE_INLINE_SCOPES_NUMBERS
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.ENABLE_JVM_IR_INLINER import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.ENABLE_JVM_IR_INLINER
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.ENABLE_JVM_PREVIEW import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.ENABLE_JVM_PREVIEW
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.JDK_RELEASE import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.JDK_RELEASE
@@ -180,6 +181,7 @@ open class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentC
register(OLD_INNER_CLASSES_LOGIC, JVMConfigurationKeys.OLD_INNER_CLASSES_LOGIC) register(OLD_INNER_CLASSES_LOGIC, JVMConfigurationKeys.OLD_INNER_CLASSES_LOGIC)
register(LINK_VIA_SIGNATURES_K1, JVMConfigurationKeys.LINK_VIA_SIGNATURES) register(LINK_VIA_SIGNATURES_K1, JVMConfigurationKeys.LINK_VIA_SIGNATURES)
register(ENABLE_JVM_IR_INLINER, JVMConfigurationKeys.ENABLE_IR_INLINER) register(ENABLE_JVM_IR_INLINER, JVMConfigurationKeys.ENABLE_IR_INLINER)
register(USE_INLINE_SCOPES_NUMBERS, JVMConfigurationKeys.USE_INLINE_SCOPES_NUMBERS)
} }
override fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule) { override fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule) {
@@ -6,6 +6,9 @@
package org.jetbrains.kotlin.test.utils package org.jetbrains.kotlin.test.utils
import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
import org.jetbrains.kotlin.test.directives.model.Directive
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
import org.jetbrains.kotlin.test.model.FrontendKind import org.jetbrains.kotlin.test.model.FrontendKind
import org.jetbrains.kotlin.test.model.FrontendKinds import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEqualsToFile import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEqualsToFile
@@ -56,16 +59,46 @@ private fun String.normalizeIndyLambdas(): String =
private const val EXPECTATIONS_MARKER = "// EXPECTATIONS" private const val EXPECTATIONS_MARKER = "// EXPECTATIONS"
private const val FORCE_STEP_INTO_MARKER = "// FORCE_STEP_INTO" private const val FORCE_STEP_INTO_MARKER = "// FORCE_STEP_INTO"
private const val DIRECTIVE_MARKER = "+"
data class BackendWithDirectives(val backend: TargetBackend) {
companion object {
private val directivesToConsider = mutableSetOf(LanguageSettingsDirectives.USE_INLINE_SCOPES_NUMBERS)
}
private val directives = mutableSetOf<Directive>()
fun addDirectiveIfConsidered(directive: Directive) {
if (directive in directivesToConsider) {
directives += directive
}
}
fun contains(registeredDirectives: RegisteredDirectives, directivesInTestFile: Set<Directive>): Boolean {
if (directivesInTestFile.isEmpty()) return true
return registeredDirectives.filter { it in directivesToConsider && it in directivesInTestFile }.toSet() == directives
}
}
fun checkSteppingTestResult( fun checkSteppingTestResult(
frontendKind: FrontendKind<*>, frontendKind: FrontendKind<*>,
targetBackend: TargetBackend, targetBackend: TargetBackend,
wholeFile: File, wholeFile: File,
loggedItems: List<SteppingTestLoggedData> loggedItems: List<SteppingTestLoggedData>,
directives: RegisteredDirectives
) { ) {
val actual = mutableListOf<String>() val actual = mutableListOf<String>()
val lines = wholeFile.readLines() val lines = wholeFile.readLines()
val forceStepInto = lines.any { it.startsWith(FORCE_STEP_INTO_MARKER) } val directivesInTestFile = mutableSetOf<Directive>()
var forceStepInto = false
for (line in lines) {
if (line.contains(DIRECTIVE_MARKER)) {
directivesInTestFile.addAll(line.getDeclaredDirectives())
}
if (line.startsWith(FORCE_STEP_INTO_MARKER)) {
forceStepInto = true
}
}
val actualLineNumbers = compressSequencesWithoutLineNumber(loggedItems) val actualLineNumbers = compressSequencesWithoutLineNumber(loggedItems)
.filter { .filter {
@@ -86,8 +119,8 @@ fun checkSteppingTestResult(
if (line.startsWith(FORCE_STEP_INTO_MARKER)) break if (line.startsWith(FORCE_STEP_INTO_MARKER)) break
} }
var currentBackends = setOf(TargetBackend.ANY) var currentBackends = listOf(BackendWithDirectives(TargetBackend.ANY))
var currentFrontends = setOf(frontendKind) var currentFrontends = listOf(frontendKind)
for (line in lineIterator) { for (line in lineIterator) {
if (line.isEmpty()) { if (line.isEmpty()) {
actual.add(line) actual.add(line)
@@ -95,20 +128,41 @@ fun checkSteppingTestResult(
} }
if (line.startsWith(EXPECTATIONS_MARKER)) { if (line.startsWith(EXPECTATIONS_MARKER)) {
actual.add(line) actual.add(line)
val backendsAndFrontends = line.removePrefix(EXPECTATIONS_MARKER).splitToSequence(Regex("\\s+")).filter { it.isNotEmpty() } val options = line.removePrefix(EXPECTATIONS_MARKER).splitToSequence(Regex("\\s+")).filter { it.isNotEmpty() }
currentBackends = backendsAndFrontends val backends = mutableListOf<BackendWithDirectives>()
.mapNotNullTo(mutableSetOf()) { valueOfOrNull<TargetBackend>(it) } val frontends = mutableListOf<FrontendKind<*>>()
.takeIf { it.isNotEmpty() } var currentBackendWithDirectives: BackendWithDirectives? = null
?: setOf(TargetBackend.ANY) for (option in options) {
currentFrontends = backendsAndFrontends val backend = valueOfOrNull<TargetBackend>(option)
.mapNotNullTo(mutableSetOf(), FrontendKinds::fromString) if (backend != null) {
.takeIf { it.isNotEmpty() } val backendWithDirectives = BackendWithDirectives(backend)
?: setOf(frontendKind) currentBackendWithDirectives = backendWithDirectives
backends += backendWithDirectives
continue
}
val frontend = FrontendKinds.fromString(option)
if (frontend != null) {
frontends += frontend
continue
}
val directive = LanguageSettingsDirectives[option.substringAfter(DIRECTIVE_MARKER)]
if (directive != null && currentBackendWithDirectives != null) {
currentBackendWithDirectives.addDirectiveIfConsidered(directive)
}
}
currentBackends = backends.takeIf { it.isNotEmpty() } ?: listOf(BackendWithDirectives(TargetBackend.ANY))
currentFrontends = frontends.takeIf { it.isNotEmpty() } ?: listOf(frontendKind)
continue continue
} }
if ((currentBackends.contains(TargetBackend.ANY) || currentBackends.contains(targetBackend)) &&
currentFrontends.contains(frontendKind) val containsBackend =
) { currentBackends.any {
it.backend == TargetBackend.ANY || (it.backend == targetBackend && it.contains(directives, directivesInTestFile))
}
if (containsBackend && currentFrontends.contains(frontendKind)) {
if (actualLineNumbersIterator.hasNext()) { if (actualLineNumbersIterator.hasNext()) {
actual.add(actualLineNumbersIterator.next()) actual.add(actualLineNumbersIterator.next())
} }
@@ -125,6 +179,10 @@ fun checkSteppingTestResult(
assertEqualsToFile(wholeFile, actual.joinToString("\n")) assertEqualsToFile(wholeFile, actual.joinToString("\n"))
} }
private fun String.getDeclaredDirectives(): List<Directive> {
return split(Regex("\\s+")).mapNotNull { LanguageSettingsDirectives[it.substringAfter(DIRECTIVE_MARKER)] }
}
/** /**
* Compresses sequences of the same location without line number in the log: * Compresses sequences of the same location without line number in the log:
* specifically removes locations without linenumber, that would otherwise * specifically removes locations without linenumber, that would otherwise
@@ -72,6 +72,6 @@ public abstract class AbstractTopLevelMembersInvocationTest extends AbstractByte
List<OccurrenceInfo> expected = readExpectedOccurrences(KtTestUtil.getTestDataPathBase() + "/codegen/" + sourceFiles.get(0)); List<OccurrenceInfo> expected = readExpectedOccurrences(KtTestUtil.getTestDataPathBase() + "/codegen/" + sourceFiles.get(0));
String actual = generateToText(); String actual = generateToText();
checkGeneratedTextAgainstExpectedOccurrences(actual, expected, TargetBackend.ANY, true, JUnit4Assertions.INSTANCE); checkGeneratedTextAgainstExpectedOccurrences(actual, expected, TargetBackend.ANY, true, JUnit4Assertions.INSTANCE, false);
} }
} }
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.generators.util.TestGeneratorUtil
import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.runners.* import org.jetbrains.kotlin.test.runners.*
import org.jetbrains.kotlin.test.runners.codegen.* import org.jetbrains.kotlin.test.runners.codegen.*
import org.jetbrains.kotlin.test.runners.codegen.inlineScopes.*
import org.jetbrains.kotlin.test.runners.ir.* import org.jetbrains.kotlin.test.runners.ir.*
import org.jetbrains.kotlin.test.runners.ir.interpreter.AbstractJvmIrInterpreterAfterFirPsi2IrTest import org.jetbrains.kotlin.test.runners.ir.interpreter.AbstractJvmIrInterpreterAfterFirPsi2IrTest
import org.jetbrains.kotlin.test.runners.ir.interpreter.AbstractJvmIrInterpreterAfterPsi2IrTest import org.jetbrains.kotlin.test.runners.ir.interpreter.AbstractJvmIrInterpreterAfterPsi2IrTest
@@ -19,6 +20,13 @@ fun generateJUnit5CompilerTests(args: Array<String>, mainClassName: String?) {
val excludedCustomTestdataPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN val excludedCustomTestdataPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN
val k2BoxTestDir = listOf("multiplatform/k2") val k2BoxTestDir = listOf("multiplatform/k2")
val excludedScriptDirs = listOf("script") val excludedScriptDirs = listOf("script")
// We exclude the 'inlineScopes' directory from the IR inliner tests. The reason is that
// the IR inliner produces slightly different bytecode than the bytecode inliner (see KT-65477).
val inlineScopesTestDir = listOf("inlineScopes")
// We exclude the 'inlineScopes/newFormatToOld' directory from tests that have inline scopes enabled
// by default, since we only want to test the scenario where code with inline scopes is inlined by the
// old inliner with $iv suffixes.
val inlineScopesNewFormatToOld = listOf("inlineScopes/newFormatToOld")
generateTestGroupSuiteWithJUnit5(args, mainClassName) { generateTestGroupSuiteWithJUnit5(args, mainClassName) {
testGroup(testsRoot = "compiler/tests-common-new/tests-gen", testDataRoot = "compiler/testData") { testGroup(testsRoot = "compiler/tests-common-new/tests-gen", testDataRoot = "compiler/testData") {
@@ -111,7 +119,7 @@ fun generateJUnit5CompilerTests(args: Array<String>, mainClassName: String?) {
} }
testClass<AbstractIrLocalVariableIrInlinerTest> { testClass<AbstractIrLocalVariableIrInlinerTest> {
model("debug/localVariables") model("debug/localVariables", excludeDirs = inlineScopesTestDir)
} }
testClass<AbstractBlackBoxCodegenTest>("BlackBoxModernJdkCodegenTestGenerated") { testClass<AbstractBlackBoxCodegenTest>("BlackBoxModernJdkCodegenTestGenerated") {
@@ -200,6 +208,48 @@ fun generateJUnit5CompilerTests(args: Array<String>, mainClassName: String?) {
testClass<AbstractJvmIrInterpreterAfterPsi2IrTest> { testClass<AbstractJvmIrInterpreterAfterPsi2IrTest> {
model("ir/interpreter", excludeDirs = listOf("helpers")) model("ir/interpreter", excludeDirs = listOf("helpers"))
} }
// ------------- Inline scopes tests duplication -------------
testClass<AbstractFirBlackBoxCodegenTestWithInlineScopes> {
model("codegen/box", excludeDirs = k2BoxTestDir + excludedScriptDirs)
}
testClass<AbstractFirBytecodeTextTestWithInlineScopes> {
model("codegen/bytecodeText")
}
testClass<AbstractFirSteppingWithBytecodeInlinerTestWithInlineScopes> {
model("debug/stepping")
}
testClass<AbstractFirSteppingWithIrInlinerTestWithInlineScopes> {
model("debug/stepping")
}
testClass<AbstractFirLocalVariableBytecodeInlinerTestWithInlineScopes> {
model("debug/localVariables", excludeDirs = inlineScopesNewFormatToOld)
}
testClass<AbstractFirLocalVariableIrInlinerTestWithInlineScopes> {
model("debug/localVariables", excludeDirs = inlineScopesTestDir)
}
testClass<AbstractFirBlackBoxInlineCodegenWithBytecodeInlinerTestWithInlineScopes> {
model("codegen/boxInline", excludeDirs = k2BoxTestDir)
}
testClass<AbstractFirBlackBoxInlineCodegenWithIrInlinerTestWithInlineScopes> {
model("codegen/boxInline")
}
testClass<AbstractFirSerializeCompileKotlinAgainstInlineKotlinTestWithInlineScopes> {
model("codegen/boxInline")
}
testClass<AbstractFirBlackBoxCodegenTestWithInlineScopes>("FirBlackBoxModernJdkCodegenTestGeneratedWithInlineScopes") {
model("codegen/boxModernJdk")
}
} }
// ---------------------------------------------- FIR tests ---------------------------------------------- // ---------------------------------------------- FIR tests ----------------------------------------------
+96
View File
@@ -0,0 +1,96 @@
## Introduction
The Kotlin debugger uses inline marker variables (`$i$f$...`, `$i$a$...`) that are produced by the Kotlin compiler
to handle stepping into/over/out of inline functions and lambdas and also to build inline stack traces. This scheme
does not work for dex code, where the same variable may be duplicated in different registers and where basic blocks can be reordered.
This leads to many debugging issues on Android from inconsistent locals in the variables view to bad stepping in inline functions.
## **New format description**
The new format affects 3 types of variables:
1. Inline function marker variables
`$i$f$name\[scope number]\[call site line number]`
2. Inline lambda marker variables
`$i$a$name\[scope number]\[call site line number]\[surrounding scope number]`
3. Local variables from inline functions or lambdas
`name\[scope number]`
Lets break it down on the following example:
```
fun main() {
val inMain = 0
g(0) {
val inLambdaG1 = 1 // breakpoint 1
h()
g(4) {
val inLambdaG2 = 2 // breakpoint 2
}
}
}
inline fun g(gParam: Int, block: () -> Unit) {
block()
}
inline fun h() {
val inH = 3
i()
}
inline fun i() {
val inI = 4
}
```
How LVT used to look:
```
LocalVariableTable:
Start Length Slot Name Signature
20 4 7 $i$f$i I
23 1 8 inI$iv$iv I
14 11 5 $i$f$h I
17 8 6 inH$iv I
34 4 7 $i$a$-g-SandboxKt$main$1$1 I
37 1 8 inLambdaG2 I
31 9 6 $i$f$g I
28 12 5 gParam$iv I
8 33 3 $i$a$-g-SandboxKt$main$1 I
11 30 4 inLambdaG1 I
6 37 2 $i$f$g I
4 39 1 gParam$iv I
2 42 0 inMain I
```
How LVT looks with the new format:
```
LocalVariableTable:
Start Length Slot Name Signature
20 4 7 $i$f$i\4\30 I
23 1 8 inI\4 I
14 11 5 $i$f$h\3\7 I
17 8 6 inH\3 I
34 4 7 $i$a$-g-SandboxKt$main$1$1\6\36\2 I
37 1 8 inLambdaG2\6 I
31 9 6 $i$f$g\5\8 I
28 12 5 gParam\5 I
8 33 3 $i$a$-g-SandboxKt$main$1\2\28\0 I
11 30 4 inLambdaG1\2 I
6 37 2 $i$f$g\1\5 I
4 39 1 gParam\1 I
2 42 0 inMain I
```
Previously the compiler added the `$iv` suffixes to distinguish locals that belong to different inline functions.
Now we assign scope numbers to marker and local variables. Locals with a scope number belong to the function
which is represented by a marker variable with the same scope number.
Lets see how it works in our example:
* `$i$f$g\1\5` has scope number 1, as well as `gParam\1`.
* `$i$a$-g-SandboxKt$main$1\2\28\0` has scope number 2, as well as `inLambdaG1\2`. It also has a surrounding scope number equal to 0.
The scope number 0 belongs to the top frame, and basically means that the `inMain` variable should be included in the variables view
when we stop at breakpoint 1.
* `$i$f$h\3\7` has scope number 3, as well as `inH\3`.
* `$i$f$i\4\30` has scope number 4, as well as `inI\4`.
* `$i$f$g\5\8` has scope number 5, as well as `gParam\5`.
* `$i$a$-g-SandboxKt$main$1$1\6\36\2` has scope number 6, as well as `inLambdaG2\6`, and surrounding scope number 2, which means that
we should include variables that are visible in scope 2 when we stop at breakpoint 2. In our example these variables are `inMain`
and `inLambdaG1\2`.

Some files were not shown because too many files have changed in this diff Show More