From 7935b2bdb10118613e900e4e81f3df15b47c21c7 Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Mon, 26 Jun 2023 12:48:18 +0200 Subject: [PATCH] [FIR] Allow to evaluate top level const properties in Java world #KT-57802 --- ...LightTreeBlackBoxCodegenTestGenerated.java | 18 +++++-- ...hIrFakeOverrideGeneratorTestGenerated.java | 18 +++++-- .../FirPsiBlackBoxCodegenTestGenerated.java | 18 +++++-- .../kotlin/fir/java/FirJavaElementFinder.kt | 50 ++++++++++++++++--- .../accessTopLevelConstFromJava.kt | 18 +++++++ .../{kt57802.kt => kt57802_1.kt} | 0 .../box/involvesIrInterpreter/kt57802_2.kt | 31 ++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 18 +++++-- .../IrBlackBoxCodegenTestGenerated.java | 18 +++++-- ...kBoxCodegenWithIrInlinerTestGenerated.java | 18 +++++-- .../LightAnalysisModeTestGenerated.java | 16 ++++-- 11 files changed, 194 insertions(+), 29 deletions(-) create mode 100644 compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt rename compiler/testData/codegen/box/involvesIrInterpreter/{kt57802.kt => kt57802_1.kt} (100%) create mode 100644 compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt 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 b4ef4e12166..128330135b2 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 @@ -29066,6 +29066,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr @TestMetadata("compiler/testData/codegen/box/involvesIrInterpreter") @TestDataPath("$PROJECT_ROOT") public class InvolvesIrInterpreter { + @Test + @TestMetadata("accessTopLevelConstFromJava.kt") + public void testAccessTopLevelConstFromJava() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt"); + } + @Test public void testAllFilesPresentInInvolvesIrInterpreter() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/involvesIrInterpreter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); @@ -29168,9 +29174,15 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr } @Test - @TestMetadata("kt57802.kt") - public void testKt57802() throws Exception { - runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt"); + @TestMetadata("kt57802_1.kt") + public void testKt57802_1() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt"); + } + + @Test + @TestMetadata("kt57802_2.kt") + public void testKt57802_2() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt"); } @Test 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 a259fac15a8..d6ae7d8c90c 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 @@ -29066,6 +29066,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated @TestMetadata("compiler/testData/codegen/box/involvesIrInterpreter") @TestDataPath("$PROJECT_ROOT") public class InvolvesIrInterpreter { + @Test + @TestMetadata("accessTopLevelConstFromJava.kt") + public void testAccessTopLevelConstFromJava() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt"); + } + @Test public void testAllFilesPresentInInvolvesIrInterpreter() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/involvesIrInterpreter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); @@ -29168,9 +29174,15 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated } @Test - @TestMetadata("kt57802.kt") - public void testKt57802() throws Exception { - runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt"); + @TestMetadata("kt57802_1.kt") + public void testKt57802_1() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt"); + } + + @Test + @TestMetadata("kt57802_2.kt") + public void testKt57802_2() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt"); } @Test 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 3a829287a5a..b9e3809c69c 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 @@ -29066,6 +29066,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo @TestMetadata("compiler/testData/codegen/box/involvesIrInterpreter") @TestDataPath("$PROJECT_ROOT") public class InvolvesIrInterpreter { + @Test + @TestMetadata("accessTopLevelConstFromJava.kt") + public void testAccessTopLevelConstFromJava() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt"); + } + @Test public void testAllFilesPresentInInvolvesIrInterpreter() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/involvesIrInterpreter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); @@ -29168,9 +29174,15 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo } @Test - @TestMetadata("kt57802.kt") - public void testKt57802() throws Exception { - runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt"); + @TestMetadata("kt57802_1.kt") + public void testKt57802_1() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt"); + } + + @Test + @TestMetadata("kt57802_2.kt") + public void testKt57802_2() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt"); } @Test diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt index 69d20689dfb..018415de0c0 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaElementFinder.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSessionComponent +import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirTypeParameter @@ -32,7 +33,6 @@ import org.jetbrains.kotlin.fir.declarations.utils.classId import org.jetbrains.kotlin.fir.declarations.utils.isInner import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.declarations.utils.visibility -import org.jetbrains.kotlin.fir.expressions.FirConstExpression import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.fullyExpandedType @@ -47,6 +47,7 @@ import org.jetbrains.kotlin.fir.utils.exceptions.withConeTypeEntry import org.jetbrains.kotlin.name.* import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType import org.jetbrains.kotlin.resolve.jvm.KotlinFinderMarker +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment val FirSession.javaElementFinder: FirJavaElementFinder? by FirSession.nullableSessionComponentAccessor() @@ -90,8 +91,16 @@ class FirJavaElementFinder( if (topLevelClass.isRoot) break val classId = ClassId.topLevel(topLevelClass) - val firClass = firProviders.firstNotNullOfOrNull { it.getFirClassifierByFqName(classId) as? FirRegularClass } ?: continue + // 1. We could be asked to find class of kind "...MainKt" that was created from file "main.kt" + val firFile = firProviders.firstNotNullOfOrNull { it.getFirFilesByPackage(classId.packageFqName) } + ?.singleOrNull { classId.relativeClassName.asString() == it.name.removeSuffix(".kt").capitalizeAsciiOnly() + "Kt" } + if (firFile != null) { + val fileStub = createJavaFileStub(classId.packageFqName, psiManager) + return buildFileAsClassStub(firFile, classId, fileStub).psi + } + // 2. Find regular class + val firClass = firProviders.firstNotNullOfOrNull { it.getFirClassifierByFqName(classId) as? FirRegularClass } ?: continue val fileStub = createJavaFileStub(classId.packageFqName, psiManager) val topLevelResult = buildStub(firClass, fileStub).psi val tail = fqName.tail(topLevelClass).pathSegments() @@ -104,6 +113,26 @@ class FirJavaElementFinder( return null } + private fun buildFileAsClassStub(firFile: FirFile, classId: ClassId, parent: StubElement<*>): PsiClassStub<*> { + val stub = PsiClassStubImpl( + JavaStubElementTypes.CLASS, parent, classId.asSingleFqName().asString(), classId.relativeClassName.asString(), null, + PsiClassStubImpl.packFlags( + false, false, false, false, false, false, false, + false, false, false, false + ) + ) + + firFile.declarations.filterIsInstance().forEach { + buildFieldStub(it, stub) + } + + PsiModifierListStubImpl(stub, ModifierFlags.PUBLIC_MASK or ModifierFlags.FINAL_MASK) + PsiTypeParameterListStubImpl(stub) + newReferenceList(JavaStubElementTypes.EXTENDS_LIST, stub, ArrayUtil.EMPTY_STRING_ARRAY) + newReferenceList(JavaStubElementTypes.IMPLEMENTS_LIST, stub, ArrayUtil.EMPTY_STRING_ARRAY) + return stub + } + private fun buildStub(firClass: FirRegularClass, parent: StubElement<*>): PsiClassStub<*> { val classId = firClass.classId val stub = PsiClassStubImpl( @@ -121,12 +150,7 @@ class FirJavaElementFinder( // Note: we must store companion properties in outer clas because java resolver will not find it other way. val companionProperties = firClass.companionObjectSymbol?.declarationSymbols?.map { it.fir }?.filterIsInstance() ?: emptyList() (classProperties + companionProperties).forEach { - // TODO correct type info - val psiField = PsiFieldStubImpl( - stub, it.name.identifier, TypeInfo.fromString("int"), propertyEvaluator?.invoke(it), - PsiFieldStubImpl.packFlags(false, false, false, false) - ) - PsiModifierListStubImpl(psiField, ModifierFlags.PUBLIC_MASK + ModifierFlags.FINAL_MASK + ModifierFlags.STATIC_MASK) + buildFieldStub(it, stub) } PsiModifierListStubImpl(stub, firClass.packFlags()) @@ -150,6 +174,16 @@ class FirJavaElementFinder( return stub } + private fun buildFieldStub(firProperty: FirProperty, classStub: PsiClassStubImpl) { + // TODO correct type info + val propertyValue = propertyEvaluator?.invoke(firProperty) + val psiField = PsiFieldStubImpl( + classStub, firProperty.name.identifier, TypeInfo.fromString("int"), propertyValue, + PsiFieldStubImpl.packFlags(false, false, false, false) + ) + PsiModifierListStubImpl(psiField, ModifierFlags.PUBLIC_MASK + ModifierFlags.FINAL_MASK + ModifierFlags.STATIC_MASK) + } + } private fun FirRegularClass.resolveSupertypesOnAir(session: FirSession): List { diff --git a/compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt b/compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt new file mode 100644 index 00000000000..bc2ee80531f --- /dev/null +++ b/compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt @@ -0,0 +1,18 @@ +// TARGET_BACKEND: JVM +// FILE: Bar.java +package one.two; + +public class Bar { + public static final int BAR = MainKt.FOO + 1; +} + +// FILE: Main.kt +package one.two + +const val FOO = 1 + +const val BAZ = Bar.BAR + 1 + +fun box(): String { + return "OK" +} diff --git a/compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt b/compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt similarity index 100% rename from compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt rename to compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt diff --git a/compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt b/compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt new file mode 100644 index 00000000000..32bdfa070e1 --- /dev/null +++ b/compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt @@ -0,0 +1,31 @@ +// TARGET_BACKEND: JVM +// FILE: Bar.java +package one.two; + +public class Bar { + public static final int BAR = Foo.FOO + 1; +} + +// FILE: Boo.java +package one.two; + +public class Boo { + public static final int BOO = Foo.BAZ + 1; +} + +// FILE: Main.kt +package one.two + +class Foo { + companion object { + const val FOO = 1 + + const val BAZ = Bar.BAR + 1 + + const val DOO = Boo.BOO + 1 + } +} + +fun box(): String { + return "OK" +} 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 08a1a5c848e..24a6fa5f1c6 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 @@ -27794,6 +27794,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { @TestMetadata("compiler/testData/codegen/box/involvesIrInterpreter") @TestDataPath("$PROJECT_ROOT") public class InvolvesIrInterpreter { + @Test + @TestMetadata("accessTopLevelConstFromJava.kt") + public void testAccessTopLevelConstFromJava() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt"); + } + @Test public void testAllFilesPresentInInvolvesIrInterpreter() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/involvesIrInterpreter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); @@ -27824,9 +27830,15 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { } @Test - @TestMetadata("kt57802.kt") - public void testKt57802() throws Exception { - runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt"); + @TestMetadata("kt57802_1.kt") + public void testKt57802_1() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt"); + } + + @Test + @TestMetadata("kt57802_2.kt") + public void testKt57802_2() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt"); } @Test 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 17466a31193..025922282f3 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 @@ -29066,6 +29066,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes @TestMetadata("compiler/testData/codegen/box/involvesIrInterpreter") @TestDataPath("$PROJECT_ROOT") public class InvolvesIrInterpreter { + @Test + @TestMetadata("accessTopLevelConstFromJava.kt") + public void testAccessTopLevelConstFromJava() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt"); + } + @Test public void testAllFilesPresentInInvolvesIrInterpreter() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/involvesIrInterpreter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); @@ -29168,9 +29174,15 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes } @Test - @TestMetadata("kt57802.kt") - public void testKt57802() throws Exception { - runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt"); + @TestMetadata("kt57802_1.kt") + public void testKt57802_1() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt"); + } + + @Test + @TestMetadata("kt57802_2.kt") + public void testKt57802_2() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt"); } @Test 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 f89e1ef3be4..1222d42dd42 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 @@ -29066,6 +29066,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack @TestMetadata("compiler/testData/codegen/box/involvesIrInterpreter") @TestDataPath("$PROJECT_ROOT") public class InvolvesIrInterpreter { + @Test + @TestMetadata("accessTopLevelConstFromJava.kt") + public void testAccessTopLevelConstFromJava() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt"); + } + @Test public void testAllFilesPresentInInvolvesIrInterpreter() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/involvesIrInterpreter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); @@ -29168,9 +29174,15 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack } @Test - @TestMetadata("kt57802.kt") - public void testKt57802() throws Exception { - runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt"); + @TestMetadata("kt57802_1.kt") + public void testKt57802_1() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt"); + } + + @Test + @TestMetadata("kt57802_2.kt") + public void testKt57802_2() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt"); } @Test diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index ef327b0b026..6926a594302 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -24546,6 +24546,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); } + @TestMetadata("accessTopLevelConstFromJava.kt") + public void testAccessTopLevelConstFromJava() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/accessTopLevelConstFromJava.kt"); + } + public void testAllFilesPresentInInvolvesIrInterpreter() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/involvesIrInterpreter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } @@ -24625,9 +24630,14 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57313.kt"); } - @TestMetadata("kt57802.kt") - public void testKt57802() throws Exception { - runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802.kt"); + @TestMetadata("kt57802_1.kt") + public void testKt57802_1() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_1.kt"); + } + + @TestMetadata("kt57802_2.kt") + public void testKt57802_2() throws Exception { + runTest("compiler/testData/codegen/box/involvesIrInterpreter/kt57802_2.kt"); } @TestMetadata("kt58005.kt")