[IR] WIP
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
index ee0a6a2..3ce2af1 100644
--- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
+++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenWithIrInlinerTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
index eb2a74e..8a4c471e 100644
--- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
+++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
index 5aa926a..94294f9 100644
--- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
+++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
index 351b20a..493c18f 100644
--- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
+++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxInlineCodegenWithIrInlinerTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
index 7ba6b90..c8f85e9 100644
--- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
+++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
index 4f0e95c..ae549b6 100644
--- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
+++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/LocalClasses.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/LocalClasses.kt
index 04f7f14..83cc56b 100644
--- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/LocalClasses.kt
+++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/LocalClasses.kt
@@ -10,6 +10,7 @@
import org.jetbrains.kotlin.backend.common.lower.LocalDeclarationsLowering
import org.jetbrains.kotlin.backend.common.lower.locationForExtraction
import org.jetbrains.kotlin.backend.common.lower.moveTo
+import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.declarations.*
@@ -186,7 +187,7 @@
/**
* Remaps symbols in local classes inside `this` to their corresponding lifted classes.
*/
-var IrFunction.localClassSymbolRemapper: DeepCopySymbolRemapper? by irAttribute(followAttributeOwner = false)
+var IrFunction.localClassSymbolRemapper: DeepCopySymbolRemapper? by irAttribute(followAttributeOwner = true)
/**
* Used to mark local classes for which we lifted their copies.
@@ -224,7 +225,12 @@
// inlining we could use that same remapper to replace usages of local classes with usages of lifted classes.
klass.acceptVoid(symbolRemapper)
val classCopy = klass.transform(DeepCopyIrTreeWithSymbols(symbolRemapper), null) as IrClass
+
+ // Extracted local classes will only be shared across call sites in the same module,
+ classCopy.visibility = DescriptorVisibilities.INTERNAL
+
classCopy.moveTo(locationForExtraction)
+ classCopy.patchDeclarationParents()
klass.useExtractedCopy = true
}
}
diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/SaveInlineFunctionsBeforeInlining.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/SaveInlineFunctionsBeforeInlining.kt
index 5b60c33..eeb22c0 100644
--- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/SaveInlineFunctionsBeforeInlining.kt
+++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/SaveInlineFunctionsBeforeInlining.kt
@@ -7,13 +7,16 @@
import org.jetbrains.kotlin.backend.common.DeclarationTransformer
import org.jetbrains.kotlin.backend.common.getOrPut
+import org.jetbrains.kotlin.backend.common.lower.inline.localClassSymbolRemapper
import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
import org.jetbrains.kotlin.ir.declarations.IrFunction
import org.jetbrains.kotlin.ir.inline.InlineFunctionResolverReplacingCoroutineIntrinsics
import org.jetbrains.kotlin.ir.inline.isConsideredAsPrivateForInlining
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
-import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
+import org.jetbrains.kotlin.ir.util.DeepCopyIrTreeWithSymbols
+import org.jetbrains.kotlin.ir.util.DeepCopySymbolRemapper
+import org.jetbrains.kotlin.ir.visitors.acceptVoid
// TODO: KT-67220: consider removing it
internal class SaveInlineFunctionsBeforeInlining(
@@ -24,7 +27,12 @@
override fun transformFlat(declaration: IrDeclaration): List<IrDeclaration>? {
if (declaration is IrFunction && declaration.isInline && (!cacheOnlyPrivateFunctions || declaration.isConsideredAsPrivateForInlining())) {
- inlineFunctionsBeforeInlining.getOrPut(declaration) { declaration.deepCopyWithSymbols(declaration.parent) }
+ inlineFunctionsBeforeInlining.getOrPut(declaration) {
+ val symbolRemapper = DeepCopySymbolRemapper()
+ declaration.acceptVoid(symbolRemapper)
+ declaration.localClassSymbolRemapper?.replaceKeys(symbolRemapper)
+ declaration.transform(DeepCopyIrTreeWithSymbols(symbolRemapper), null) as IrFunction
+ }
}
return null
diff --git a/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt b/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt
index b26e215..0a132df7 100644
--- a/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt
+++ b/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt
@@ -136,7 +136,7 @@
produceOuterThisFields,
// Only use lifted local classes if there's no cross-module inlining,
// otherwise lifted local classes would become public ABI, which we don't want.
- useLiftedLocalClasses = extractLocalClasses && currentFile.module == actualCallee.fileOrNull?.module,
+ useLiftedLocalClasses = extractLocalClasses && (containerScope?.irElement as? IrDeclaration)?.fileOrNull?.module == actualCallee.fileOrNull?.module,
)
return inliner.inline().markAsRegenerated()
}
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopySymbolRemapper.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopySymbolRemapper.kt
index f8d0d2a..0018ebe 100644
--- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopySymbolRemapper.kt
+++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopySymbolRemapper.kt
@@ -20,21 +20,21 @@
private val descriptorsRemapper: DescriptorsRemapper = NullDescriptorsRemapper
) : IrElementVisitorVoid, SymbolRemapper {
- protected val classes = hashMapOf<IrClassSymbol, IrClassSymbol>()
- protected val scripts = hashMapOf<IrScriptSymbol, IrScriptSymbol>()
- protected val constructors = hashMapOf<IrConstructorSymbol, IrConstructorSymbol>()
- protected val enumEntries = hashMapOf<IrEnumEntrySymbol, IrEnumEntrySymbol>()
- protected val externalPackageFragments = hashMapOf<IrExternalPackageFragmentSymbol, IrExternalPackageFragmentSymbol>()
- protected val fields = hashMapOf<IrFieldSymbol, IrFieldSymbol>()
- protected val files = hashMapOf<IrFileSymbol, IrFileSymbol>()
- protected val functions = hashMapOf<IrSimpleFunctionSymbol, IrSimpleFunctionSymbol>()
- protected val properties = hashMapOf<IrPropertySymbol, IrPropertySymbol>()
- protected val returnableBlocks = hashMapOf<IrReturnableBlockSymbol, IrReturnableBlockSymbol>()
- protected val typeParameters = hashMapOf<IrTypeParameterSymbol, IrTypeParameterSymbol>()
- protected val valueParameters = hashMapOf<IrValueParameterSymbol, IrValueParameterSymbol>()
- protected val variables = hashMapOf<IrVariableSymbol, IrVariableSymbol>()
- protected val localDelegatedProperties = hashMapOf<IrLocalDelegatedPropertySymbol, IrLocalDelegatedPropertySymbol>()
- protected val typeAliases = hashMapOf<IrTypeAliasSymbol, IrTypeAliasSymbol>()
+ protected var classes = hashMapOf<IrClassSymbol, IrClassSymbol>()
+ protected var scripts = hashMapOf<IrScriptSymbol, IrScriptSymbol>()
+ protected var constructors = hashMapOf<IrConstructorSymbol, IrConstructorSymbol>()
+ protected var enumEntries = hashMapOf<IrEnumEntrySymbol, IrEnumEntrySymbol>()
+ protected var externalPackageFragments = hashMapOf<IrExternalPackageFragmentSymbol, IrExternalPackageFragmentSymbol>()
+ protected var fields = hashMapOf<IrFieldSymbol, IrFieldSymbol>()
+ protected var files = hashMapOf<IrFileSymbol, IrFileSymbol>()
+ protected var functions = hashMapOf<IrSimpleFunctionSymbol, IrSimpleFunctionSymbol>()
+ protected var properties = hashMapOf<IrPropertySymbol, IrPropertySymbol>()
+ protected var returnableBlocks = hashMapOf<IrReturnableBlockSymbol, IrReturnableBlockSymbol>()
+ protected var typeParameters = hashMapOf<IrTypeParameterSymbol, IrTypeParameterSymbol>()
+ protected var valueParameters = hashMapOf<IrValueParameterSymbol, IrValueParameterSymbol>()
+ protected var variables = hashMapOf<IrVariableSymbol, IrVariableSymbol>()
+ protected var localDelegatedProperties = hashMapOf<IrLocalDelegatedPropertySymbol, IrLocalDelegatedPropertySymbol>()
+ protected var typeAliases = hashMapOf<IrTypeAliasSymbol, IrTypeAliasSymbol>()
fun addMappingsFrom(other: DeepCopySymbolRemapper) {
classes += other.classes
@@ -54,6 +54,22 @@
typeAliases += other.typeAliases
}
+ fun replaceKeys(remapper: DeepCopySymbolRemapper) {
+ classes = classes.mapKeysTo(hashMapOf()) { remapper.getReferencedClass(it.key) }
+ scripts = scripts.mapKeysTo(hashMapOf()) { remapper.getReferencedScript(it.key) }
+ constructors = constructors.mapKeysTo(hashMapOf()) { remapper.getReferencedConstructor(it.key) }
+ enumEntries = enumEntries.mapKeysTo(hashMapOf()) { remapper.getReferencedEnumEntry(it.key) }
+ fields = fields.mapKeysTo(hashMapOf()) { remapper.getReferencedField(it.key) }
+ functions = functions.mapKeysTo(hashMapOf()) { remapper.getReferencedSimpleFunction(it.key) }
+ properties = properties.mapKeysTo(hashMapOf()) { remapper.getReferencedProperty(it.key) }
+ returnableBlocks = returnableBlocks.mapKeysTo(hashMapOf()) { remapper.getReferencedReturnableBlock(it.key) }
+ typeParameters = typeParameters.mapKeysTo(hashMapOf()) { remapper.getReferencedTypeParameter(it.key) }
+ valueParameters = valueParameters.mapKeysTo(hashMapOf()) { remapper.getReferencedValueParameter(it.key) }
+ variables = variables.mapKeysTo(hashMapOf()) { remapper.getReferencedVariable(it.key) }
+ localDelegatedProperties = localDelegatedProperties.mapKeysTo(hashMapOf()) { remapper.getReferencedLocalDelegatedProperty(it.key) }
+ typeAliases = typeAliases.mapKeysTo(hashMapOf()) { remapper.getReferencedTypeAlias(it.key) }
+ }
+
override fun visitElement(element: IrElement) {
element.acceptChildrenVoid(this)
}
@@ -206,7 +222,7 @@
override fun getReferencedScript(symbol: IrScriptSymbol): IrScriptSymbol = scripts.getReferenced(symbol)
override fun getReferencedEnumEntry(symbol: IrEnumEntrySymbol): IrEnumEntrySymbol = enumEntries.getReferenced(symbol)
override fun getReferencedVariable(symbol: IrVariableSymbol): IrVariableSymbol = variables.getReferenced(symbol)
- override fun getReferencedValueParameter(symbol: IrValueParameterSymbol): IrValueSymbol = valueParameters.getReferenced(symbol)
+ override fun getReferencedValueParameter(symbol: IrValueParameterSymbol): IrValueParameterSymbol = valueParameters.getReferenced(symbol)
override fun getReferencedLocalDelegatedProperty(symbol: IrLocalDelegatedPropertySymbol): IrLocalDelegatedPropertySymbol =
localDelegatedProperties.getReferenced(symbol)
@@ -215,10 +231,10 @@
override fun getReferencedSimpleFunction(symbol: IrSimpleFunctionSymbol): IrSimpleFunctionSymbol = functions.getReferenced(symbol)
override fun getReferencedProperty(symbol: IrPropertySymbol): IrPropertySymbol = properties.getReferenced(symbol)
- override fun getReferencedReturnableBlock(symbol: IrReturnableBlockSymbol): IrReturnTargetSymbol =
+ override fun getReferencedReturnableBlock(symbol: IrReturnableBlockSymbol): IrReturnableBlockSymbol =
returnableBlocks.getReferenced(symbol)
- override fun getReferencedTypeParameter(symbol: IrTypeParameterSymbol): IrClassifierSymbol = typeParameters.getReferenced(symbol)
+ override fun getReferencedTypeParameter(symbol: IrTypeParameterSymbol): IrTypeParameterSymbol = typeParameters.getReferenced(symbol)
override fun getReferencedTypeAlias(symbol: IrTypeAliasSymbol): IrTypeAliasSymbol = typeAliases.getReferenced(symbol)
}
\ No newline at end of file
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt
index 2a5d612..2021e06 100644
--- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt
+++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt
@@ -209,14 +209,22 @@
get() = if (!isBound) {
"/* ERROR: unbound symbol $signature */"
} else {
- (owner as? IrDeclaration)?.parentClassOrNull?.name?.toString() ?: "/* ERROR: unexpected parent for $safeName */"
+ try {
+ (owner as? IrDeclaration)?.parentClassOrNull?.name?.toString()
+ } catch (e: UninitializedPropertyAccessException) {
+ null
+ } ?: "/* ERROR: unexpected parent for $safeName */"
}
private val IrSymbol.safeParentClassOrNull
get() = if (!isBound) {
null
} else {
- (owner as? IrDeclaration)?.parentClassOrNull
+ try {
+ (owner as? IrDeclaration)?.parentClassOrNull
+ } catch (e: UninitializedPropertyAccessException) {
+ null
+ }
}
diff --git a/compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt b/compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt
new file mode 100644
index 0000000..3183b64
--- /dev/null
+++ b/compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt
@@ -0,0 +1,55 @@
+// MODULE: lib
+// FILE: lib.kt
+
+inline fun publicInlineMethod(): Any = object {}
+
+inline fun publicInlineMethodWithCrossinline(crossinline f: () -> Unit): Any = object {
+ fun run() = f()
+}
+
+inline fun publicInlineMethod2() = publicInlineMethodWithCrossinline {}
+
+// FILE: lib-test.kt
+fun libtest1(): String = publicInlineMethod()::class.toString()
+fun libtest2(): String = publicInlineMethod()::class.simpleName!!
+inline fun libtest3(): String = publicInlineMethod()::class.simpleName!!
+fun libtest4(): String = libtest3()
+fun libtest5(): String = publicInlineMethod2()::class.simpleName!!
+fun libtest6(): String = publicInlineMethod2()::class.simpleName!!
+inline fun libtest7(): String = publicInlineMethod2()::class.simpleName!!
+
+fun libtest8(): String = libtest7()
+
+// MODULE: main(lib)
+// FILE: main-test.kt
+fun maintest1(): String = publicInlineMethod()::class.simpleName!!
+fun maintest2(): String = publicInlineMethod()::class.simpleName!!
+inline fun maintest3(): String = publicInlineMethod()::class.simpleName!!
+fun maintest4(): String = maintest3()
+fun maintest5(): String = publicInlineMethod2()::class.simpleName!!
+fun maintest6(): String = publicInlineMethod2()::class.simpleName!!
+inline fun maintest7(): String = publicInlineMethod2()::class.simpleName!!
+fun maintest8(): String = maintest7()
+
+// FILE: main.kt
+fun assertEquals(expected: Any, actual: Any) {
+ if (expected != actual) throw AssertionError("$expected expected, got $actual")
+}
+
+fun box() {
+ assertEquals("", libtest1())
+ assertEquals("", libtest2())
+ assertEquals("", libtest3())
+ assertEquals("", libtest4())
+ assertEquals("", libtest5())
+ assertEquals("", libtest6())
+ assertEquals("", libtest7())
+
+ assertEquals("", maintest1())
+ assertEquals("", maintest2())
+ assertEquals("", maintest3())
+ assertEquals("", maintest4())
+ assertEquals("", maintest5())
+ assertEquals("", maintest6())
+ assertEquals("", maintest7())
+}
\ No newline at end of file
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java
index 88d2f83..b3a860f 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java
@@ -468,6 +468,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxInlineCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxInlineCodegenTestGenerated.java
index 49b1708..0b5d2f9 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxInlineCodegenTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxInlineCodegenTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java
index 26208cd..d79428e 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
index 419b2c3..dc926ad 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenWithBytecodeInlinerTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
index f8e7e39..1b2b136 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxInlineCodegenWithIrInlinerTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrCompileKotlinAgainstInlineKotlinTestGenerated.java
index 03ebd5b..8ab5355 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrCompileKotlinAgainstInlineKotlinTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrCompileKotlinAgainstInlineKotlinTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
index 226aefa..74da2d8 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrSerializeCompileKotlinAgainstInlineKotlinTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmIrAgainstOldBoxInlineTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmIrAgainstOldBoxInlineTestGenerated.java
index 800f780..1b21911 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmIrAgainstOldBoxInlineTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmIrAgainstOldBoxInlineTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmOldAgainstIrBoxInlineTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmOldAgainstIrBoxInlineTestGenerated.java
index 6c31d66..1514792 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmOldAgainstIrBoxInlineTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/JvmOldAgainstIrBoxInlineTestGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxInlineCodegenWithBytecodeInlinerTestWithInlineScopesGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxInlineCodegenWithBytecodeInlinerTestWithInlineScopesGenerated.java
index 112258d..9b2312e 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxInlineCodegenWithBytecodeInlinerTestWithInlineScopesGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxInlineCodegenWithBytecodeInlinerTestWithInlineScopesGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxInlineCodegenWithIrInlinerTestWithInlineScopesGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxInlineCodegenWithIrInlinerTestWithInlineScopesGenerated.java
index b6edb91..b8125d8 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxInlineCodegenWithIrInlinerTestWithInlineScopesGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxInlineCodegenWithIrInlinerTestWithInlineScopesGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirSerializeCompileKotlinAgainstInlineKotlinTestWithInlineScopesGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirSerializeCompileKotlinAgainstInlineKotlinTestWithInlineScopesGenerated.java
index 9ac30de..38429f9 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirSerializeCompileKotlinAgainstInlineKotlinTestWithInlineScopesGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirSerializeCompileKotlinAgainstInlineKotlinTestWithInlineScopesGenerated.java
@@ -465,6 +465,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenInlineTestGenerated.java
index 68d3071..37c31e0 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenInlineTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenInlineTestGenerated.java
@@ -423,6 +423,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenInlineTestGenerated.java
index 3a16e8d..5a56ab2 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenInlineTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenInlineTestGenerated.java
@@ -423,6 +423,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenInlineTestGenerated.java
index e38f267..0392500 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenInlineTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenInlineTestGenerated.java
@@ -423,6 +423,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenInlineTestGenerated.java
index f8c011c..5e17083 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenInlineTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenInlineTestGenerated.java
@@ -423,6 +423,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java
index cdaf031..1be295c 100644
--- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java
@@ -46926,6 +46926,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java
index 22adf50..16c4188 100644
--- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java
@@ -48096,6 +48096,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java
index c789d1e..3e8dd3f 100644
--- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java
@@ -45085,6 +45085,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java
index e40048f..5219327 100644
--- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java
@@ -46242,6 +46242,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmJsCodegenBoxInlineTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmJsCodegenBoxInlineTestGenerated.java
index 4e65d3e..4fafe52 100644
--- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmJsCodegenBoxInlineTestGenerated.java
+++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmJsCodegenBoxInlineTestGenerated.java
@@ -423,6 +423,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");
diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxInlineTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxInlineTestGenerated.java
index 83ed64d..a72eace 100644
--- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxInlineTestGenerated.java
+++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxInlineTestGenerated.java
@@ -423,6 +423,12 @@
}
@Test
+ @TestMetadata("localClassExtraction.kt")
+ public void testLocalClassExtraction() {
+ runTest("compiler/testData/codegen/boxInline/anonymousObject/localClassExtraction.kt");
+ }
+
+ @Test
@TestMetadata("objectInLambdaCapturesAnotherObject.kt")
public void testObjectInLambdaCapturesAnotherObject() {
runTest("compiler/testData/codegen/boxInline/anonymousObject/objectInLambdaCapturesAnotherObject.kt");