From d08c9ba222630ae8d0b9a18209da6d908f25b8a3 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 2 Jan 2024 15:32:07 +0100 Subject: [PATCH] JVM IR: transform fake override properties in SAM adapters Replace every property with its getter and setter. This is needed because later on, JVM backend assumes that all properties have been lowered (by JvmPropertiesLowering) to this state. #KT-64116 Fixed --- ...LFirBlackBoxCodegenBasedTestGenerated.java | 6 ++++ ...rsedBlackBoxCodegenBasedTestGenerated.java | 6 ++++ ...LightTreeBlackBoxCodegenTestGenerated.java | 6 ++++ ...hIrFakeOverrideGeneratorTestGenerated.java | 6 ++++ .../FirPsiBlackBoxCodegenTestGenerated.java | 6 ++++ .../lower/SingleAbstractMethodLowering.kt | 4 +++ .../lower/JvmSingleAbstractMethodLowering.kt | 15 +++++++--- .../org/jetbrains/kotlin/ir/util/IrUtils.kt | 11 ++++---- compiler/testData/codegen/box/sam/kt64116.kt | 28 +++++++++++++++++++ .../JvmAbiConsistencyTestBoxGenerated.java | 6 ++++ .../codegen/BlackBoxCodegenTestGenerated.java | 6 ++++ .../IrBlackBoxCodegenTestGenerated.java | 6 ++++ ...kBoxCodegenWithIrInlinerTestGenerated.java | 6 ++++ .../LightAnalysisModeTestGenerated.java | 5 ++++ .../fir/FirJsCodegenBoxTestGenerated.java | 6 ++++ .../fir/FirJsES6CodegenBoxTestGenerated.java | 6 ++++ .../test/ir/IrJsCodegenBoxTestGenerated.java | 6 ++++ .../ir/IrJsES6CodegenBoxTestGenerated.java | 6 ++++ .../FirNativeCodegenBoxTestGenerated.java | 6 ++++ .../FirNativeCodegenBoxTestNoPLGenerated.java | 6 ++++ .../NativeCodegenBoxTestGenerated.java | 6 ++++ .../NativeCodegenBoxTestNoPLGenerated.java | 6 ++++ .../test/FirWasmCodegenBoxTestGenerated.java | 6 ++++ .../test/K1WasmCodegenBoxTestGenerated.java | 6 ++++ 24 files changed, 167 insertions(+), 10 deletions(-) create mode 100644 compiler/testData/codegen/box/sam/kt64116.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java index 8826613c070..eb363d1c8dc 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java @@ -50854,6 +50854,12 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java index e1caabdfe43..b5b141cc46b 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java @@ -50854,6 +50854,12 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index 822d2d602c6..97ab9f50453 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -50319,6 +50319,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java index 4877e891a81..b18bf64f404 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java @@ -50319,6 +50319,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 6d8a7ed30d2..f5bd985e660 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -50319,6 +50319,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/SingleAbstractMethodLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/SingleAbstractMethodLowering.kt index ddaeb1da27f..aeb1e52b771 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/SingleAbstractMethodLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/SingleAbstractMethodLowering.kt @@ -79,6 +79,8 @@ abstract class SingleAbstractMethodLowering(val context: CommonBackendContext) : open val inInlineFunctionScope get() = allScopes.any { scope -> (scope.irElement as? IrFunction)?.isInline ?: false } + protected open fun postprocessCreatedObjectProxy(klass: IrClass) {} + override fun lower(irFile: IrFile) { cachedImplementations.clear() inlineCachedImplementations.clear() @@ -248,6 +250,8 @@ abstract class SingleAbstractMethodLowering(val context: CommonBackendContext) : ignoredParentSymbols = listOf(transformedSuperMethod.symbol) ) + postprocessCreatedObjectProxy(subclass) + return subclass } diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmSingleAbstractMethodLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmSingleAbstractMethodLowering.kt index ce95b6b598c..bb883c30e2f 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmSingleAbstractMethodLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmSingleAbstractMethodLowering.kt @@ -18,14 +18,12 @@ import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.builders.declarations.IrFunctionBuilder -import org.jetbrains.kotlin.ir.declarations.IrClass -import org.jetbrains.kotlin.ir.declarations.IrDeclaration -import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin -import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction +import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.getClass import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities +import org.jetbrains.kotlin.utils.filterIsInstanceAnd internal val singleAbstractMethodPhase = makeIrFilePhase( ::JvmSingleAbstractMethodLowering, @@ -67,4 +65,13 @@ private class JvmSingleAbstractMethodLowering(context: JvmBackendContext) : Sing override val IrType.needEqualsHashCodeMethods get() = isKotlinFunInterface || isJavaSamConversionWithEqualsHashCode + + override fun postprocessCreatedObjectProxy(klass: IrClass) { + val fakeOverrideProperties = klass.declarations.filterIsInstanceAnd(IrProperty::isFakeOverride) + klass.declarations.removeAll(fakeOverrideProperties) + for (property in fakeOverrideProperties) { + property.getter?.let(klass.declarations::add) + property.setter?.let(klass.declarations::add) + } + } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt index 04d3a96245c..3ebd3e26eab 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt @@ -1311,12 +1311,11 @@ fun IrClass.addFakeOverrides( implementedMembers: List = emptyList(), ignoredParentSymbols: List = emptyList() ) { - IrFakeOverrideBuilder(typeSystem, BindToNewEmptySymbols, emptyList()) - .buildFakeOverridesForClassUsingOverriddenSymbols(this, - implementedMembers = implementedMembers, - compatibilityMode = false, - ignoredParentSymbols = ignoredParentSymbols) - .forEach { addChild(it) } + val fakeOverrides = IrFakeOverrideBuilder(typeSystem, BindToNewEmptySymbols, emptyList()) + .buildFakeOverridesForClassUsingOverriddenSymbols(this, implementedMembers, compatibilityMode = false, ignoredParentSymbols) + for (fakeOverride in fakeOverrides) { + addChild(fakeOverride) + } } fun IrFactory.createStaticFunctionWithReceivers( diff --git a/compiler/testData/codegen/box/sam/kt64116.kt b/compiler/testData/codegen/box/sam/kt64116.kt new file mode 100644 index 00000000000..d8a03109e36 --- /dev/null +++ b/compiler/testData/codegen/box/sam/kt64116.kt @@ -0,0 +1,28 @@ +// MODULE: lib +// FILE: JsPrimitives.kt +package lib + +interface JsObject { + val isString: Boolean + get() = false +} + +fun interface JsRunnable : JsObject { + fun run() +} + +// MODULE: main(lib) +// FILE: main.kt +import lib.JsRunnable + +class ReactComponent { + fun forceUpdate(callback: JsRunnable) { callback.run() } +} + +fun forceUpdate(myNativeComponent: ReactComponent, callback: () -> Unit) { + myNativeComponent.forceUpdate(callback) +} + +fun box(): String { + return "OK" +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java index cecd63046ab..3d1856b1abf 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java @@ -49659,6 +49659,12 @@ public class JvmAbiConsistencyTestBoxGenerated extends AbstractJvmAbiConsistency runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index 4acdc647917..8ecba99f00d 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -46725,6 +46725,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index ab74c57147c..097b12c1ca6 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -49659,6 +49659,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index 1f9a7f73c55..07c09d627cf 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -49659,6 +49659,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Test @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index e2ba10fd4fb..5cbd88ab8a0 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -39856,6 +39856,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @TestMetadata("noConversionFromSamToSam.kt") public void testNoConversionFromSamToSam() throws Exception { runTest("compiler/testData/codegen/box/sam/noConversionFromSamToSam.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java index 7dda963ba96..2052c49e5c3 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java @@ -35217,6 +35217,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest { runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java index 33f60535686..04bc9c73b3b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java @@ -35217,6 +35217,12 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index 108d8552dc1..c04b0875326 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -34665,6 +34665,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java index 8ecd207f083..29d0fdfb736 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java @@ -34665,6 +34665,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") 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 9bfbfa82468..592bfc1760d 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 @@ -38966,6 +38966,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") 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 2a9cc52d2f5..4fe49c048d2 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 @@ -39946,6 +39946,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") 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 9c5e8c1e939..a8311b4856d 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 @@ -37422,6 +37422,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") 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 aa0e7d3e8d8..fa047293816 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 @@ -38391,6 +38391,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java index cef1f6d45ff..b3a7c321174 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java @@ -35091,6 +35091,12 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT") diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java index c86059e3ebd..c0f9384ea3d 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java @@ -34539,6 +34539,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest runTest("compiler/testData/codegen/box/sam/kt63564.kt"); } + @Test + @TestMetadata("kt64116.kt") + public void testKt64116() throws Exception { + runTest("compiler/testData/codegen/box/sam/kt64116.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/sam/adapters") @TestDataPath("$PROJECT_ROOT")