[K/N] Run irText tests for K2/Native

^KT-58240
diff --git a/compiler/fir/native/src/org/jetbrains/kotlin/fir/backend/native/FirNativeKotlinMangler.kt b/compiler/fir/native/src/org/jetbrains/kotlin/fir/backend/native/FirNativeKotlinMangler.kt
index 76677e3..424f892 100644
--- a/compiler/fir/native/src/org/jetbrains/kotlin/fir/backend/native/FirNativeKotlinMangler.kt
+++ b/compiler/fir/native/src/org/jetbrains/kotlin/fir/backend/native/FirNativeKotlinMangler.kt
@@ -26,7 +26,7 @@
 import org.jetbrains.kotlin.fir.types.toSymbol
 import org.jetbrains.kotlin.name.NativeRuntimeNames
 
-class FirNativeKotlinMangler : FirMangler() {
+object FirNativeKotlinMangler : FirMangler() {
     override fun getMangleComputer(mode: MangleMode, compatibleMode: Boolean): KotlinMangleComputer<FirDeclaration> {
         return FirNativeKotlinMangleComputer(StringBuilder(256), mode)
     }
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt
index 9a91834..78f3e1e 100644
--- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt
+++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Fir2Ir.kt
@@ -88,7 +88,7 @@
             IrGenerationExtension.getInstances(config.project),
             signatureComposer = DescriptorSignatureComposerStub(KonanManglerDesc),
             irMangler = KonanManglerIr,
-            firMangler = FirNativeKotlinMangler(),
+            firMangler = FirNativeKotlinMangler,
             visibilityConverter = Fir2IrVisibilityConverter.Default,
             kotlinBuiltIns = builtInsModule ?: DefaultBuiltIns.Instance,
             actualizerTypeContextProvider = ::IrTypeSystemContextImpl,
@@ -97,7 +97,7 @@
                 irModuleFragment.acceptVoid(
                         ManglerChecker(
                                 KonanManglerIr,
-                                Ir2FirManglerAdapter(FirNativeKotlinMangler()),
+                                Ir2FirManglerAdapter(FirNativeKotlinMangler),
                                 needsChecking = { false }, // FIXME(KT-60648): Re-enable
                         )
                 )
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirLightTreeNativeIrTextTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirLightTreeNativeIrTextTestGenerated.java
new file mode 100644
index 0000000..c7e39ad
--- /dev/null
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirLightTreeNativeIrTextTestGenerated.java
@@ -0,0 +1,2917 @@
+/*
+ * 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.konan.blackboxtest;
+
+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.generators.tests.GenerateNativeTestsKt}. DO NOT MODIFY MANUALLY */
+@SuppressWarnings("all")
+@TestMetadata("compiler/testData/ir/irText")
+@TestDataPath("$PROJECT_ROOT")
+public class FirLightTreeNativeIrTextTestGenerated extends AbstractFirLightTreeNativeIrTextTest {
+    @Test
+    public void testAllFilesPresentInIrText() throws Exception {
+        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/classes")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Classes {
+        @Test
+        @TestMetadata("47424.kt")
+        public void test47424() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/47424.kt");
+        }
+
+        @Test
+        @TestMetadata("abstractMembers.kt")
+        public void testAbstractMembers() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/abstractMembers.kt");
+        }
+
+        @Test
+        public void testAllFilesPresentInClasses() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/classes"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("annotationClasses.kt")
+        public void testAnnotationClasses() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/annotationClasses.kt");
+        }
+
+        @Test
+        @TestMetadata("argumentReorderingInDelegatingConstructorCall.kt")
+        public void testArgumentReorderingInDelegatingConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/argumentReorderingInDelegatingConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("clashingFakeOverrideSignatures.kt")
+        public void testClashingFakeOverrideSignatures() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/clashingFakeOverrideSignatures.kt");
+        }
+
+        @Test
+        @TestMetadata("classMembers.kt")
+        public void testClassMembers() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/classMembers.kt");
+        }
+
+        @Test
+        @TestMetadata("classes.kt")
+        public void testClasses() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/classes.kt");
+        }
+
+        @Test
+        @TestMetadata("companionObject.kt")
+        public void testCompanionObject() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/companionObject.kt");
+        }
+
+        @Test
+        @TestMetadata("declarationOrder.kt")
+        public void testDeclarationOrder() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/declarationOrder.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatedGenericImplementation.kt")
+        public void testDelegatedGenericImplementation() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatedGenericImplementation.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatedImplementation.kt")
+        public void testDelegatedImplementation() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatedImplementation.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatedImplementationWithExplicitOverride.kt")
+        public void testDelegatedImplementationWithExplicitOverride() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatedImplementationWithExplicitOverride.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatingConstructorCallToTypeAliasConstructor.kt")
+        public void testDelegatingConstructorCallToTypeAliasConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatingConstructorCallToTypeAliasConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatingConstructorCallsInSecondaryConstructors.kt")
+        public void testDelegatingConstructorCallsInSecondaryConstructors() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatingConstructorCallsInSecondaryConstructors.kt");
+        }
+
+        @Test
+        @TestMetadata("enum.kt")
+        public void testEnum() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/enum.kt");
+        }
+
+        @Test
+        @TestMetadata("enumClassModality.kt")
+        public void testEnumClassModality() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/enumClassModality.kt");
+        }
+
+        @Test
+        @TestMetadata("enumWithMultipleCtors.kt")
+        public void testEnumWithMultipleCtors() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/enumWithMultipleCtors.kt");
+        }
+
+        @Test
+        @TestMetadata("enumWithSecondaryCtor.kt")
+        public void testEnumWithSecondaryCtor() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/enumWithSecondaryCtor.kt");
+        }
+
+        @Test
+        @TestMetadata("initBlock.kt")
+        public void testInitBlock() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/initBlock.kt");
+        }
+
+        @Test
+        @TestMetadata("initVal.kt")
+        public void testInitVal() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/initVal.kt");
+        }
+
+        @Test
+        @TestMetadata("initValInLambda.kt")
+        public void testInitValInLambda() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/initValInLambda.kt");
+        }
+
+        @Test
+        @TestMetadata("initVar.kt")
+        public void testInitVar() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/initVar.kt");
+        }
+
+        @Test
+        @TestMetadata("inlineClass.kt")
+        public void testInlineClass() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/inlineClass.kt");
+        }
+
+        @Test
+        @TestMetadata("inlineClassSyntheticMethods.kt")
+        public void testInlineClassSyntheticMethods() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/inlineClassSyntheticMethods.kt");
+        }
+
+        @Test
+        @TestMetadata("innerClass.kt")
+        public void testInnerClass() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/innerClass.kt");
+        }
+
+        @Test
+        @TestMetadata("innerClassWithDelegatingConstructor.kt")
+        public void testInnerClassWithDelegatingConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/innerClassWithDelegatingConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("kt19306.kt")
+        public void testKt19306() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/kt19306.kt");
+        }
+
+        @Test
+        @TestMetadata("localClasses.kt")
+        public void testLocalClasses() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/localClasses.kt");
+        }
+
+        @Test
+        @TestMetadata("objectLiteralExpressions.kt")
+        public void testObjectLiteralExpressions() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/objectLiteralExpressions.kt");
+        }
+
+        @Test
+        @TestMetadata("objectWithInitializers.kt")
+        public void testObjectWithInitializers() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/objectWithInitializers.kt");
+        }
+
+        @Test
+        @TestMetadata("outerClassAccess.kt")
+        public void testOuterClassAccess() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/outerClassAccess.kt");
+        }
+
+        @Test
+        @TestMetadata("primaryConstructor.kt")
+        public void testPrimaryConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/primaryConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("primaryConstructorWithSuperConstructorCall.kt")
+        public void testPrimaryConstructorWithSuperConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/primaryConstructorWithSuperConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("qualifiedSuperCalls.kt")
+        public void testQualifiedSuperCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/qualifiedSuperCalls.kt");
+        }
+
+        @Test
+        @TestMetadata("sealedClasses.kt")
+        public void testSealedClasses() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/sealedClasses.kt");
+        }
+
+        @Test
+        @TestMetadata("secondaryConstructorWithInitializersFromClassBody.kt")
+        public void testSecondaryConstructorWithInitializersFromClassBody() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/secondaryConstructorWithInitializersFromClassBody.kt");
+        }
+
+        @Test
+        @TestMetadata("secondaryConstructors.kt")
+        public void testSecondaryConstructors() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/secondaryConstructors.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCastInValInitialization.kt")
+        public void testSmartCastInValInitialization() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/smartCastInValInitialization.kt");
+        }
+
+        @Test
+        @TestMetadata("superCalls.kt")
+        public void testSuperCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/superCalls.kt");
+        }
+
+        @Test
+        @TestMetadata("superCallsComposed.kt")
+        public void testSuperCallsComposed() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/superCallsComposed.kt");
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/classes/dataClasses")
+        @TestDataPath("$PROJECT_ROOT")
+        public class DataClasses {
+            @Test
+            public void testAllFilesPresentInDataClasses() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/classes/dataClasses"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("dataClassWithArrayMembers.kt")
+            public void testDataClassWithArrayMembers() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/dataClassWithArrayMembers.kt");
+            }
+
+            @Test
+            @TestMetadata("dataClasses.kt")
+            public void testDataClasses() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/dataClasses.kt");
+            }
+
+            @Test
+            @TestMetadata("dataClassesGeneric.kt")
+            public void testDataClassesGeneric() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/dataClassesGeneric.kt");
+            }
+
+            @Test
+            @TestMetadata("dataObject.kt")
+            public void testDataObject() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/dataObject.kt");
+            }
+
+            @Test
+            @TestMetadata("delegationInSealed.kt")
+            public void testDelegationInSealed() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/delegationInSealed.kt");
+            }
+
+            @Test
+            @TestMetadata("kt31649.kt")
+            public void testKt31649() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/kt31649.kt");
+            }
+
+            @Test
+            @TestMetadata("kt49936.kt")
+            public void testKt49936() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/kt49936.kt");
+            }
+
+            @Test
+            @TestMetadata("lambdaInDataClassDefaultParameter.kt")
+            public void testLambdaInDataClassDefaultParameter() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/lambdaInDataClassDefaultParameter.kt");
+            }
+
+            @Test
+            @TestMetadata("openDataClass.kt")
+            public void testOpenDataClass() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/openDataClass.kt");
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/declarations")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Declarations {
+        @Test
+        public void testAllFilesPresentInDeclarations() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("catchParameterInTopLevelProperty.kt")
+        public void testCatchParameterInTopLevelProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/catchParameterInTopLevelProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("classLevelProperties.kt")
+        public void testClassLevelProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/classLevelProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("constValInitializers.kt")
+        public void testConstValInitializers() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/constValInitializers.kt");
+        }
+
+        @Test
+        @TestMetadata("defaultArguments.kt")
+        public void testDefaultArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/defaultArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatedProperties.kt")
+        public void testDelegatedProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/delegatedProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("deprecatedProperty.kt")
+        public void testDeprecatedProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/deprecatedProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("extensionProperties.kt")
+        public void testExtensionProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/extensionProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("fakeOverrides.kt")
+        public void testFakeOverrides() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/fakeOverrides.kt");
+        }
+
+        @Test
+        @TestMetadata("fileWithTypeAliasesOnly.kt")
+        public void testFileWithTypeAliasesOnly() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/fileWithTypeAliasesOnly.kt");
+        }
+
+        @Test
+        @TestMetadata("genericDelegatedProperty.kt")
+        public void testGenericDelegatedProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/genericDelegatedProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("inlineCollectionOfInlineClass.kt")
+        public void testInlineCollectionOfInlineClass() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/inlineCollectionOfInlineClass.kt");
+        }
+
+        @Test
+        @TestMetadata("interfaceProperties.kt")
+        public void testInterfaceProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/interfaceProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("kt27005.kt")
+        public void testKt27005() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt27005.kt");
+        }
+
+        @Test
+        @TestMetadata("kt35550.kt")
+        public void testKt35550() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt35550.kt");
+        }
+
+        @Test
+        @TestMetadata("kt45308.kt")
+        public void testKt45308() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt45308.kt");
+        }
+
+        @Test
+        @TestMetadata("kt47527.kt")
+        public void testKt47527() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt47527.kt");
+        }
+
+        @Test
+        @TestMetadata("kt52677.kt")
+        public void testKt52677() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt52677.kt");
+        }
+
+        @Test
+        @TestMetadata("localClassWithOverrides.kt")
+        public void testLocalClassWithOverrides() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/localClassWithOverrides.kt");
+        }
+
+        @Test
+        @TestMetadata("localDelegatedProperties.kt")
+        public void testLocalDelegatedProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/localDelegatedProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("localVarInDoWhile.kt")
+        public void testLocalVarInDoWhile() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/localVarInDoWhile.kt");
+        }
+
+        @Test
+        @TestMetadata("packageLevelProperties.kt")
+        public void testPackageLevelProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/packageLevelProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("primaryCtorDefaultArguments.kt")
+        public void testPrimaryCtorDefaultArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/primaryCtorDefaultArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("primaryCtorProperties.kt")
+        public void testPrimaryCtorProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/primaryCtorProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("typeAlias.kt")
+        public void testTypeAlias() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/typeAlias.kt");
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/annotations")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Annotations {
+            @Test
+            public void testAllFilesPresentInAnnotations() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("annotationOnClassWithInitializer.kt")
+            public void testAnnotationOnClassWithInitializer() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationOnClassWithInitializer.kt");
+            }
+
+            @Test
+            @TestMetadata("annotationsInAnnotationArguments.kt")
+            public void testAnnotationsInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationsInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("annotationsOnDelegatedMembers.kt")
+            public void testAnnotationsOnDelegatedMembers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.kt");
+            }
+
+            @Test
+            @TestMetadata("annotationsWithDefaultParameterValues.kt")
+            public void testAnnotationsWithDefaultParameterValues() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationsWithDefaultParameterValues.kt");
+            }
+
+            @Test
+            @TestMetadata("annotationsWithVarargParameters.kt")
+            public void testAnnotationsWithVarargParameters() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationsWithVarargParameters.kt");
+            }
+
+            @Test
+            @TestMetadata("arrayInAnnotationArguments.kt")
+            public void testArrayInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/arrayInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("classLiteralInAnnotation.kt")
+            public void testClassLiteralInAnnotation() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/classLiteralInAnnotation.kt");
+            }
+
+            @Test
+            @TestMetadata("classesWithAnnotations.kt")
+            public void testClassesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("constExpressionsInAnnotationArguments.kt")
+            public void testConstExpressionsInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/constExpressionsInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("constructorsWithAnnotations.kt")
+            public void testConstructorsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/constructorsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("delegateFieldWithAnnotations.kt")
+            public void testDelegateFieldWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/delegateFieldWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("delegatedPropertyAccessorsWithAnnotations.kt")
+            public void testDelegatedPropertyAccessorsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/delegatedPropertyAccessorsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("enumEntriesWithAnnotations.kt")
+            public void testEnumEntriesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("enumsInAnnotationArguments.kt")
+            public void testEnumsInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("fieldsWithAnnotations.kt")
+            public void testFieldsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/fieldsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("fileAnnotations.kt")
+            public void testFileAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/fileAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("functionsWithAnnotations.kt")
+            public void testFunctionsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/functionsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("genericAnnotationClasses.kt")
+            public void testGenericAnnotationClasses() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/genericAnnotationClasses.kt");
+            }
+
+            @Test
+            @TestMetadata("inheritingDeprecation.kt")
+            public void testInheritingDeprecation() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.kt");
+            }
+
+            @Test
+            @TestMetadata("localDelegatedPropertiesWithAnnotations.kt")
+            public void testLocalDelegatedPropertiesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/localDelegatedPropertiesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("multipleAnnotationsInSquareBrackets.kt")
+            public void testMultipleAnnotationsInSquareBrackets() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/multipleAnnotationsInSquareBrackets.kt");
+            }
+
+            @Test
+            @TestMetadata("primaryConstructorParameterWithAnnotations.kt")
+            public void testPrimaryConstructorParameterWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/primaryConstructorParameterWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("propertiesWithAnnotations.kt")
+            public void testPropertiesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/propertiesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("propertyAccessorsFromClassHeaderWithAnnotations.kt")
+            public void testPropertyAccessorsFromClassHeaderWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/propertyAccessorsFromClassHeaderWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("propertyAccessorsWithAnnotations.kt")
+            public void testPropertyAccessorsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/propertyAccessorsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("propertySetterParameterWithAnnotations.kt")
+            public void testPropertySetterParameterWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/propertySetterParameterWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("receiverParameterWithAnnotations.kt")
+            public void testReceiverParameterWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/receiverParameterWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("spreadOperatorInAnnotationArguments.kt")
+            public void testSpreadOperatorInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("typeAliasesWithAnnotations.kt")
+            public void testTypeAliasesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/typeAliasesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParametersWithAnnotations.kt")
+            public void testTypeParametersWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/typeParametersWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("valueParametersWithAnnotations.kt")
+            public void testValueParametersWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/valueParametersWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("varargsInAnnotationArguments.kt")
+            public void testVarargsInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/varargsInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("variablesWithAnnotations.kt")
+            public void testVariablesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/variablesWithAnnotations.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/contextReceivers")
+        @TestDataPath("$PROJECT_ROOT")
+        public class ContextReceivers {
+            @Test
+            public void testAllFilesPresentInContextReceivers() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/contextReceivers"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("arrayAccessCompositeOperators.kt")
+            public void testArrayAccessCompositeOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/arrayAccessCompositeOperators.kt");
+            }
+
+            @Test
+            @TestMetadata("arrayAccessOperators.kt")
+            public void testArrayAccessOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/arrayAccessOperators.kt");
+            }
+
+            @Test
+            @TestMetadata("class.kt")
+            public void testClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/class.kt");
+            }
+
+            @Test
+            @TestMetadata("compoundAssignmentOperators.kt")
+            public void testCompoundAssignmentOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/compoundAssignmentOperators.kt");
+            }
+
+            @Test
+            @TestMetadata("contextReceiverMethod.kt")
+            public void testContextReceiverMethod() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/contextReceiverMethod.kt");
+            }
+
+            @Test
+            @TestMetadata("contextualFunctionConversion.kt")
+            public void testContextualFunctionConversion() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/contextualFunctionConversion.kt");
+            }
+
+            @Test
+            @TestMetadata("contextualInlineCall.kt")
+            public void testContextualInlineCall() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.kt");
+            }
+
+            @Test
+            @TestMetadata("contextualPrimaryConstructorWithParams.kt")
+            public void testContextualPrimaryConstructorWithParams() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/contextualPrimaryConstructorWithParams.kt");
+            }
+
+            @Test
+            @TestMetadata("delegatedPropertiesOperators.kt")
+            public void testDelegatedPropertiesOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/delegatedPropertiesOperators.kt");
+            }
+
+            @Test
+            @TestMetadata("function.kt")
+            public void testFunction() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/function.kt");
+            }
+
+            @Test
+            @TestMetadata("functionalType.kt")
+            public void testFunctionalType() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/functionalType.kt");
+            }
+
+            @Test
+            @TestMetadata("genericOuterClass.kt")
+            public void testGenericOuterClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/genericOuterClass.kt");
+            }
+
+            @Test
+            @TestMetadata("iteratorOperator.kt")
+            public void testIteratorOperator() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/iteratorOperator.kt");
+            }
+
+            @Test
+            @TestMetadata("kt52791.kt")
+            public void testKt52791() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/kt52791.kt");
+            }
+
+            @Test
+            @TestMetadata("lazy.kt")
+            public void testLazy() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/lazy.kt");
+            }
+
+            @Test
+            @TestMetadata("overloadPriority.kt")
+            public void testOverloadPriority() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/overloadPriority.kt");
+            }
+
+            @Test
+            @TestMetadata("overloading.kt")
+            public void testOverloading() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/overloading.kt");
+            }
+
+            @Test
+            @TestMetadata("passingLambdaToContextualParam.kt")
+            public void testPassingLambdaToContextualParam() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/passingLambdaToContextualParam.kt");
+            }
+
+            @Test
+            @TestMetadata("plusMatrix.kt")
+            public void testPlusMatrix() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/plusMatrix.kt");
+            }
+
+            @Test
+            @TestMetadata("property.kt")
+            public void testProperty() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/property.kt");
+            }
+
+            @Test
+            @TestMetadata("thisWithCustomLabel.kt")
+            public void testThisWithCustomLabel() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/thisWithCustomLabel.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParameterAsContextReceiver.kt")
+            public void testTypeParameterAsContextReceiver() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/typeParameterAsContextReceiver.kt");
+            }
+
+            @Test
+            @TestMetadata("unaryOperators.kt")
+            public void testUnaryOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/unaryOperators.kt");
+            }
+
+            @Nested
+            @TestMetadata("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP")
+            @TestDataPath("$PROJECT_ROOT")
+            public class FromKEEP {
+                @Test
+                public void testAllFilesPresentInFromKEEP() throws Exception {
+                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+                }
+
+                @Test
+                @TestMetadata("canvas.kt")
+                public void testCanvas() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/canvas.kt");
+                }
+
+                @Test
+                @TestMetadata("compareTo.kt")
+                public void testCompareTo() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/compareTo.kt");
+                }
+
+                @Test
+                @TestMetadata("dp.kt")
+                public void testDp() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/dp.kt");
+                }
+
+                @Test
+                @TestMetadata("functionalType.kt")
+                public void testFunctionalType() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/functionalType.kt");
+                }
+
+                @Test
+                @TestMetadata("monoidSum.kt")
+                public void testMonoidSum() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/monoidSum.kt");
+                }
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/delegate")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Delegate {
+            @Test
+            public void testAllFilesPresentInDelegate() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/delegate"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("delegationEvaluationOrder1.kt")
+            public void testDelegationEvaluationOrder1() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/delegate/delegationEvaluationOrder1.kt");
+            }
+
+            @Test
+            @TestMetadata("delegationEvaluationOrder2.kt")
+            public void testDelegationEvaluationOrder2() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/delegate/delegationEvaluationOrder2.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/jvmRecord")
+        @TestDataPath("$PROJECT_ROOT")
+        public class JvmRecord {
+            @Test
+            public void testAllFilesPresentInJvmRecord() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/jvmRecord"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/multiplatform")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Multiplatform {
+            @Test
+            public void testAllFilesPresentInMultiplatform() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/multiplatform"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("expectClassInherited.kt")
+            public void testExpectClassInherited() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectClassInherited.kt");
+            }
+
+            @Test
+            @TestMetadata("expectIntersectionOverride.kt")
+            public void testExpectIntersectionOverride() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectIntersectionOverride.kt");
+            }
+
+            @Test
+            @TestMetadata("expectMemberInNotExpectClass.kt")
+            public void testExpectMemberInNotExpectClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectMemberInNotExpectClass.kt");
+            }
+
+            @Test
+            @TestMetadata("expectMemberInNotExpectClassFir.kt")
+            public void testExpectMemberInNotExpectClassFir() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectMemberInNotExpectClassFir.kt");
+            }
+
+            @Test
+            @TestMetadata("expectedEnumClass.kt")
+            public void testExpectedEnumClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.kt");
+            }
+
+            @Test
+            @TestMetadata("expectedEnumClass2.kt")
+            public void testExpectedEnumClass2() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass2.kt");
+            }
+
+            @Test
+            @TestMetadata("expectedSealedClass.kt")
+            public void testExpectedSealedClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectedSealedClass.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/parameters")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Parameters {
+            @Test
+            public void testAllFilesPresentInParameters() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/parameters"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("class.kt")
+            public void testClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/class.kt");
+            }
+
+            @Test
+            @TestMetadata("constructor.kt")
+            public void testConstructor() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/constructor.kt");
+            }
+
+            @Test
+            @TestMetadata("dataClassMembers.kt")
+            public void testDataClassMembers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/dataClassMembers.kt");
+            }
+
+            @Test
+            @TestMetadata("defaultPropertyAccessors.kt")
+            public void testDefaultPropertyAccessors() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/defaultPropertyAccessors.kt");
+            }
+
+            @Test
+            @TestMetadata("delegatedMembers.kt")
+            public void testDelegatedMembers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/delegatedMembers.kt");
+            }
+
+            @Test
+            @TestMetadata("fun.kt")
+            public void testFun() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/fun.kt");
+            }
+
+            @Test
+            @TestMetadata("genericInnerClass.kt")
+            public void testGenericInnerClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/genericInnerClass.kt");
+            }
+
+            @Test
+            @TestMetadata("lambdas.kt")
+            public void testLambdas() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/lambdas.kt");
+            }
+
+            @Test
+            @TestMetadata("localFun.kt")
+            public void testLocalFun() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/localFun.kt");
+            }
+
+            @Test
+            @TestMetadata("propertyAccessors.kt")
+            public void testPropertyAccessors() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/propertyAccessors.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParameterBeforeBound.kt")
+            public void testTypeParameterBeforeBound() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/typeParameterBeforeBound.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParameterBoundedBySubclass.kt")
+            public void testTypeParameterBoundedBySubclass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/typeParameterBoundedBySubclass.kt");
+            }
+
+            @Test
+            @TestMetadata("useNextParamInLambda.kt")
+            public void testUseNextParamInLambda() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/useNextParamInLambda.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/provideDelegate")
+        @TestDataPath("$PROJECT_ROOT")
+        public class ProvideDelegate {
+            @Test
+            public void testAllFilesPresentInProvideDelegate() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/provideDelegate"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("differentReceivers.kt")
+            public void testDifferentReceivers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/differentReceivers.kt");
+            }
+
+            @Test
+            @TestMetadata("local.kt")
+            public void testLocal() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/local.kt");
+            }
+
+            @Test
+            @TestMetadata("localDifferentReceivers.kt")
+            public void testLocalDifferentReceivers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/localDifferentReceivers.kt");
+            }
+
+            @Test
+            @TestMetadata("member.kt")
+            public void testMember() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/member.kt");
+            }
+
+            @Test
+            @TestMetadata("memberExtension.kt")
+            public void testMemberExtension() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/memberExtension.kt");
+            }
+
+            @Test
+            @TestMetadata("topLevel.kt")
+            public void testTopLevel() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/topLevel.kt");
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/errors")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Errors {
+        @Test
+        public void testAllFilesPresentInErrors() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/errors"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("suppressedNonPublicCall.kt")
+        public void testSuppressedNonPublicCall() throws Exception {
+            runTest("compiler/testData/ir/irText/errors/suppressedNonPublicCall.kt");
+        }
+
+        @Test
+        @TestMetadata("unresolvedReference.kt")
+        public void testUnresolvedReference() throws Exception {
+            runTest("compiler/testData/ir/irText/errors/unresolvedReference.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/expressions")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Expressions {
+        @Test
+        public void testAllFilesPresentInExpressions() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("argumentMappedWithError.kt")
+        public void testArgumentMappedWithError() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/argumentMappedWithError.kt");
+        }
+
+        @Test
+        @TestMetadata("arrayAccess.kt")
+        public void testArrayAccess() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/arrayAccess.kt");
+        }
+
+        @Test
+        @TestMetadata("arrayAssignment.kt")
+        public void testArrayAssignment() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/arrayAssignment.kt");
+        }
+
+        @Test
+        @TestMetadata("arrayAugmentedAssignment1.kt")
+        public void testArrayAugmentedAssignment1() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/arrayAugmentedAssignment1.kt");
+        }
+
+        @Test
+        @TestMetadata("arrayAugmentedAssignment2.kt")
+        public void testArrayAugmentedAssignment2() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/arrayAugmentedAssignment2.kt");
+        }
+
+        @Test
+        @TestMetadata("assignments.kt")
+        public void testAssignments() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/assignments.kt");
+        }
+
+        @Test
+        @TestMetadata("augmentedAssignment1.kt")
+        public void testAugmentedAssignment1() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/augmentedAssignment1.kt");
+        }
+
+        @Test
+        @TestMetadata("augmentedAssignment2.kt")
+        public void testAugmentedAssignment2() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/augmentedAssignment2.kt");
+        }
+
+        @Test
+        @TestMetadata("augmentedAssignmentWithExpression.kt")
+        public void testAugmentedAssignmentWithExpression() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/augmentedAssignmentWithExpression.kt");
+        }
+
+        @Test
+        @TestMetadata("badBreakContinue.kt")
+        public void testBadBreakContinue() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/badBreakContinue.kt");
+        }
+
+        @Test
+        @TestMetadata("badInlinedBreakContinue.kt")
+        public void testBadInlinedBreakContinue() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt");
+        }
+
+        @Test
+        @TestMetadata("bangbang.kt")
+        public void testBangbang() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/bangbang.kt");
+        }
+
+        @Test
+        @TestMetadata("booleanConstsInAndAndOrOr.kt")
+        public void testBooleanConstsInAndAndOrOr() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/booleanConstsInAndAndOrOr.kt");
+        }
+
+        @Test
+        @TestMetadata("booleanOperators.kt")
+        public void testBooleanOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/booleanOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("boundCallableReferences.kt")
+        public void testBoundCallableReferences() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/boundCallableReferences.kt");
+        }
+
+        @Test
+        @TestMetadata("boxOk.kt")
+        public void testBoxOk() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/boxOk.kt");
+        }
+
+        @Test
+        @TestMetadata("breakContinue.kt")
+        public void testBreakContinue() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/breakContinue.kt");
+        }
+
+        @Test
+        @TestMetadata("breakContinueInLoopHeader.kt")
+        public void testBreakContinueInLoopHeader() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/breakContinueInLoopHeader.kt");
+        }
+
+        @Test
+        @TestMetadata("breakContinueInWhen.kt")
+        public void testBreakContinueInWhen() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/breakContinueInWhen.kt");
+        }
+
+        @Test
+        @TestMetadata("builtinOperators.kt")
+        public void testBuiltinOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/builtinOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("callWithReorderedArguments.kt")
+        public void testCallWithReorderedArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/callWithReorderedArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("calls.kt")
+        public void testCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/calls.kt");
+        }
+
+        @Test
+        @TestMetadata("castToTypeParameter.kt")
+        public void testCastToTypeParameter() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/castToTypeParameter.kt");
+        }
+
+        @Test
+        @TestMetadata("catchParameterAccess.kt")
+        public void testCatchParameterAccess() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/catchParameterAccess.kt");
+        }
+
+        @Test
+        @TestMetadata("chainOfSafeCalls.kt")
+        public void testChainOfSafeCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt");
+        }
+
+        @Test
+        @TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
+        public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/chainedFunSuspendConversionForSimpleExpression.kt");
+        }
+
+        @Test
+        @TestMetadata("complexAugmentedAssignment.kt")
+        public void testComplexAugmentedAssignment() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/complexAugmentedAssignment.kt");
+        }
+
+        @Test
+        @TestMetadata("contructorCall.kt")
+        public void testContructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/contructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("conventionComparisons.kt")
+        public void testConventionComparisons() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/conventionComparisons.kt");
+        }
+
+        @Test
+        @TestMetadata("destructuring1.kt")
+        public void testDestructuring1() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/destructuring1.kt");
+        }
+
+        @Test
+        @TestMetadata("destructuringWithUnderscore.kt")
+        public void testDestructuringWithUnderscore() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/destructuringWithUnderscore.kt");
+        }
+
+        @Test
+        @TestMetadata("dotQualified.kt")
+        public void testDotQualified() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/dotQualified.kt");
+        }
+
+        @Test
+        @TestMetadata("elvis.kt")
+        public void testElvis() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/elvis.kt");
+        }
+
+        @Test
+        @TestMetadata("enumEntryAsReceiver.kt")
+        public void testEnumEntryAsReceiver() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/enumEntryAsReceiver.kt");
+        }
+
+        @Test
+        @TestMetadata("enumEntryReferenceFromEnumEntryClass.kt")
+        public void testEnumEntryReferenceFromEnumEntryClass() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt");
+        }
+
+        @Test
+        @TestMetadata("equality.kt")
+        public void testEquality() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/equality.kt");
+        }
+
+        @Test
+        @TestMetadata("exhaustiveWhenElseBranch.kt")
+        public void testExhaustiveWhenElseBranch() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/exhaustiveWhenElseBranch.kt");
+        }
+
+        @Test
+        @TestMetadata("extFunInvokeAsFun.kt")
+        public void testExtFunInvokeAsFun() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/extFunInvokeAsFun.kt");
+        }
+
+        @Test
+        @TestMetadata("extFunSafeInvoke.kt")
+        public void testExtFunSafeInvoke() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/extFunSafeInvoke.kt");
+        }
+
+        @Test
+        @TestMetadata("extensionPropertyGetterCall.kt")
+        public void testExtensionPropertyGetterCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/extensionPropertyGetterCall.kt");
+        }
+
+        @Test
+        @TestMetadata("field.kt")
+        public void testField() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/field.kt");
+        }
+
+        @Test
+        @TestMetadata("for.kt")
+        public void testFor() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/for.kt");
+        }
+
+        @Test
+        @TestMetadata("forWithBreakContinue.kt")
+        public void testForWithBreakContinue() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/forWithBreakContinue.kt");
+        }
+
+        @Test
+        @TestMetadata("forWithImplicitReceivers.kt")
+        public void testForWithImplicitReceivers() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/forWithImplicitReceivers.kt");
+        }
+
+        @Test
+        @TestMetadata("funImportedFromObject.kt")
+        public void testFunImportedFromObject() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/funImportedFromObject.kt");
+        }
+
+        @Test
+        @TestMetadata("funInterfaceConstructorReference.kt")
+        public void testFunInterfaceConstructorReference() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/funInterfaceConstructorReference.kt");
+        }
+
+        @Test
+        @TestMetadata("genericConstructorCallWithTypeArguments.kt")
+        public void testGenericConstructorCallWithTypeArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/genericConstructorCallWithTypeArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("genericPropertyCall.kt")
+        public void testGenericPropertyCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/genericPropertyCall.kt");
+        }
+
+        @Test
+        @TestMetadata("genericPropertyRef.kt")
+        public void testGenericPropertyRef() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/genericPropertyRef.kt");
+        }
+
+        @Test
+        @TestMetadata("identity.kt")
+        public void testIdentity() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/identity.kt");
+        }
+
+        @Test
+        @TestMetadata("ifElseIf.kt")
+        public void testIfElseIf() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/ifElseIf.kt");
+        }
+
+        @Test
+        @TestMetadata("implicitCastInReturnFromConstructor.kt")
+        public void testImplicitCastInReturnFromConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/implicitCastInReturnFromConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("implicitCastToNonNull.kt")
+        public void testImplicitCastToNonNull() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/implicitCastToNonNull.kt");
+        }
+
+        @Test
+        @TestMetadata("implicitCastToTypeParameter.kt")
+        public void testImplicitCastToTypeParameter() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.kt");
+        }
+
+        @Test
+        @TestMetadata("in.kt")
+        public void testIn() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/in.kt");
+        }
+
+        @Test
+        @TestMetadata("incrementDecrement.kt")
+        public void testIncrementDecrement() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/incrementDecrement.kt");
+        }
+
+        @Test
+        @TestMetadata("interfaceThisRef.kt")
+        public void testInterfaceThisRef() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/interfaceThisRef.kt");
+        }
+
+        @Test
+        @TestMetadata("kt16905.kt")
+        public void testKt16905() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt16905.kt");
+        }
+
+        @Test
+        @TestMetadata("kt23030.kt")
+        public void testKt23030() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt23030.kt");
+        }
+
+        @Test
+        @TestMetadata("kt24804.kt")
+        public void testKt24804() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt24804.kt");
+        }
+
+        @Test
+        @TestMetadata("kt27933.kt")
+        public void testKt27933() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt27933.kt");
+        }
+
+        @Test
+        @TestMetadata("kt28006.kt")
+        public void testKt28006() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt28006.kt");
+        }
+
+        @Test
+        @TestMetadata("kt28456.kt")
+        public void testKt28456() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt28456.kt");
+        }
+
+        @Test
+        @TestMetadata("kt28456a.kt")
+        public void testKt28456a() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt28456a.kt");
+        }
+
+        @Test
+        @TestMetadata("kt28456b.kt")
+        public void testKt28456b() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt28456b.kt");
+        }
+
+        @Test
+        @TestMetadata("kt30020.kt")
+        public void testKt30020() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt30020.kt");
+        }
+
+        @Test
+        @TestMetadata("kt30796.kt")
+        public void testKt30796() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt30796.kt");
+        }
+
+        @Test
+        @TestMetadata("kt35730.kt")
+        public void testKt35730() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt35730.kt");
+        }
+
+        @Test
+        @TestMetadata("kt36956.kt")
+        public void testKt36956() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt36956.kt");
+        }
+
+        @Test
+        @TestMetadata("kt36963.kt")
+        public void testKt36963() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt36963.kt");
+        }
+
+        @Test
+        @TestMetadata("kt37570.kt")
+        public void testKt37570() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt37570.kt");
+        }
+
+        @Test
+        @TestMetadata("kt37779.kt")
+        public void testKt37779() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt37779.kt");
+        }
+
+        @Test
+        @TestMetadata("kt45022.kt")
+        public void testKt45022() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt45022.kt");
+        }
+
+        @Test
+        @TestMetadata("kt47245.kt")
+        public void testKt47245() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt47245.kt");
+        }
+
+        @Test
+        @TestMetadata("kt47450.kt")
+        public void testKt47450() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt47450.kt");
+        }
+
+        @Test
+        @TestMetadata("kt48708.kt")
+        public void testKt48708() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt48708.kt");
+        }
+
+        @Test
+        @TestMetadata("kt48806.kt")
+        public void testKt48806() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt48806.kt");
+        }
+
+        @Test
+        @TestMetadata("kt49203.kt")
+        public void testKt49203() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt49203.kt");
+        }
+
+        @Test
+        @TestMetadata("kt50028.kt")
+        public void testKt50028() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt50028.kt");
+        }
+
+        @Test
+        @TestMetadata("kt51036.kt")
+        public void testKt51036() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt51036.kt");
+        }
+
+        @Test
+        @TestMetadata("lambdaInCAO.kt")
+        public void testLambdaInCAO() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/lambdaInCAO.kt");
+        }
+
+        @Test
+        @TestMetadata("literals.kt")
+        public void testLiterals() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/literals.kt");
+        }
+
+        @Test
+        @TestMetadata("memberTypeArguments.kt")
+        public void testMemberTypeArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/memberTypeArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("membersImportedFromObject.kt")
+        public void testMembersImportedFromObject() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/membersImportedFromObject.kt");
+        }
+
+        @Test
+        @TestMetadata("multipleSmartCasts.kt")
+        public void testMultipleSmartCasts() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/multipleSmartCasts.kt");
+        }
+
+        @Test
+        @TestMetadata("multipleThisReferences.kt")
+        public void testMultipleThisReferences() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/multipleThisReferences.kt");
+        }
+
+        @Test
+        @TestMetadata("objectAsCallable.kt")
+        public void testObjectAsCallable() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectAsCallable.kt");
+        }
+
+        @Test
+        @TestMetadata("objectByNameInsideObject.kt")
+        public void testObjectByNameInsideObject() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectByNameInsideObject.kt");
+        }
+
+        @Test
+        @TestMetadata("objectReference.kt")
+        public void testObjectReference() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectReference.kt");
+        }
+
+        @Test
+        @TestMetadata("objectReferenceInClosureInSuperConstructorCall.kt")
+        public void testObjectReferenceInClosureInSuperConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectReferenceInClosureInSuperConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("objectReferenceInFieldInitializer.kt")
+        public void testObjectReferenceInFieldInitializer() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectReferenceInFieldInitializer.kt");
+        }
+
+        @Test
+        @TestMetadata("outerClassInstanceReference.kt")
+        public void testOuterClassInstanceReference() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/outerClassInstanceReference.kt");
+        }
+
+        @Test
+        @TestMetadata("primitiveComparisons.kt")
+        public void testPrimitiveComparisons() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/primitiveComparisons.kt");
+        }
+
+        @Test
+        @TestMetadata("primitivesImplicitConversions.kt")
+        public void testPrimitivesImplicitConversions() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/primitivesImplicitConversions.kt");
+        }
+
+        @Test
+        @TestMetadata("references.kt")
+        public void testReferences() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/references.kt");
+        }
+
+        @Test
+        @TestMetadata("reflectionLiterals.kt")
+        public void testReflectionLiterals() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/reflectionLiterals.kt");
+        }
+
+        @Test
+        @TestMetadata("safeAssignment.kt")
+        public void testSafeAssignment() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/safeAssignment.kt");
+        }
+
+        @Test
+        @TestMetadata("safeCallWithIncrementDecrement.kt")
+        public void testSafeCallWithIncrementDecrement() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/safeCallWithIncrementDecrement.kt");
+        }
+
+        @Test
+        @TestMetadata("safeCalls.kt")
+        public void testSafeCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/safeCalls.kt");
+        }
+
+        @Test
+        @TestMetadata("signedToUnsignedConversions.kt")
+        public void testSignedToUnsignedConversions() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/signedToUnsignedConversions.kt");
+        }
+
+        @Test
+        @TestMetadata("simpleOperators.kt")
+        public void testSimpleOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/simpleOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("simpleUnaryOperators.kt")
+        public void testSimpleUnaryOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/simpleUnaryOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCasts.kt")
+        public void testSmartCasts() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/smartCasts.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCastsWithDestructuring.kt")
+        public void testSmartCastsWithDestructuring() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/smartCastsWithDestructuring.kt");
+        }
+
+        @Test
+        @TestMetadata("specializedTypeAliasConstructorCall.kt")
+        public void testSpecializedTypeAliasConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/specializedTypeAliasConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("stringComparisons.kt")
+        public void testStringComparisons() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/stringComparisons.kt");
+        }
+
+        @Test
+        @TestMetadata("stringPlus.kt")
+        public void testStringPlus() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/stringPlus.kt");
+        }
+
+        @Test
+        @TestMetadata("stringTemplates.kt")
+        public void testStringTemplates() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/stringTemplates.kt");
+        }
+
+        @Test
+        @TestMetadata("suspendConversionForExtensionFunction.kt")
+        public void testSuspendConversionForExtensionFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/suspendConversionForExtensionFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("suspendConversionInVararg.kt")
+        public void testSuspendConversionInVararg() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/suspendConversionInVararg.kt");
+        }
+
+        @Test
+        @TestMetadata("suspendConversionOnArbitraryExpression.kt")
+        public void testSuspendConversionOnArbitraryExpression() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.kt");
+        }
+
+        @Test
+        @TestMetadata("suspendConversionWithFunInterfaces.kt")
+        public void testSuspendConversionWithFunInterfaces() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/suspendConversionWithFunInterfaces.kt");
+        }
+
+        @Test
+        @TestMetadata("temporaryInEnumEntryInitializer.kt")
+        public void testTemporaryInEnumEntryInitializer() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.kt");
+        }
+
+        @Test
+        @TestMetadata("temporaryInInitBlock.kt")
+        public void testTemporaryInInitBlock() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/temporaryInInitBlock.kt");
+        }
+
+        @Test
+        @TestMetadata("thisOfGenericOuterClass.kt")
+        public void testThisOfGenericOuterClass() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/thisOfGenericOuterClass.kt");
+        }
+
+        @Test
+        @TestMetadata("thisRefToObjectInNestedClassConstructorCall.kt")
+        public void testThisRefToObjectInNestedClassConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/thisRefToObjectInNestedClassConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("thisReferenceBeforeClassDeclared.kt")
+        public void testThisReferenceBeforeClassDeclared() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/thisReferenceBeforeClassDeclared.kt");
+        }
+
+        @Test
+        @TestMetadata("throw.kt")
+        public void testThrow() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/throw.kt");
+        }
+
+        @Test
+        @TestMetadata("tryCatch.kt")
+        public void testTryCatch() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/tryCatch.kt");
+        }
+
+        @Test
+        @TestMetadata("tryCatchWithImplicitCast.kt")
+        public void testTryCatchWithImplicitCast() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/tryCatchWithImplicitCast.kt");
+        }
+
+        @Test
+        @TestMetadata("typeAliasConstructorReference.kt")
+        public void testTypeAliasConstructorReference() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/typeAliasConstructorReference.kt");
+        }
+
+        @Test
+        @TestMetadata("typeOperators.kt")
+        public void testTypeOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/typeOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("typeParameterClassLiteral.kt")
+        public void testTypeParameterClassLiteral() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/typeParameterClassLiteral.kt");
+        }
+
+        @Test
+        @TestMetadata("unsignedIntegerLiterals.kt")
+        public void testUnsignedIntegerLiterals() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/unsignedIntegerLiterals.kt");
+        }
+
+        @Test
+        @TestMetadata("useImportedMember.kt")
+        public void testUseImportedMember() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/useImportedMember.kt");
+        }
+
+        @Test
+        @TestMetadata("values.kt")
+        public void testValues() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/values.kt");
+        }
+
+        @Test
+        @TestMetadata("vararg.kt")
+        public void testVararg() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/vararg.kt");
+        }
+
+        @Test
+        @TestMetadata("varargWithImplicitCast.kt")
+        public void testVarargWithImplicitCast() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/varargWithImplicitCast.kt");
+        }
+
+        @Test
+        @TestMetadata("variableAsFunctionCall.kt")
+        public void testVariableAsFunctionCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/variableAsFunctionCall.kt");
+        }
+
+        @Test
+        @TestMetadata("variableAsFunctionCallWithGenerics.kt")
+        public void testVariableAsFunctionCallWithGenerics() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.kt");
+        }
+
+        @Test
+        @TestMetadata("when.kt")
+        public void testWhen() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/when.kt");
+        }
+
+        @Test
+        @TestMetadata("whenCoercedToUnit.kt")
+        public void testWhenCoercedToUnit() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenCoercedToUnit.kt");
+        }
+
+        @Test
+        @TestMetadata("whenElse.kt")
+        public void testWhenElse() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenElse.kt");
+        }
+
+        @Test
+        @TestMetadata("whenReturn.kt")
+        public void testWhenReturn() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenReturn.kt");
+        }
+
+        @Test
+        @TestMetadata("whenReturnUnit.kt")
+        public void testWhenReturnUnit() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenReturnUnit.kt");
+        }
+
+        @Test
+        @TestMetadata("whenSmartCastToEnum.kt")
+        public void testWhenSmartCastToEnum() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenSmartCastToEnum.kt");
+        }
+
+        @Test
+        @TestMetadata("whenUnusedExpression.kt")
+        public void testWhenUnusedExpression() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenUnusedExpression.kt");
+        }
+
+        @Test
+        @TestMetadata("whenWithSubjectVariable.kt")
+        public void testWhenWithSubjectVariable() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenWithSubjectVariable.kt");
+        }
+
+        @Test
+        @TestMetadata("whileDoWhile.kt")
+        public void testWhileDoWhile() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whileDoWhile.kt");
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/expressions/callableReferences")
+        @TestDataPath("$PROJECT_ROOT")
+        public class CallableReferences {
+            @Test
+            @TestMetadata("adaptedExtensionFunctions.kt")
+            public void testAdaptedExtensionFunctions() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/adaptedExtensionFunctions.kt");
+            }
+
+            @Test
+            @TestMetadata("adaptedWithCoercionToUnit.kt")
+            public void testAdaptedWithCoercionToUnit() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/adaptedWithCoercionToUnit.kt");
+            }
+
+            @Test
+            public void testAllFilesPresentInCallableReferences() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions/callableReferences"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("boundInlineAdaptedReference.kt")
+            public void testBoundInlineAdaptedReference() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/boundInlineAdaptedReference.kt");
+            }
+
+            @Test
+            @TestMetadata("boundInnerGenericConstructor.kt")
+            public void testBoundInnerGenericConstructor() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/boundInnerGenericConstructor.kt");
+            }
+
+            @Test
+            @TestMetadata("caoWithAdaptationForSam.kt")
+            public void testCaoWithAdaptationForSam() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/caoWithAdaptationForSam.kt");
+            }
+
+            @Test
+            @TestMetadata("constructorWithAdaptedArguments.kt")
+            public void testConstructorWithAdaptedArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/constructorWithAdaptedArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("funWithDefaultParametersAsKCallableStar.kt")
+            public void testFunWithDefaultParametersAsKCallableStar() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/funWithDefaultParametersAsKCallableStar.kt");
+            }
+
+            @Test
+            @TestMetadata("genericLocalClassConstructorReference.kt")
+            public void testGenericLocalClassConstructorReference() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/genericLocalClassConstructorReference.kt");
+            }
+
+            @Test
+            @TestMetadata("genericMember.kt")
+            public void testGenericMember() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/genericMember.kt");
+            }
+
+            @Test
+            @TestMetadata("importedFromObject.kt")
+            public void testImportedFromObject() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/importedFromObject.kt");
+            }
+
+            @Test
+            @TestMetadata("kt37131.kt")
+            public void testKt37131() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/kt37131.kt");
+            }
+
+            @Test
+            @TestMetadata("kt46069.kt")
+            public void testKt46069() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/kt46069.kt");
+            }
+
+            @Test
+            @TestMetadata("suspendConversion.kt")
+            public void testSuspendConversion() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/suspendConversion.kt");
+            }
+
+            @Test
+            @TestMetadata("typeArguments.kt")
+            public void testTypeArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/typeArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("unboundMemberReferenceWithAdaptedArguments.kt")
+            public void testUnboundMemberReferenceWithAdaptedArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/unboundMemberReferenceWithAdaptedArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("varargFunImportedFromObject.kt")
+            public void testVarargFunImportedFromObject() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/varargFunImportedFromObject.kt");
+            }
+
+            @Test
+            @TestMetadata("withAdaptationForSam.kt")
+            public void testWithAdaptationForSam() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/withAdaptationForSam.kt");
+            }
+
+            @Test
+            @TestMetadata("withAdaptedArguments.kt")
+            public void testWithAdaptedArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/withAdaptedArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("withArgumentAdaptationAndReceiver.kt")
+            public void testWithArgumentAdaptationAndReceiver() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/withArgumentAdaptationAndReceiver.kt");
+            }
+
+            @Test
+            @TestMetadata("withVarargViewedAsArray.kt")
+            public void testWithVarargViewedAsArray() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/withVarargViewedAsArray.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/expressions/floatingPointComparisons")
+        @TestDataPath("$PROJECT_ROOT")
+        public class FloatingPointComparisons {
+            @Test
+            public void testAllFilesPresentInFloatingPointComparisons() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions/floatingPointComparisons"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("comparableWithDoubleOrFloat.kt")
+            public void testComparableWithDoubleOrFloat() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/comparableWithDoubleOrFloat.kt");
+            }
+
+            @Test
+            @TestMetadata("eqeqRhsConditionPossiblyAffectingLhs.kt")
+            public void testEqeqRhsConditionPossiblyAffectingLhs() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointCompareTo.kt")
+            public void testFloatingPointCompareTo() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointCompareTo.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointEqeq.kt")
+            public void testFloatingPointEqeq() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointEqeq.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointEquals.kt")
+            public void testFloatingPointEquals() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointEquals.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointExcleq.kt")
+            public void testFloatingPointExcleq() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointExcleq.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointLess.kt")
+            public void testFloatingPointLess() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointLess.kt");
+            }
+
+            @Test
+            @TestMetadata("nullableAnyAsIntToDouble.kt")
+            public void testNullableAnyAsIntToDouble() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/nullableAnyAsIntToDouble.kt");
+            }
+
+            @Test
+            @TestMetadata("nullableFloatingPointEqeq.kt")
+            public void testNullableFloatingPointEqeq() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/nullableFloatingPointEqeq.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParameterWithPrimitiveNumericSupertype.kt")
+            public void testTypeParameterWithPrimitiveNumericSupertype() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/typeParameterWithPrimitiveNumericSupertype.kt");
+            }
+
+            @Test
+            @TestMetadata("whenByFloatingPoint.kt")
+            public void testWhenByFloatingPoint() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/whenByFloatingPoint.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/expressions/funInterface")
+        @TestDataPath("$PROJECT_ROOT")
+        public class FunInterface {
+            @Test
+            public void testAllFilesPresentInFunInterface() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions/funInterface"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("arrayAsVarargAfterSamArgument_fi.kt")
+            public void testArrayAsVarargAfterSamArgument_fi() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/arrayAsVarargAfterSamArgument_fi.kt");
+            }
+
+            @Test
+            @TestMetadata("basicFunInterfaceConversion.kt")
+            public void testBasicFunInterfaceConversion() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/basicFunInterfaceConversion.kt");
+            }
+
+            @Test
+            @TestMetadata("castFromAny.kt")
+            public void testCastFromAny() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/castFromAny.kt");
+            }
+
+            @Test
+            @TestMetadata("functionSupertype.kt")
+            public void testFunctionSupertype() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/functionSupertype.kt");
+            }
+
+            @Test
+            @TestMetadata("partialSam.kt")
+            public void testPartialSam() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/partialSam.kt");
+            }
+
+            @Test
+            @TestMetadata("samConversionInVarargs.kt")
+            public void testSamConversionInVarargs() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/samConversionInVarargs.kt");
+            }
+
+            @Test
+            @TestMetadata("samConversionInVarargsMixed.kt")
+            public void testSamConversionInVarargsMixed() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/samConversionInVarargsMixed.kt");
+            }
+
+            @Test
+            @TestMetadata("samConversionOnCallableReference.kt")
+            public void testSamConversionOnCallableReference() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/samConversionOnCallableReference.kt");
+            }
+
+            @Test
+            @TestMetadata("samConversionsWithSmartCasts.kt")
+            public void testSamConversionsWithSmartCasts() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/samConversionsWithSmartCasts.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/expressions/sam")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Sam {
+            @Test
+            public void testAllFilesPresentInSam() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions/sam"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/firProblems")
+    @TestDataPath("$PROJECT_ROOT")
+    public class FirProblems {
+        @Test
+        public void testAllFilesPresentInFirProblems() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/firProblems"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("AnnotationLoader.kt")
+        public void testAnnotationLoader() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/AnnotationLoader.kt");
+        }
+
+        @Test
+        @TestMetadata("AnonymousAsReturnOfGenericFunction.kt")
+        public void testAnonymousAsReturnOfGenericFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/AnonymousAsReturnOfGenericFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("ArrayMap.kt")
+        public void testArrayMap() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/ArrayMap.kt");
+        }
+
+        @Test
+        @TestMetadata("AssignmentOperator.kt")
+        public void testAssignmentOperator() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/AssignmentOperator.kt");
+        }
+
+        @Test
+        @TestMetadata("candidateSymbol.kt")
+        public void testCandidateSymbol() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/candidateSymbol.kt");
+        }
+
+        @Test
+        @TestMetadata("cannotCastToFunction.kt")
+        public void testCannotCastToFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/cannotCastToFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("DeepCopyIrTree.kt")
+        public void testDeepCopyIrTree() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/DeepCopyIrTree.kt");
+        }
+
+        @Test
+        @TestMetadata("deprecated.kt")
+        public void testDeprecated() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/deprecated.kt");
+        }
+
+        @Test
+        @TestMetadata("emptyWhen.kt")
+        public void testEmptyWhen() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/emptyWhen.kt");
+        }
+
+        @Test
+        @TestMetadata("ErrorInDefaultValue.kt")
+        public void testErrorInDefaultValue() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/ErrorInDefaultValue.kt");
+        }
+
+        @Test
+        @TestMetadata("explicitIncrement.kt")
+        public void testExplicitIncrement() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/explicitIncrement.kt");
+        }
+
+        @Test
+        @TestMetadata("FakeOverrideInAnonymousWithDelegation.kt")
+        public void testFakeOverrideInAnonymousWithDelegation() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/FakeOverrideInAnonymousWithDelegation.kt");
+        }
+
+        @Test
+        @TestMetadata("Fir2IrClassifierStorage.kt")
+        public void testFir2IrClassifierStorage() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/Fir2IrClassifierStorage.kt");
+        }
+
+        @Test
+        @TestMetadata("FirBuilder.kt")
+        public void testFirBuilder() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/FirBuilder.kt");
+        }
+
+        @Test
+        @TestMetadata("ImplicitReceiverStack.kt")
+        public void testImplicitReceiverStack() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/ImplicitReceiverStack.kt");
+        }
+
+        @Test
+        @TestMetadata("inapplicableCollectionSet.kt")
+        public void testInapplicableCollectionSet() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/inapplicableCollectionSet.kt");
+        }
+
+        @Test
+        @TestMetadata("InnerClassInAnonymous.kt")
+        public void testInnerClassInAnonymous() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/InnerClassInAnonymous.kt");
+        }
+
+        @Test
+        @TestMetadata("integerLiteralWithExpectedTypealiasType.kt")
+        public void testIntegerLiteralWithExpectedTypealiasType() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/integerLiteralWithExpectedTypealiasType.kt");
+        }
+
+        @Test
+        @TestMetadata("kt43342.kt")
+        public void testKt43342() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/kt43342.kt");
+        }
+
+        @Test
+        @TestMetadata("kt55458.kt")
+        public void testKt55458() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/kt55458.kt");
+        }
+
+        @Test
+        @TestMetadata("kt59102.kt")
+        public void testKt59102() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/kt59102.kt");
+        }
+
+        @Test
+        @TestMetadata("lambdaInEnumEntryConstructorCall.kt")
+        public void testLambdaInEnumEntryConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/lambdaInEnumEntryConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("localClassUsedBeforeDeclaration.kt")
+        public void testLocalClassUsedBeforeDeclaration() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/localClassUsedBeforeDeclaration.kt");
+        }
+
+        @Test
+        @TestMetadata("localCompanion.kt")
+        public void testLocalCompanion() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/localCompanion.kt");
+        }
+
+        @Test
+        @TestMetadata("LocalSuspendFun.kt")
+        public void testLocalSuspendFun() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt");
+        }
+
+        @Test
+        @TestMetadata("readWriteProperty.kt")
+        public void testReadWriteProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/readWriteProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("recursiveCapturedTypeInPropertyReference.kt")
+        public void testRecursiveCapturedTypeInPropertyReference() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/recursiveCapturedTypeInPropertyReference.kt");
+        }
+
+        @Test
+        @TestMetadata("reflectGetOnNullableTypeAlias.kt")
+        public void testReflectGetOnNullableTypeAlias() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/reflectGetOnNullableTypeAlias.kt");
+        }
+
+        @Test
+        @TestMetadata("SafeLetWithReturn.kt")
+        public void testSafeLetWithReturn() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/SafeLetWithReturn.kt");
+        }
+
+        @Test
+        @TestMetadata("SignatureClash.kt")
+        public void testSignatureClash() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/SignatureClash.kt");
+        }
+
+        @Test
+        @TestMetadata("SimpleTypeMarker.kt")
+        public void testSimpleTypeMarker() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt");
+        }
+
+        @Test
+        @TestMetadata("thisInEnumConstructor.kt")
+        public void testThisInEnumConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/thisInEnumConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("timesInBuilder.kt")
+        public void testTimesInBuilder() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/timesInBuilder.kt");
+        }
+
+        @Test
+        @TestMetadata("TypeParameterBounds.kt")
+        public void testTypeParameterBounds() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/TypeParameterBounds.kt");
+        }
+
+        @Test
+        @TestMetadata("TypeParameterInNestedClass.kt")
+        public void testTypeParameterInNestedClass() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt");
+        }
+
+        @Test
+        @TestMetadata("typeVariableAfterBuildMap.kt")
+        public void testTypeVariableAfterBuildMap() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/typeVariableAfterBuildMap.kt");
+        }
+
+        @Test
+        @TestMetadata("VarInInit.kt")
+        public void testVarInInit() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/VarInInit.kt");
+        }
+
+        @Test
+        @TestMetadata("VarargIntegerLiteral.kt")
+        public void testVarargIntegerLiteral() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/VarargIntegerLiteral.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/js")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Js {
+        @Test
+        public void testAllFilesPresentInJs() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/js"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/js/dynamic")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Dynamic {
+            @Test
+            public void testAllFilesPresentInDynamic() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/js/dynamic"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/js/external")
+        @TestDataPath("$PROJECT_ROOT")
+        public class External {
+            @Test
+            public void testAllFilesPresentInExternal() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/js/external"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/js/native")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Native {
+            @Test
+            public void testAllFilesPresentInNative() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/js/native"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/lambdas")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Lambdas {
+        @Test
+        public void testAllFilesPresentInLambdas() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/lambdas"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("anonymousFunction.kt")
+        public void testAnonymousFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/anonymousFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("destructuringInLambda.kt")
+        public void testDestructuringInLambda() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/destructuringInLambda.kt");
+        }
+
+        @Test
+        @TestMetadata("extensionLambda.kt")
+        public void testExtensionLambda() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/extensionLambda.kt");
+        }
+
+        @Test
+        @TestMetadata("justLambda.kt")
+        public void testJustLambda() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/justLambda.kt");
+        }
+
+        @Test
+        @TestMetadata("lambdaReturningUnit.kt")
+        public void testLambdaReturningUnit() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/lambdaReturningUnit.kt");
+        }
+
+        @Test
+        @TestMetadata("localFunction.kt")
+        public void testLocalFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/localFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("multipleImplicitReceivers.kt")
+        public void testMultipleImplicitReceivers() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/multipleImplicitReceivers.kt");
+        }
+
+        @Test
+        @TestMetadata("nonLocalReturn.kt")
+        public void testNonLocalReturn() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/nonLocalReturn.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/properties")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Properties {
+        @Test
+        public void testAllFilesPresentInProperties() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/properties"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/properties/backingField")
+        @TestDataPath("$PROJECT_ROOT")
+        public class BackingField {
+            @Test
+            public void testAllFilesPresentInBackingField() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/properties/backingField"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("backingFieldVisibility.kt")
+            public void testBackingFieldVisibility() throws Exception {
+                runTest("compiler/testData/ir/irText/properties/backingField/backingFieldVisibility.kt");
+            }
+
+            @Test
+            @TestMetadata("explicitBackingFieldType.kt")
+            public void testExplicitBackingFieldType() throws Exception {
+                runTest("compiler/testData/ir/irText/properties/backingField/explicitBackingFieldType.kt");
+            }
+
+            @Test
+            @TestMetadata("independentBackingFieldType.kt")
+            public void testIndependentBackingFieldType() throws Exception {
+                runTest("compiler/testData/ir/irText/properties/backingField/independentBackingFieldType.kt");
+            }
+
+            @Test
+            @TestMetadata("propertyTypeNarrowing.kt")
+            public void testPropertyTypeNarrowing() throws Exception {
+                runTest("compiler/testData/ir/irText/properties/backingField/propertyTypeNarrowing.kt");
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/regressions")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Regressions {
+        @Test
+        public void testAllFilesPresentInRegressions() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/regressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("coercionInLoop.kt")
+        public void testCoercionInLoop() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/coercionInLoop.kt");
+        }
+
+        @Test
+        @TestMetadata("integerCoercionToT.kt")
+        public void testIntegerCoercionToT() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/integerCoercionToT.kt");
+        }
+
+        @Test
+        @TestMetadata("kt24114.kt")
+        public void testKt24114() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/kt24114.kt");
+        }
+
+        @Test
+        @TestMetadata("newInferenceFixationOrder1.kt")
+        public void testNewInferenceFixationOrder1() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt");
+        }
+
+        @Test
+        @TestMetadata("typeAliasCtorForGenericClass.kt")
+        public void testTypeAliasCtorForGenericClass() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/typeAliasCtorForGenericClass.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/singletons")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Singletons {
+        @Test
+        public void testAllFilesPresentInSingletons() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/singletons"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("companion.kt")
+        public void testCompanion() throws Exception {
+            runTest("compiler/testData/ir/irText/singletons/companion.kt");
+        }
+
+        @Test
+        @TestMetadata("enumEntry.kt")
+        public void testEnumEntry() throws Exception {
+            runTest("compiler/testData/ir/irText/singletons/enumEntry.kt");
+        }
+
+        @Test
+        @TestMetadata("object.kt")
+        public void testObject() throws Exception {
+            runTest("compiler/testData/ir/irText/singletons/object.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/stubs")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Stubs {
+        @Test
+        public void testAllFilesPresentInStubs() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/stubs"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("genericClassInDifferentModule.kt")
+        public void testGenericClassInDifferentModule() throws Exception {
+            runTest("compiler/testData/ir/irText/stubs/genericClassInDifferentModule.kt");
+        }
+
+        @Test
+        @TestMetadata("kotlinInnerClass.kt")
+        public void testKotlinInnerClass() throws Exception {
+            runTest("compiler/testData/ir/irText/stubs/kotlinInnerClass.kt");
+        }
+
+        @Test
+        @TestMetadata("simple.kt")
+        public void testSimple() throws Exception {
+            runTest("compiler/testData/ir/irText/stubs/simple.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/types")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Types {
+        @Test
+        @TestMetadata("abbreviatedTypes.kt")
+        public void testAbbreviatedTypes() throws Exception {
+            runTest("compiler/testData/ir/irText/types/abbreviatedTypes.kt");
+        }
+
+        @Test
+        public void testAllFilesPresentInTypes() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/types"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("castsInsideCoroutineInference.kt")
+        public void testCastsInsideCoroutineInference() throws Exception {
+            runTest("compiler/testData/ir/irText/types/castsInsideCoroutineInference.kt");
+        }
+
+        @Test
+        @TestMetadata("coercionToUnitInLambdaReturnValue.kt")
+        public void testCoercionToUnitInLambdaReturnValue() throws Exception {
+            runTest("compiler/testData/ir/irText/types/coercionToUnitInLambdaReturnValue.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNonNull.kt")
+        public void testDefinitelyNonNull() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNonNull.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNonNullOverride.kt")
+        public void testDefinitelyNonNullOverride() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNonNullOverride.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNonNullSAM.kt")
+        public void testDefinitelyNonNullSAM() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNonNullSAM.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNotNullAsArgument.kt")
+        public void testDefinitelyNotNullAsArgument() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNotNullAsArgument.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNotNullAsReceiver.kt")
+        public void testDefinitelyNotNullAsReceiver() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNotNullAsReceiver.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNotNullWithIntersection1.kt")
+        public void testDefinitelyNotNullWithIntersection1() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNotNullWithIntersection1.kt");
+        }
+
+        @Test
+        @TestMetadata("dontLeaveStubTypesInSetter.kt")
+        public void testDontLeaveStubTypesInSetter() throws Exception {
+            runTest("compiler/testData/ir/irText/types/dontLeaveStubTypesInSetter.kt");
+        }
+
+        @Test
+        @TestMetadata("genericDelegatedDeepProperty.kt")
+        public void testGenericDelegatedDeepProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/types/genericDelegatedDeepProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("genericFunWithStar.kt")
+        public void testGenericFunWithStar() throws Exception {
+            runTest("compiler/testData/ir/irText/types/genericFunWithStar.kt");
+        }
+
+        @Test
+        @TestMetadata("genericPropertyReferenceType.kt")
+        public void testGenericPropertyReferenceType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/genericPropertyReferenceType.kt");
+        }
+
+        @Test
+        @TestMetadata("inStarProjectionInReceiverType.kt")
+        public void testInStarProjectionInReceiverType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/inStarProjectionInReceiverType.kt");
+        }
+
+        @Test
+        @TestMetadata("intersectionType1.kt")
+        public void testIntersectionType1() throws Exception {
+            runTest("compiler/testData/ir/irText/types/intersectionType1.kt");
+        }
+
+        @Test
+        @TestMetadata("intersectionType2.kt")
+        public void testIntersectionType2() throws Exception {
+            runTest("compiler/testData/ir/irText/types/intersectionType2.kt");
+        }
+
+        @Test
+        @TestMetadata("intersectionType3.kt")
+        public void testIntersectionType3() throws Exception {
+            runTest("compiler/testData/ir/irText/types/intersectionType3.kt");
+        }
+
+        @Test
+        @TestMetadata("intersectionTypeInSamType.kt")
+        public void testIntersectionTypeInSamType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/intersectionTypeInSamType.kt");
+        }
+
+        @Test
+        @TestMetadata("kt36143.kt")
+        public void testKt36143() throws Exception {
+            runTest("compiler/testData/ir/irText/types/kt36143.kt");
+        }
+
+        @Test
+        @TestMetadata("kt49526.kt")
+        public void testKt49526() throws Exception {
+            runTest("compiler/testData/ir/irText/types/kt49526.kt");
+        }
+
+        @Test
+        @TestMetadata("localVariableOfIntersectionType.kt")
+        public void testLocalVariableOfIntersectionType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/localVariableOfIntersectionType.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCastOnFakeOverrideReceiver.kt")
+        public void testSmartCastOnFakeOverrideReceiver() throws Exception {
+            runTest("compiler/testData/ir/irText/types/smartCastOnFakeOverrideReceiver.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCastOnReceiverOfGenericType.kt")
+        public void testSmartCastOnReceiverOfGenericType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/smartCastOnReceiverOfGenericType.kt");
+        }
+
+        @Test
+        @TestMetadata("starProjection.kt")
+        public void testStarProjection() throws Exception {
+            runTest("compiler/testData/ir/irText/types/starProjection.kt");
+        }
+
+        @Test
+        @TestMetadata("typeAliasWithUnsafeVariance.kt")
+        public void testTypeAliasWithUnsafeVariance() throws Exception {
+            runTest("compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt");
+        }
+
+        @Test
+        @TestMetadata("typeCheckOnDefinitelyNotNull.kt")
+        public void testTypeCheckOnDefinitelyNotNull() throws Exception {
+            runTest("compiler/testData/ir/irText/types/typeCheckOnDefinitelyNotNull.kt");
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/types/nullChecks")
+        @TestDataPath("$PROJECT_ROOT")
+        public class NullChecks {
+            @Test
+            public void testAllFilesPresentInNullChecks() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/types/nullChecks"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Nested
+            @TestMetadata("compiler/testData/ir/irText/types/nullChecks/nullCheckOnLambdaResult")
+            @TestDataPath("$PROJECT_ROOT")
+            public class NullCheckOnLambdaResult {
+                @Test
+                public void testAllFilesPresentInNullCheckOnLambdaResult() throws Exception {
+                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/types/nullChecks/nullCheckOnLambdaResult"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+                }
+            }
+        }
+    }
+}
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirPsiNativeIrTextTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirPsiNativeIrTextTestGenerated.java
new file mode 100644
index 0000000..f28f9be
--- /dev/null
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirPsiNativeIrTextTestGenerated.java
@@ -0,0 +1,2917 @@
+/*
+ * 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.konan.blackboxtest;
+
+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.generators.tests.GenerateNativeTestsKt}. DO NOT MODIFY MANUALLY */
+@SuppressWarnings("all")
+@TestMetadata("compiler/testData/ir/irText")
+@TestDataPath("$PROJECT_ROOT")
+public class FirPsiNativeIrTextTestGenerated extends AbstractFirPsiNativeIrTextTest {
+    @Test
+    public void testAllFilesPresentInIrText() throws Exception {
+        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/classes")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Classes {
+        @Test
+        @TestMetadata("47424.kt")
+        public void test47424() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/47424.kt");
+        }
+
+        @Test
+        @TestMetadata("abstractMembers.kt")
+        public void testAbstractMembers() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/abstractMembers.kt");
+        }
+
+        @Test
+        public void testAllFilesPresentInClasses() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/classes"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("annotationClasses.kt")
+        public void testAnnotationClasses() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/annotationClasses.kt");
+        }
+
+        @Test
+        @TestMetadata("argumentReorderingInDelegatingConstructorCall.kt")
+        public void testArgumentReorderingInDelegatingConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/argumentReorderingInDelegatingConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("clashingFakeOverrideSignatures.kt")
+        public void testClashingFakeOverrideSignatures() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/clashingFakeOverrideSignatures.kt");
+        }
+
+        @Test
+        @TestMetadata("classMembers.kt")
+        public void testClassMembers() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/classMembers.kt");
+        }
+
+        @Test
+        @TestMetadata("classes.kt")
+        public void testClasses() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/classes.kt");
+        }
+
+        @Test
+        @TestMetadata("companionObject.kt")
+        public void testCompanionObject() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/companionObject.kt");
+        }
+
+        @Test
+        @TestMetadata("declarationOrder.kt")
+        public void testDeclarationOrder() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/declarationOrder.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatedGenericImplementation.kt")
+        public void testDelegatedGenericImplementation() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatedGenericImplementation.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatedImplementation.kt")
+        public void testDelegatedImplementation() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatedImplementation.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatedImplementationWithExplicitOverride.kt")
+        public void testDelegatedImplementationWithExplicitOverride() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatedImplementationWithExplicitOverride.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatingConstructorCallToTypeAliasConstructor.kt")
+        public void testDelegatingConstructorCallToTypeAliasConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatingConstructorCallToTypeAliasConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatingConstructorCallsInSecondaryConstructors.kt")
+        public void testDelegatingConstructorCallsInSecondaryConstructors() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/delegatingConstructorCallsInSecondaryConstructors.kt");
+        }
+
+        @Test
+        @TestMetadata("enum.kt")
+        public void testEnum() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/enum.kt");
+        }
+
+        @Test
+        @TestMetadata("enumClassModality.kt")
+        public void testEnumClassModality() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/enumClassModality.kt");
+        }
+
+        @Test
+        @TestMetadata("enumWithMultipleCtors.kt")
+        public void testEnumWithMultipleCtors() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/enumWithMultipleCtors.kt");
+        }
+
+        @Test
+        @TestMetadata("enumWithSecondaryCtor.kt")
+        public void testEnumWithSecondaryCtor() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/enumWithSecondaryCtor.kt");
+        }
+
+        @Test
+        @TestMetadata("initBlock.kt")
+        public void testInitBlock() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/initBlock.kt");
+        }
+
+        @Test
+        @TestMetadata("initVal.kt")
+        public void testInitVal() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/initVal.kt");
+        }
+
+        @Test
+        @TestMetadata("initValInLambda.kt")
+        public void testInitValInLambda() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/initValInLambda.kt");
+        }
+
+        @Test
+        @TestMetadata("initVar.kt")
+        public void testInitVar() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/initVar.kt");
+        }
+
+        @Test
+        @TestMetadata("inlineClass.kt")
+        public void testInlineClass() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/inlineClass.kt");
+        }
+
+        @Test
+        @TestMetadata("inlineClassSyntheticMethods.kt")
+        public void testInlineClassSyntheticMethods() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/inlineClassSyntheticMethods.kt");
+        }
+
+        @Test
+        @TestMetadata("innerClass.kt")
+        public void testInnerClass() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/innerClass.kt");
+        }
+
+        @Test
+        @TestMetadata("innerClassWithDelegatingConstructor.kt")
+        public void testInnerClassWithDelegatingConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/innerClassWithDelegatingConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("kt19306.kt")
+        public void testKt19306() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/kt19306.kt");
+        }
+
+        @Test
+        @TestMetadata("localClasses.kt")
+        public void testLocalClasses() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/localClasses.kt");
+        }
+
+        @Test
+        @TestMetadata("objectLiteralExpressions.kt")
+        public void testObjectLiteralExpressions() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/objectLiteralExpressions.kt");
+        }
+
+        @Test
+        @TestMetadata("objectWithInitializers.kt")
+        public void testObjectWithInitializers() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/objectWithInitializers.kt");
+        }
+
+        @Test
+        @TestMetadata("outerClassAccess.kt")
+        public void testOuterClassAccess() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/outerClassAccess.kt");
+        }
+
+        @Test
+        @TestMetadata("primaryConstructor.kt")
+        public void testPrimaryConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/primaryConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("primaryConstructorWithSuperConstructorCall.kt")
+        public void testPrimaryConstructorWithSuperConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/primaryConstructorWithSuperConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("qualifiedSuperCalls.kt")
+        public void testQualifiedSuperCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/qualifiedSuperCalls.kt");
+        }
+
+        @Test
+        @TestMetadata("sealedClasses.kt")
+        public void testSealedClasses() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/sealedClasses.kt");
+        }
+
+        @Test
+        @TestMetadata("secondaryConstructorWithInitializersFromClassBody.kt")
+        public void testSecondaryConstructorWithInitializersFromClassBody() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/secondaryConstructorWithInitializersFromClassBody.kt");
+        }
+
+        @Test
+        @TestMetadata("secondaryConstructors.kt")
+        public void testSecondaryConstructors() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/secondaryConstructors.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCastInValInitialization.kt")
+        public void testSmartCastInValInitialization() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/smartCastInValInitialization.kt");
+        }
+
+        @Test
+        @TestMetadata("superCalls.kt")
+        public void testSuperCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/superCalls.kt");
+        }
+
+        @Test
+        @TestMetadata("superCallsComposed.kt")
+        public void testSuperCallsComposed() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/superCallsComposed.kt");
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/classes/dataClasses")
+        @TestDataPath("$PROJECT_ROOT")
+        public class DataClasses {
+            @Test
+            public void testAllFilesPresentInDataClasses() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/classes/dataClasses"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("dataClassWithArrayMembers.kt")
+            public void testDataClassWithArrayMembers() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/dataClassWithArrayMembers.kt");
+            }
+
+            @Test
+            @TestMetadata("dataClasses.kt")
+            public void testDataClasses() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/dataClasses.kt");
+            }
+
+            @Test
+            @TestMetadata("dataClassesGeneric.kt")
+            public void testDataClassesGeneric() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/dataClassesGeneric.kt");
+            }
+
+            @Test
+            @TestMetadata("dataObject.kt")
+            public void testDataObject() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/dataObject.kt");
+            }
+
+            @Test
+            @TestMetadata("delegationInSealed.kt")
+            public void testDelegationInSealed() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/delegationInSealed.kt");
+            }
+
+            @Test
+            @TestMetadata("kt31649.kt")
+            public void testKt31649() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/kt31649.kt");
+            }
+
+            @Test
+            @TestMetadata("kt49936.kt")
+            public void testKt49936() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/kt49936.kt");
+            }
+
+            @Test
+            @TestMetadata("lambdaInDataClassDefaultParameter.kt")
+            public void testLambdaInDataClassDefaultParameter() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/lambdaInDataClassDefaultParameter.kt");
+            }
+
+            @Test
+            @TestMetadata("openDataClass.kt")
+            public void testOpenDataClass() throws Exception {
+                runTest("compiler/testData/ir/irText/classes/dataClasses/openDataClass.kt");
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/declarations")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Declarations {
+        @Test
+        public void testAllFilesPresentInDeclarations() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("catchParameterInTopLevelProperty.kt")
+        public void testCatchParameterInTopLevelProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/catchParameterInTopLevelProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("classLevelProperties.kt")
+        public void testClassLevelProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/classLevelProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("constValInitializers.kt")
+        public void testConstValInitializers() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/constValInitializers.kt");
+        }
+
+        @Test
+        @TestMetadata("defaultArguments.kt")
+        public void testDefaultArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/defaultArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("delegatedProperties.kt")
+        public void testDelegatedProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/delegatedProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("deprecatedProperty.kt")
+        public void testDeprecatedProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/deprecatedProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("extensionProperties.kt")
+        public void testExtensionProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/extensionProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("fakeOverrides.kt")
+        public void testFakeOverrides() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/fakeOverrides.kt");
+        }
+
+        @Test
+        @TestMetadata("fileWithTypeAliasesOnly.kt")
+        public void testFileWithTypeAliasesOnly() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/fileWithTypeAliasesOnly.kt");
+        }
+
+        @Test
+        @TestMetadata("genericDelegatedProperty.kt")
+        public void testGenericDelegatedProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/genericDelegatedProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("inlineCollectionOfInlineClass.kt")
+        public void testInlineCollectionOfInlineClass() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/inlineCollectionOfInlineClass.kt");
+        }
+
+        @Test
+        @TestMetadata("interfaceProperties.kt")
+        public void testInterfaceProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/interfaceProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("kt27005.kt")
+        public void testKt27005() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt27005.kt");
+        }
+
+        @Test
+        @TestMetadata("kt35550.kt")
+        public void testKt35550() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt35550.kt");
+        }
+
+        @Test
+        @TestMetadata("kt45308.kt")
+        public void testKt45308() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt45308.kt");
+        }
+
+        @Test
+        @TestMetadata("kt47527.kt")
+        public void testKt47527() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt47527.kt");
+        }
+
+        @Test
+        @TestMetadata("kt52677.kt")
+        public void testKt52677() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/kt52677.kt");
+        }
+
+        @Test
+        @TestMetadata("localClassWithOverrides.kt")
+        public void testLocalClassWithOverrides() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/localClassWithOverrides.kt");
+        }
+
+        @Test
+        @TestMetadata("localDelegatedProperties.kt")
+        public void testLocalDelegatedProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/localDelegatedProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("localVarInDoWhile.kt")
+        public void testLocalVarInDoWhile() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/localVarInDoWhile.kt");
+        }
+
+        @Test
+        @TestMetadata("packageLevelProperties.kt")
+        public void testPackageLevelProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/packageLevelProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("primaryCtorDefaultArguments.kt")
+        public void testPrimaryCtorDefaultArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/primaryCtorDefaultArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("primaryCtorProperties.kt")
+        public void testPrimaryCtorProperties() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/primaryCtorProperties.kt");
+        }
+
+        @Test
+        @TestMetadata("typeAlias.kt")
+        public void testTypeAlias() throws Exception {
+            runTest("compiler/testData/ir/irText/declarations/typeAlias.kt");
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/annotations")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Annotations {
+            @Test
+            public void testAllFilesPresentInAnnotations() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("annotationOnClassWithInitializer.kt")
+            public void testAnnotationOnClassWithInitializer() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationOnClassWithInitializer.kt");
+            }
+
+            @Test
+            @TestMetadata("annotationsInAnnotationArguments.kt")
+            public void testAnnotationsInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationsInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("annotationsOnDelegatedMembers.kt")
+            public void testAnnotationsOnDelegatedMembers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.kt");
+            }
+
+            @Test
+            @TestMetadata("annotationsWithDefaultParameterValues.kt")
+            public void testAnnotationsWithDefaultParameterValues() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationsWithDefaultParameterValues.kt");
+            }
+
+            @Test
+            @TestMetadata("annotationsWithVarargParameters.kt")
+            public void testAnnotationsWithVarargParameters() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/annotationsWithVarargParameters.kt");
+            }
+
+            @Test
+            @TestMetadata("arrayInAnnotationArguments.kt")
+            public void testArrayInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/arrayInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("classLiteralInAnnotation.kt")
+            public void testClassLiteralInAnnotation() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/classLiteralInAnnotation.kt");
+            }
+
+            @Test
+            @TestMetadata("classesWithAnnotations.kt")
+            public void testClassesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("constExpressionsInAnnotationArguments.kt")
+            public void testConstExpressionsInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/constExpressionsInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("constructorsWithAnnotations.kt")
+            public void testConstructorsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/constructorsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("delegateFieldWithAnnotations.kt")
+            public void testDelegateFieldWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/delegateFieldWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("delegatedPropertyAccessorsWithAnnotations.kt")
+            public void testDelegatedPropertyAccessorsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/delegatedPropertyAccessorsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("enumEntriesWithAnnotations.kt")
+            public void testEnumEntriesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("enumsInAnnotationArguments.kt")
+            public void testEnumsInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("fieldsWithAnnotations.kt")
+            public void testFieldsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/fieldsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("fileAnnotations.kt")
+            public void testFileAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/fileAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("functionsWithAnnotations.kt")
+            public void testFunctionsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/functionsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("genericAnnotationClasses.kt")
+            public void testGenericAnnotationClasses() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/genericAnnotationClasses.kt");
+            }
+
+            @Test
+            @TestMetadata("inheritingDeprecation.kt")
+            public void testInheritingDeprecation() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.kt");
+            }
+
+            @Test
+            @TestMetadata("localDelegatedPropertiesWithAnnotations.kt")
+            public void testLocalDelegatedPropertiesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/localDelegatedPropertiesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("multipleAnnotationsInSquareBrackets.kt")
+            public void testMultipleAnnotationsInSquareBrackets() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/multipleAnnotationsInSquareBrackets.kt");
+            }
+
+            @Test
+            @TestMetadata("primaryConstructorParameterWithAnnotations.kt")
+            public void testPrimaryConstructorParameterWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/primaryConstructorParameterWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("propertiesWithAnnotations.kt")
+            public void testPropertiesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/propertiesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("propertyAccessorsFromClassHeaderWithAnnotations.kt")
+            public void testPropertyAccessorsFromClassHeaderWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/propertyAccessorsFromClassHeaderWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("propertyAccessorsWithAnnotations.kt")
+            public void testPropertyAccessorsWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/propertyAccessorsWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("propertySetterParameterWithAnnotations.kt")
+            public void testPropertySetterParameterWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/propertySetterParameterWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("receiverParameterWithAnnotations.kt")
+            public void testReceiverParameterWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/receiverParameterWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("spreadOperatorInAnnotationArguments.kt")
+            public void testSpreadOperatorInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("typeAliasesWithAnnotations.kt")
+            public void testTypeAliasesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/typeAliasesWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParametersWithAnnotations.kt")
+            public void testTypeParametersWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/typeParametersWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("valueParametersWithAnnotations.kt")
+            public void testValueParametersWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/valueParametersWithAnnotations.kt");
+            }
+
+            @Test
+            @TestMetadata("varargsInAnnotationArguments.kt")
+            public void testVarargsInAnnotationArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/varargsInAnnotationArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("variablesWithAnnotations.kt")
+            public void testVariablesWithAnnotations() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/annotations/variablesWithAnnotations.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/contextReceivers")
+        @TestDataPath("$PROJECT_ROOT")
+        public class ContextReceivers {
+            @Test
+            public void testAllFilesPresentInContextReceivers() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/contextReceivers"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("arrayAccessCompositeOperators.kt")
+            public void testArrayAccessCompositeOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/arrayAccessCompositeOperators.kt");
+            }
+
+            @Test
+            @TestMetadata("arrayAccessOperators.kt")
+            public void testArrayAccessOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/arrayAccessOperators.kt");
+            }
+
+            @Test
+            @TestMetadata("class.kt")
+            public void testClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/class.kt");
+            }
+
+            @Test
+            @TestMetadata("compoundAssignmentOperators.kt")
+            public void testCompoundAssignmentOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/compoundAssignmentOperators.kt");
+            }
+
+            @Test
+            @TestMetadata("contextReceiverMethod.kt")
+            public void testContextReceiverMethod() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/contextReceiverMethod.kt");
+            }
+
+            @Test
+            @TestMetadata("contextualFunctionConversion.kt")
+            public void testContextualFunctionConversion() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/contextualFunctionConversion.kt");
+            }
+
+            @Test
+            @TestMetadata("contextualInlineCall.kt")
+            public void testContextualInlineCall() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.kt");
+            }
+
+            @Test
+            @TestMetadata("contextualPrimaryConstructorWithParams.kt")
+            public void testContextualPrimaryConstructorWithParams() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/contextualPrimaryConstructorWithParams.kt");
+            }
+
+            @Test
+            @TestMetadata("delegatedPropertiesOperators.kt")
+            public void testDelegatedPropertiesOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/delegatedPropertiesOperators.kt");
+            }
+
+            @Test
+            @TestMetadata("function.kt")
+            public void testFunction() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/function.kt");
+            }
+
+            @Test
+            @TestMetadata("functionalType.kt")
+            public void testFunctionalType() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/functionalType.kt");
+            }
+
+            @Test
+            @TestMetadata("genericOuterClass.kt")
+            public void testGenericOuterClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/genericOuterClass.kt");
+            }
+
+            @Test
+            @TestMetadata("iteratorOperator.kt")
+            public void testIteratorOperator() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/iteratorOperator.kt");
+            }
+
+            @Test
+            @TestMetadata("kt52791.kt")
+            public void testKt52791() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/kt52791.kt");
+            }
+
+            @Test
+            @TestMetadata("lazy.kt")
+            public void testLazy() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/lazy.kt");
+            }
+
+            @Test
+            @TestMetadata("overloadPriority.kt")
+            public void testOverloadPriority() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/overloadPriority.kt");
+            }
+
+            @Test
+            @TestMetadata("overloading.kt")
+            public void testOverloading() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/overloading.kt");
+            }
+
+            @Test
+            @TestMetadata("passingLambdaToContextualParam.kt")
+            public void testPassingLambdaToContextualParam() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/passingLambdaToContextualParam.kt");
+            }
+
+            @Test
+            @TestMetadata("plusMatrix.kt")
+            public void testPlusMatrix() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/plusMatrix.kt");
+            }
+
+            @Test
+            @TestMetadata("property.kt")
+            public void testProperty() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/property.kt");
+            }
+
+            @Test
+            @TestMetadata("thisWithCustomLabel.kt")
+            public void testThisWithCustomLabel() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/thisWithCustomLabel.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParameterAsContextReceiver.kt")
+            public void testTypeParameterAsContextReceiver() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/typeParameterAsContextReceiver.kt");
+            }
+
+            @Test
+            @TestMetadata("unaryOperators.kt")
+            public void testUnaryOperators() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/contextReceivers/unaryOperators.kt");
+            }
+
+            @Nested
+            @TestMetadata("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP")
+            @TestDataPath("$PROJECT_ROOT")
+            public class FromKEEP {
+                @Test
+                public void testAllFilesPresentInFromKEEP() throws Exception {
+                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+                }
+
+                @Test
+                @TestMetadata("canvas.kt")
+                public void testCanvas() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/canvas.kt");
+                }
+
+                @Test
+                @TestMetadata("compareTo.kt")
+                public void testCompareTo() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/compareTo.kt");
+                }
+
+                @Test
+                @TestMetadata("dp.kt")
+                public void testDp() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/dp.kt");
+                }
+
+                @Test
+                @TestMetadata("functionalType.kt")
+                public void testFunctionalType() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/functionalType.kt");
+                }
+
+                @Test
+                @TestMetadata("monoidSum.kt")
+                public void testMonoidSum() throws Exception {
+                    runTest("compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/monoidSum.kt");
+                }
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/delegate")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Delegate {
+            @Test
+            public void testAllFilesPresentInDelegate() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/delegate"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("delegationEvaluationOrder1.kt")
+            public void testDelegationEvaluationOrder1() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/delegate/delegationEvaluationOrder1.kt");
+            }
+
+            @Test
+            @TestMetadata("delegationEvaluationOrder2.kt")
+            public void testDelegationEvaluationOrder2() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/delegate/delegationEvaluationOrder2.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/jvmRecord")
+        @TestDataPath("$PROJECT_ROOT")
+        public class JvmRecord {
+            @Test
+            public void testAllFilesPresentInJvmRecord() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/jvmRecord"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/multiplatform")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Multiplatform {
+            @Test
+            public void testAllFilesPresentInMultiplatform() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/multiplatform"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("expectClassInherited.kt")
+            public void testExpectClassInherited() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectClassInherited.kt");
+            }
+
+            @Test
+            @TestMetadata("expectIntersectionOverride.kt")
+            public void testExpectIntersectionOverride() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectIntersectionOverride.kt");
+            }
+
+            @Test
+            @TestMetadata("expectMemberInNotExpectClass.kt")
+            public void testExpectMemberInNotExpectClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectMemberInNotExpectClass.kt");
+            }
+
+            @Test
+            @TestMetadata("expectMemberInNotExpectClassFir.kt")
+            public void testExpectMemberInNotExpectClassFir() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectMemberInNotExpectClassFir.kt");
+            }
+
+            @Test
+            @TestMetadata("expectedEnumClass.kt")
+            public void testExpectedEnumClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.kt");
+            }
+
+            @Test
+            @TestMetadata("expectedEnumClass2.kt")
+            public void testExpectedEnumClass2() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass2.kt");
+            }
+
+            @Test
+            @TestMetadata("expectedSealedClass.kt")
+            public void testExpectedSealedClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/multiplatform/expectedSealedClass.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/parameters")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Parameters {
+            @Test
+            public void testAllFilesPresentInParameters() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/parameters"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("class.kt")
+            public void testClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/class.kt");
+            }
+
+            @Test
+            @TestMetadata("constructor.kt")
+            public void testConstructor() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/constructor.kt");
+            }
+
+            @Test
+            @TestMetadata("dataClassMembers.kt")
+            public void testDataClassMembers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/dataClassMembers.kt");
+            }
+
+            @Test
+            @TestMetadata("defaultPropertyAccessors.kt")
+            public void testDefaultPropertyAccessors() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/defaultPropertyAccessors.kt");
+            }
+
+            @Test
+            @TestMetadata("delegatedMembers.kt")
+            public void testDelegatedMembers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/delegatedMembers.kt");
+            }
+
+            @Test
+            @TestMetadata("fun.kt")
+            public void testFun() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/fun.kt");
+            }
+
+            @Test
+            @TestMetadata("genericInnerClass.kt")
+            public void testGenericInnerClass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/genericInnerClass.kt");
+            }
+
+            @Test
+            @TestMetadata("lambdas.kt")
+            public void testLambdas() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/lambdas.kt");
+            }
+
+            @Test
+            @TestMetadata("localFun.kt")
+            public void testLocalFun() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/localFun.kt");
+            }
+
+            @Test
+            @TestMetadata("propertyAccessors.kt")
+            public void testPropertyAccessors() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/propertyAccessors.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParameterBeforeBound.kt")
+            public void testTypeParameterBeforeBound() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/typeParameterBeforeBound.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParameterBoundedBySubclass.kt")
+            public void testTypeParameterBoundedBySubclass() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/typeParameterBoundedBySubclass.kt");
+            }
+
+            @Test
+            @TestMetadata("useNextParamInLambda.kt")
+            public void testUseNextParamInLambda() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/parameters/useNextParamInLambda.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/declarations/provideDelegate")
+        @TestDataPath("$PROJECT_ROOT")
+        public class ProvideDelegate {
+            @Test
+            public void testAllFilesPresentInProvideDelegate() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/declarations/provideDelegate"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("differentReceivers.kt")
+            public void testDifferentReceivers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/differentReceivers.kt");
+            }
+
+            @Test
+            @TestMetadata("local.kt")
+            public void testLocal() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/local.kt");
+            }
+
+            @Test
+            @TestMetadata("localDifferentReceivers.kt")
+            public void testLocalDifferentReceivers() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/localDifferentReceivers.kt");
+            }
+
+            @Test
+            @TestMetadata("member.kt")
+            public void testMember() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/member.kt");
+            }
+
+            @Test
+            @TestMetadata("memberExtension.kt")
+            public void testMemberExtension() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/memberExtension.kt");
+            }
+
+            @Test
+            @TestMetadata("topLevel.kt")
+            public void testTopLevel() throws Exception {
+                runTest("compiler/testData/ir/irText/declarations/provideDelegate/topLevel.kt");
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/errors")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Errors {
+        @Test
+        public void testAllFilesPresentInErrors() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/errors"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("suppressedNonPublicCall.kt")
+        public void testSuppressedNonPublicCall() throws Exception {
+            runTest("compiler/testData/ir/irText/errors/suppressedNonPublicCall.kt");
+        }
+
+        @Test
+        @TestMetadata("unresolvedReference.kt")
+        public void testUnresolvedReference() throws Exception {
+            runTest("compiler/testData/ir/irText/errors/unresolvedReference.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/expressions")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Expressions {
+        @Test
+        public void testAllFilesPresentInExpressions() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("argumentMappedWithError.kt")
+        public void testArgumentMappedWithError() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/argumentMappedWithError.kt");
+        }
+
+        @Test
+        @TestMetadata("arrayAccess.kt")
+        public void testArrayAccess() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/arrayAccess.kt");
+        }
+
+        @Test
+        @TestMetadata("arrayAssignment.kt")
+        public void testArrayAssignment() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/arrayAssignment.kt");
+        }
+
+        @Test
+        @TestMetadata("arrayAugmentedAssignment1.kt")
+        public void testArrayAugmentedAssignment1() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/arrayAugmentedAssignment1.kt");
+        }
+
+        @Test
+        @TestMetadata("arrayAugmentedAssignment2.kt")
+        public void testArrayAugmentedAssignment2() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/arrayAugmentedAssignment2.kt");
+        }
+
+        @Test
+        @TestMetadata("assignments.kt")
+        public void testAssignments() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/assignments.kt");
+        }
+
+        @Test
+        @TestMetadata("augmentedAssignment1.kt")
+        public void testAugmentedAssignment1() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/augmentedAssignment1.kt");
+        }
+
+        @Test
+        @TestMetadata("augmentedAssignment2.kt")
+        public void testAugmentedAssignment2() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/augmentedAssignment2.kt");
+        }
+
+        @Test
+        @TestMetadata("augmentedAssignmentWithExpression.kt")
+        public void testAugmentedAssignmentWithExpression() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/augmentedAssignmentWithExpression.kt");
+        }
+
+        @Test
+        @TestMetadata("badBreakContinue.kt")
+        public void testBadBreakContinue() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/badBreakContinue.kt");
+        }
+
+        @Test
+        @TestMetadata("badInlinedBreakContinue.kt")
+        public void testBadInlinedBreakContinue() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt");
+        }
+
+        @Test
+        @TestMetadata("bangbang.kt")
+        public void testBangbang() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/bangbang.kt");
+        }
+
+        @Test
+        @TestMetadata("booleanConstsInAndAndOrOr.kt")
+        public void testBooleanConstsInAndAndOrOr() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/booleanConstsInAndAndOrOr.kt");
+        }
+
+        @Test
+        @TestMetadata("booleanOperators.kt")
+        public void testBooleanOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/booleanOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("boundCallableReferences.kt")
+        public void testBoundCallableReferences() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/boundCallableReferences.kt");
+        }
+
+        @Test
+        @TestMetadata("boxOk.kt")
+        public void testBoxOk() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/boxOk.kt");
+        }
+
+        @Test
+        @TestMetadata("breakContinue.kt")
+        public void testBreakContinue() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/breakContinue.kt");
+        }
+
+        @Test
+        @TestMetadata("breakContinueInLoopHeader.kt")
+        public void testBreakContinueInLoopHeader() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/breakContinueInLoopHeader.kt");
+        }
+
+        @Test
+        @TestMetadata("breakContinueInWhen.kt")
+        public void testBreakContinueInWhen() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/breakContinueInWhen.kt");
+        }
+
+        @Test
+        @TestMetadata("builtinOperators.kt")
+        public void testBuiltinOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/builtinOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("callWithReorderedArguments.kt")
+        public void testCallWithReorderedArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/callWithReorderedArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("calls.kt")
+        public void testCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/calls.kt");
+        }
+
+        @Test
+        @TestMetadata("castToTypeParameter.kt")
+        public void testCastToTypeParameter() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/castToTypeParameter.kt");
+        }
+
+        @Test
+        @TestMetadata("catchParameterAccess.kt")
+        public void testCatchParameterAccess() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/catchParameterAccess.kt");
+        }
+
+        @Test
+        @TestMetadata("chainOfSafeCalls.kt")
+        public void testChainOfSafeCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt");
+        }
+
+        @Test
+        @TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
+        public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/chainedFunSuspendConversionForSimpleExpression.kt");
+        }
+
+        @Test
+        @TestMetadata("complexAugmentedAssignment.kt")
+        public void testComplexAugmentedAssignment() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/complexAugmentedAssignment.kt");
+        }
+
+        @Test
+        @TestMetadata("contructorCall.kt")
+        public void testContructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/contructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("conventionComparisons.kt")
+        public void testConventionComparisons() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/conventionComparisons.kt");
+        }
+
+        @Test
+        @TestMetadata("destructuring1.kt")
+        public void testDestructuring1() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/destructuring1.kt");
+        }
+
+        @Test
+        @TestMetadata("destructuringWithUnderscore.kt")
+        public void testDestructuringWithUnderscore() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/destructuringWithUnderscore.kt");
+        }
+
+        @Test
+        @TestMetadata("dotQualified.kt")
+        public void testDotQualified() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/dotQualified.kt");
+        }
+
+        @Test
+        @TestMetadata("elvis.kt")
+        public void testElvis() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/elvis.kt");
+        }
+
+        @Test
+        @TestMetadata("enumEntryAsReceiver.kt")
+        public void testEnumEntryAsReceiver() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/enumEntryAsReceiver.kt");
+        }
+
+        @Test
+        @TestMetadata("enumEntryReferenceFromEnumEntryClass.kt")
+        public void testEnumEntryReferenceFromEnumEntryClass() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt");
+        }
+
+        @Test
+        @TestMetadata("equality.kt")
+        public void testEquality() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/equality.kt");
+        }
+
+        @Test
+        @TestMetadata("exhaustiveWhenElseBranch.kt")
+        public void testExhaustiveWhenElseBranch() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/exhaustiveWhenElseBranch.kt");
+        }
+
+        @Test
+        @TestMetadata("extFunInvokeAsFun.kt")
+        public void testExtFunInvokeAsFun() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/extFunInvokeAsFun.kt");
+        }
+
+        @Test
+        @TestMetadata("extFunSafeInvoke.kt")
+        public void testExtFunSafeInvoke() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/extFunSafeInvoke.kt");
+        }
+
+        @Test
+        @TestMetadata("extensionPropertyGetterCall.kt")
+        public void testExtensionPropertyGetterCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/extensionPropertyGetterCall.kt");
+        }
+
+        @Test
+        @TestMetadata("field.kt")
+        public void testField() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/field.kt");
+        }
+
+        @Test
+        @TestMetadata("for.kt")
+        public void testFor() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/for.kt");
+        }
+
+        @Test
+        @TestMetadata("forWithBreakContinue.kt")
+        public void testForWithBreakContinue() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/forWithBreakContinue.kt");
+        }
+
+        @Test
+        @TestMetadata("forWithImplicitReceivers.kt")
+        public void testForWithImplicitReceivers() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/forWithImplicitReceivers.kt");
+        }
+
+        @Test
+        @TestMetadata("funImportedFromObject.kt")
+        public void testFunImportedFromObject() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/funImportedFromObject.kt");
+        }
+
+        @Test
+        @TestMetadata("funInterfaceConstructorReference.kt")
+        public void testFunInterfaceConstructorReference() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/funInterfaceConstructorReference.kt");
+        }
+
+        @Test
+        @TestMetadata("genericConstructorCallWithTypeArguments.kt")
+        public void testGenericConstructorCallWithTypeArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/genericConstructorCallWithTypeArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("genericPropertyCall.kt")
+        public void testGenericPropertyCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/genericPropertyCall.kt");
+        }
+
+        @Test
+        @TestMetadata("genericPropertyRef.kt")
+        public void testGenericPropertyRef() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/genericPropertyRef.kt");
+        }
+
+        @Test
+        @TestMetadata("identity.kt")
+        public void testIdentity() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/identity.kt");
+        }
+
+        @Test
+        @TestMetadata("ifElseIf.kt")
+        public void testIfElseIf() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/ifElseIf.kt");
+        }
+
+        @Test
+        @TestMetadata("implicitCastInReturnFromConstructor.kt")
+        public void testImplicitCastInReturnFromConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/implicitCastInReturnFromConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("implicitCastToNonNull.kt")
+        public void testImplicitCastToNonNull() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/implicitCastToNonNull.kt");
+        }
+
+        @Test
+        @TestMetadata("implicitCastToTypeParameter.kt")
+        public void testImplicitCastToTypeParameter() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.kt");
+        }
+
+        @Test
+        @TestMetadata("in.kt")
+        public void testIn() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/in.kt");
+        }
+
+        @Test
+        @TestMetadata("incrementDecrement.kt")
+        public void testIncrementDecrement() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/incrementDecrement.kt");
+        }
+
+        @Test
+        @TestMetadata("interfaceThisRef.kt")
+        public void testInterfaceThisRef() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/interfaceThisRef.kt");
+        }
+
+        @Test
+        @TestMetadata("kt16905.kt")
+        public void testKt16905() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt16905.kt");
+        }
+
+        @Test
+        @TestMetadata("kt23030.kt")
+        public void testKt23030() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt23030.kt");
+        }
+
+        @Test
+        @TestMetadata("kt24804.kt")
+        public void testKt24804() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt24804.kt");
+        }
+
+        @Test
+        @TestMetadata("kt27933.kt")
+        public void testKt27933() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt27933.kt");
+        }
+
+        @Test
+        @TestMetadata("kt28006.kt")
+        public void testKt28006() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt28006.kt");
+        }
+
+        @Test
+        @TestMetadata("kt28456.kt")
+        public void testKt28456() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt28456.kt");
+        }
+
+        @Test
+        @TestMetadata("kt28456a.kt")
+        public void testKt28456a() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt28456a.kt");
+        }
+
+        @Test
+        @TestMetadata("kt28456b.kt")
+        public void testKt28456b() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt28456b.kt");
+        }
+
+        @Test
+        @TestMetadata("kt30020.kt")
+        public void testKt30020() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt30020.kt");
+        }
+
+        @Test
+        @TestMetadata("kt30796.kt")
+        public void testKt30796() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt30796.kt");
+        }
+
+        @Test
+        @TestMetadata("kt35730.kt")
+        public void testKt35730() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt35730.kt");
+        }
+
+        @Test
+        @TestMetadata("kt36956.kt")
+        public void testKt36956() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt36956.kt");
+        }
+
+        @Test
+        @TestMetadata("kt36963.kt")
+        public void testKt36963() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt36963.kt");
+        }
+
+        @Test
+        @TestMetadata("kt37570.kt")
+        public void testKt37570() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt37570.kt");
+        }
+
+        @Test
+        @TestMetadata("kt37779.kt")
+        public void testKt37779() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt37779.kt");
+        }
+
+        @Test
+        @TestMetadata("kt45022.kt")
+        public void testKt45022() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt45022.kt");
+        }
+
+        @Test
+        @TestMetadata("kt47245.kt")
+        public void testKt47245() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt47245.kt");
+        }
+
+        @Test
+        @TestMetadata("kt47450.kt")
+        public void testKt47450() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt47450.kt");
+        }
+
+        @Test
+        @TestMetadata("kt48708.kt")
+        public void testKt48708() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt48708.kt");
+        }
+
+        @Test
+        @TestMetadata("kt48806.kt")
+        public void testKt48806() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt48806.kt");
+        }
+
+        @Test
+        @TestMetadata("kt49203.kt")
+        public void testKt49203() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt49203.kt");
+        }
+
+        @Test
+        @TestMetadata("kt50028.kt")
+        public void testKt50028() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt50028.kt");
+        }
+
+        @Test
+        @TestMetadata("kt51036.kt")
+        public void testKt51036() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/kt51036.kt");
+        }
+
+        @Test
+        @TestMetadata("lambdaInCAO.kt")
+        public void testLambdaInCAO() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/lambdaInCAO.kt");
+        }
+
+        @Test
+        @TestMetadata("literals.kt")
+        public void testLiterals() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/literals.kt");
+        }
+
+        @Test
+        @TestMetadata("memberTypeArguments.kt")
+        public void testMemberTypeArguments() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/memberTypeArguments.kt");
+        }
+
+        @Test
+        @TestMetadata("membersImportedFromObject.kt")
+        public void testMembersImportedFromObject() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/membersImportedFromObject.kt");
+        }
+
+        @Test
+        @TestMetadata("multipleSmartCasts.kt")
+        public void testMultipleSmartCasts() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/multipleSmartCasts.kt");
+        }
+
+        @Test
+        @TestMetadata("multipleThisReferences.kt")
+        public void testMultipleThisReferences() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/multipleThisReferences.kt");
+        }
+
+        @Test
+        @TestMetadata("objectAsCallable.kt")
+        public void testObjectAsCallable() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectAsCallable.kt");
+        }
+
+        @Test
+        @TestMetadata("objectByNameInsideObject.kt")
+        public void testObjectByNameInsideObject() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectByNameInsideObject.kt");
+        }
+
+        @Test
+        @TestMetadata("objectReference.kt")
+        public void testObjectReference() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectReference.kt");
+        }
+
+        @Test
+        @TestMetadata("objectReferenceInClosureInSuperConstructorCall.kt")
+        public void testObjectReferenceInClosureInSuperConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectReferenceInClosureInSuperConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("objectReferenceInFieldInitializer.kt")
+        public void testObjectReferenceInFieldInitializer() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/objectReferenceInFieldInitializer.kt");
+        }
+
+        @Test
+        @TestMetadata("outerClassInstanceReference.kt")
+        public void testOuterClassInstanceReference() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/outerClassInstanceReference.kt");
+        }
+
+        @Test
+        @TestMetadata("primitiveComparisons.kt")
+        public void testPrimitiveComparisons() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/primitiveComparisons.kt");
+        }
+
+        @Test
+        @TestMetadata("primitivesImplicitConversions.kt")
+        public void testPrimitivesImplicitConversions() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/primitivesImplicitConversions.kt");
+        }
+
+        @Test
+        @TestMetadata("references.kt")
+        public void testReferences() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/references.kt");
+        }
+
+        @Test
+        @TestMetadata("reflectionLiterals.kt")
+        public void testReflectionLiterals() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/reflectionLiterals.kt");
+        }
+
+        @Test
+        @TestMetadata("safeAssignment.kt")
+        public void testSafeAssignment() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/safeAssignment.kt");
+        }
+
+        @Test
+        @TestMetadata("safeCallWithIncrementDecrement.kt")
+        public void testSafeCallWithIncrementDecrement() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/safeCallWithIncrementDecrement.kt");
+        }
+
+        @Test
+        @TestMetadata("safeCalls.kt")
+        public void testSafeCalls() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/safeCalls.kt");
+        }
+
+        @Test
+        @TestMetadata("signedToUnsignedConversions.kt")
+        public void testSignedToUnsignedConversions() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/signedToUnsignedConversions.kt");
+        }
+
+        @Test
+        @TestMetadata("simpleOperators.kt")
+        public void testSimpleOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/simpleOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("simpleUnaryOperators.kt")
+        public void testSimpleUnaryOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/simpleUnaryOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCasts.kt")
+        public void testSmartCasts() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/smartCasts.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCastsWithDestructuring.kt")
+        public void testSmartCastsWithDestructuring() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/smartCastsWithDestructuring.kt");
+        }
+
+        @Test
+        @TestMetadata("specializedTypeAliasConstructorCall.kt")
+        public void testSpecializedTypeAliasConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/specializedTypeAliasConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("stringComparisons.kt")
+        public void testStringComparisons() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/stringComparisons.kt");
+        }
+
+        @Test
+        @TestMetadata("stringPlus.kt")
+        public void testStringPlus() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/stringPlus.kt");
+        }
+
+        @Test
+        @TestMetadata("stringTemplates.kt")
+        public void testStringTemplates() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/stringTemplates.kt");
+        }
+
+        @Test
+        @TestMetadata("suspendConversionForExtensionFunction.kt")
+        public void testSuspendConversionForExtensionFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/suspendConversionForExtensionFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("suspendConversionInVararg.kt")
+        public void testSuspendConversionInVararg() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/suspendConversionInVararg.kt");
+        }
+
+        @Test
+        @TestMetadata("suspendConversionOnArbitraryExpression.kt")
+        public void testSuspendConversionOnArbitraryExpression() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.kt");
+        }
+
+        @Test
+        @TestMetadata("suspendConversionWithFunInterfaces.kt")
+        public void testSuspendConversionWithFunInterfaces() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/suspendConversionWithFunInterfaces.kt");
+        }
+
+        @Test
+        @TestMetadata("temporaryInEnumEntryInitializer.kt")
+        public void testTemporaryInEnumEntryInitializer() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.kt");
+        }
+
+        @Test
+        @TestMetadata("temporaryInInitBlock.kt")
+        public void testTemporaryInInitBlock() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/temporaryInInitBlock.kt");
+        }
+
+        @Test
+        @TestMetadata("thisOfGenericOuterClass.kt")
+        public void testThisOfGenericOuterClass() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/thisOfGenericOuterClass.kt");
+        }
+
+        @Test
+        @TestMetadata("thisRefToObjectInNestedClassConstructorCall.kt")
+        public void testThisRefToObjectInNestedClassConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/thisRefToObjectInNestedClassConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("thisReferenceBeforeClassDeclared.kt")
+        public void testThisReferenceBeforeClassDeclared() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/thisReferenceBeforeClassDeclared.kt");
+        }
+
+        @Test
+        @TestMetadata("throw.kt")
+        public void testThrow() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/throw.kt");
+        }
+
+        @Test
+        @TestMetadata("tryCatch.kt")
+        public void testTryCatch() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/tryCatch.kt");
+        }
+
+        @Test
+        @TestMetadata("tryCatchWithImplicitCast.kt")
+        public void testTryCatchWithImplicitCast() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/tryCatchWithImplicitCast.kt");
+        }
+
+        @Test
+        @TestMetadata("typeAliasConstructorReference.kt")
+        public void testTypeAliasConstructorReference() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/typeAliasConstructorReference.kt");
+        }
+
+        @Test
+        @TestMetadata("typeOperators.kt")
+        public void testTypeOperators() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/typeOperators.kt");
+        }
+
+        @Test
+        @TestMetadata("typeParameterClassLiteral.kt")
+        public void testTypeParameterClassLiteral() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/typeParameterClassLiteral.kt");
+        }
+
+        @Test
+        @TestMetadata("unsignedIntegerLiterals.kt")
+        public void testUnsignedIntegerLiterals() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/unsignedIntegerLiterals.kt");
+        }
+
+        @Test
+        @TestMetadata("useImportedMember.kt")
+        public void testUseImportedMember() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/useImportedMember.kt");
+        }
+
+        @Test
+        @TestMetadata("values.kt")
+        public void testValues() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/values.kt");
+        }
+
+        @Test
+        @TestMetadata("vararg.kt")
+        public void testVararg() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/vararg.kt");
+        }
+
+        @Test
+        @TestMetadata("varargWithImplicitCast.kt")
+        public void testVarargWithImplicitCast() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/varargWithImplicitCast.kt");
+        }
+
+        @Test
+        @TestMetadata("variableAsFunctionCall.kt")
+        public void testVariableAsFunctionCall() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/variableAsFunctionCall.kt");
+        }
+
+        @Test
+        @TestMetadata("variableAsFunctionCallWithGenerics.kt")
+        public void testVariableAsFunctionCallWithGenerics() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/variableAsFunctionCallWithGenerics.kt");
+        }
+
+        @Test
+        @TestMetadata("when.kt")
+        public void testWhen() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/when.kt");
+        }
+
+        @Test
+        @TestMetadata("whenCoercedToUnit.kt")
+        public void testWhenCoercedToUnit() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenCoercedToUnit.kt");
+        }
+
+        @Test
+        @TestMetadata("whenElse.kt")
+        public void testWhenElse() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenElse.kt");
+        }
+
+        @Test
+        @TestMetadata("whenReturn.kt")
+        public void testWhenReturn() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenReturn.kt");
+        }
+
+        @Test
+        @TestMetadata("whenReturnUnit.kt")
+        public void testWhenReturnUnit() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenReturnUnit.kt");
+        }
+
+        @Test
+        @TestMetadata("whenSmartCastToEnum.kt")
+        public void testWhenSmartCastToEnum() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenSmartCastToEnum.kt");
+        }
+
+        @Test
+        @TestMetadata("whenUnusedExpression.kt")
+        public void testWhenUnusedExpression() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenUnusedExpression.kt");
+        }
+
+        @Test
+        @TestMetadata("whenWithSubjectVariable.kt")
+        public void testWhenWithSubjectVariable() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whenWithSubjectVariable.kt");
+        }
+
+        @Test
+        @TestMetadata("whileDoWhile.kt")
+        public void testWhileDoWhile() throws Exception {
+            runTest("compiler/testData/ir/irText/expressions/whileDoWhile.kt");
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/expressions/callableReferences")
+        @TestDataPath("$PROJECT_ROOT")
+        public class CallableReferences {
+            @Test
+            @TestMetadata("adaptedExtensionFunctions.kt")
+            public void testAdaptedExtensionFunctions() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/adaptedExtensionFunctions.kt");
+            }
+
+            @Test
+            @TestMetadata("adaptedWithCoercionToUnit.kt")
+            public void testAdaptedWithCoercionToUnit() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/adaptedWithCoercionToUnit.kt");
+            }
+
+            @Test
+            public void testAllFilesPresentInCallableReferences() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions/callableReferences"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("boundInlineAdaptedReference.kt")
+            public void testBoundInlineAdaptedReference() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/boundInlineAdaptedReference.kt");
+            }
+
+            @Test
+            @TestMetadata("boundInnerGenericConstructor.kt")
+            public void testBoundInnerGenericConstructor() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/boundInnerGenericConstructor.kt");
+            }
+
+            @Test
+            @TestMetadata("caoWithAdaptationForSam.kt")
+            public void testCaoWithAdaptationForSam() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/caoWithAdaptationForSam.kt");
+            }
+
+            @Test
+            @TestMetadata("constructorWithAdaptedArguments.kt")
+            public void testConstructorWithAdaptedArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/constructorWithAdaptedArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("funWithDefaultParametersAsKCallableStar.kt")
+            public void testFunWithDefaultParametersAsKCallableStar() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/funWithDefaultParametersAsKCallableStar.kt");
+            }
+
+            @Test
+            @TestMetadata("genericLocalClassConstructorReference.kt")
+            public void testGenericLocalClassConstructorReference() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/genericLocalClassConstructorReference.kt");
+            }
+
+            @Test
+            @TestMetadata("genericMember.kt")
+            public void testGenericMember() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/genericMember.kt");
+            }
+
+            @Test
+            @TestMetadata("importedFromObject.kt")
+            public void testImportedFromObject() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/importedFromObject.kt");
+            }
+
+            @Test
+            @TestMetadata("kt37131.kt")
+            public void testKt37131() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/kt37131.kt");
+            }
+
+            @Test
+            @TestMetadata("kt46069.kt")
+            public void testKt46069() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/kt46069.kt");
+            }
+
+            @Test
+            @TestMetadata("suspendConversion.kt")
+            public void testSuspendConversion() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/suspendConversion.kt");
+            }
+
+            @Test
+            @TestMetadata("typeArguments.kt")
+            public void testTypeArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/typeArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("unboundMemberReferenceWithAdaptedArguments.kt")
+            public void testUnboundMemberReferenceWithAdaptedArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/unboundMemberReferenceWithAdaptedArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("varargFunImportedFromObject.kt")
+            public void testVarargFunImportedFromObject() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/varargFunImportedFromObject.kt");
+            }
+
+            @Test
+            @TestMetadata("withAdaptationForSam.kt")
+            public void testWithAdaptationForSam() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/withAdaptationForSam.kt");
+            }
+
+            @Test
+            @TestMetadata("withAdaptedArguments.kt")
+            public void testWithAdaptedArguments() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/withAdaptedArguments.kt");
+            }
+
+            @Test
+            @TestMetadata("withArgumentAdaptationAndReceiver.kt")
+            public void testWithArgumentAdaptationAndReceiver() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/withArgumentAdaptationAndReceiver.kt");
+            }
+
+            @Test
+            @TestMetadata("withVarargViewedAsArray.kt")
+            public void testWithVarargViewedAsArray() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/callableReferences/withVarargViewedAsArray.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/expressions/floatingPointComparisons")
+        @TestDataPath("$PROJECT_ROOT")
+        public class FloatingPointComparisons {
+            @Test
+            public void testAllFilesPresentInFloatingPointComparisons() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions/floatingPointComparisons"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("comparableWithDoubleOrFloat.kt")
+            public void testComparableWithDoubleOrFloat() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/comparableWithDoubleOrFloat.kt");
+            }
+
+            @Test
+            @TestMetadata("eqeqRhsConditionPossiblyAffectingLhs.kt")
+            public void testEqeqRhsConditionPossiblyAffectingLhs() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointCompareTo.kt")
+            public void testFloatingPointCompareTo() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointCompareTo.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointEqeq.kt")
+            public void testFloatingPointEqeq() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointEqeq.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointEquals.kt")
+            public void testFloatingPointEquals() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointEquals.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointExcleq.kt")
+            public void testFloatingPointExcleq() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointExcleq.kt");
+            }
+
+            @Test
+            @TestMetadata("floatingPointLess.kt")
+            public void testFloatingPointLess() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/floatingPointLess.kt");
+            }
+
+            @Test
+            @TestMetadata("nullableAnyAsIntToDouble.kt")
+            public void testNullableAnyAsIntToDouble() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/nullableAnyAsIntToDouble.kt");
+            }
+
+            @Test
+            @TestMetadata("nullableFloatingPointEqeq.kt")
+            public void testNullableFloatingPointEqeq() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/nullableFloatingPointEqeq.kt");
+            }
+
+            @Test
+            @TestMetadata("typeParameterWithPrimitiveNumericSupertype.kt")
+            public void testTypeParameterWithPrimitiveNumericSupertype() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/typeParameterWithPrimitiveNumericSupertype.kt");
+            }
+
+            @Test
+            @TestMetadata("whenByFloatingPoint.kt")
+            public void testWhenByFloatingPoint() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/floatingPointComparisons/whenByFloatingPoint.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/expressions/funInterface")
+        @TestDataPath("$PROJECT_ROOT")
+        public class FunInterface {
+            @Test
+            public void testAllFilesPresentInFunInterface() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions/funInterface"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("arrayAsVarargAfterSamArgument_fi.kt")
+            public void testArrayAsVarargAfterSamArgument_fi() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/arrayAsVarargAfterSamArgument_fi.kt");
+            }
+
+            @Test
+            @TestMetadata("basicFunInterfaceConversion.kt")
+            public void testBasicFunInterfaceConversion() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/basicFunInterfaceConversion.kt");
+            }
+
+            @Test
+            @TestMetadata("castFromAny.kt")
+            public void testCastFromAny() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/castFromAny.kt");
+            }
+
+            @Test
+            @TestMetadata("functionSupertype.kt")
+            public void testFunctionSupertype() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/functionSupertype.kt");
+            }
+
+            @Test
+            @TestMetadata("partialSam.kt")
+            public void testPartialSam() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/partialSam.kt");
+            }
+
+            @Test
+            @TestMetadata("samConversionInVarargs.kt")
+            public void testSamConversionInVarargs() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/samConversionInVarargs.kt");
+            }
+
+            @Test
+            @TestMetadata("samConversionInVarargsMixed.kt")
+            public void testSamConversionInVarargsMixed() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/samConversionInVarargsMixed.kt");
+            }
+
+            @Test
+            @TestMetadata("samConversionOnCallableReference.kt")
+            public void testSamConversionOnCallableReference() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/samConversionOnCallableReference.kt");
+            }
+
+            @Test
+            @TestMetadata("samConversionsWithSmartCasts.kt")
+            public void testSamConversionsWithSmartCasts() throws Exception {
+                runTest("compiler/testData/ir/irText/expressions/funInterface/samConversionsWithSmartCasts.kt");
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/expressions/sam")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Sam {
+            @Test
+            public void testAllFilesPresentInSam() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/expressions/sam"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/firProblems")
+    @TestDataPath("$PROJECT_ROOT")
+    public class FirProblems {
+        @Test
+        public void testAllFilesPresentInFirProblems() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/firProblems"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("AnnotationLoader.kt")
+        public void testAnnotationLoader() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/AnnotationLoader.kt");
+        }
+
+        @Test
+        @TestMetadata("AnonymousAsReturnOfGenericFunction.kt")
+        public void testAnonymousAsReturnOfGenericFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/AnonymousAsReturnOfGenericFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("ArrayMap.kt")
+        public void testArrayMap() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/ArrayMap.kt");
+        }
+
+        @Test
+        @TestMetadata("AssignmentOperator.kt")
+        public void testAssignmentOperator() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/AssignmentOperator.kt");
+        }
+
+        @Test
+        @TestMetadata("candidateSymbol.kt")
+        public void testCandidateSymbol() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/candidateSymbol.kt");
+        }
+
+        @Test
+        @TestMetadata("cannotCastToFunction.kt")
+        public void testCannotCastToFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/cannotCastToFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("DeepCopyIrTree.kt")
+        public void testDeepCopyIrTree() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/DeepCopyIrTree.kt");
+        }
+
+        @Test
+        @TestMetadata("deprecated.kt")
+        public void testDeprecated() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/deprecated.kt");
+        }
+
+        @Test
+        @TestMetadata("emptyWhen.kt")
+        public void testEmptyWhen() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/emptyWhen.kt");
+        }
+
+        @Test
+        @TestMetadata("ErrorInDefaultValue.kt")
+        public void testErrorInDefaultValue() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/ErrorInDefaultValue.kt");
+        }
+
+        @Test
+        @TestMetadata("explicitIncrement.kt")
+        public void testExplicitIncrement() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/explicitIncrement.kt");
+        }
+
+        @Test
+        @TestMetadata("FakeOverrideInAnonymousWithDelegation.kt")
+        public void testFakeOverrideInAnonymousWithDelegation() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/FakeOverrideInAnonymousWithDelegation.kt");
+        }
+
+        @Test
+        @TestMetadata("Fir2IrClassifierStorage.kt")
+        public void testFir2IrClassifierStorage() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/Fir2IrClassifierStorage.kt");
+        }
+
+        @Test
+        @TestMetadata("FirBuilder.kt")
+        public void testFirBuilder() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/FirBuilder.kt");
+        }
+
+        @Test
+        @TestMetadata("ImplicitReceiverStack.kt")
+        public void testImplicitReceiverStack() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/ImplicitReceiverStack.kt");
+        }
+
+        @Test
+        @TestMetadata("inapplicableCollectionSet.kt")
+        public void testInapplicableCollectionSet() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/inapplicableCollectionSet.kt");
+        }
+
+        @Test
+        @TestMetadata("InnerClassInAnonymous.kt")
+        public void testInnerClassInAnonymous() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/InnerClassInAnonymous.kt");
+        }
+
+        @Test
+        @TestMetadata("integerLiteralWithExpectedTypealiasType.kt")
+        public void testIntegerLiteralWithExpectedTypealiasType() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/integerLiteralWithExpectedTypealiasType.kt");
+        }
+
+        @Test
+        @TestMetadata("kt43342.kt")
+        public void testKt43342() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/kt43342.kt");
+        }
+
+        @Test
+        @TestMetadata("kt55458.kt")
+        public void testKt55458() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/kt55458.kt");
+        }
+
+        @Test
+        @TestMetadata("kt59102.kt")
+        public void testKt59102() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/kt59102.kt");
+        }
+
+        @Test
+        @TestMetadata("lambdaInEnumEntryConstructorCall.kt")
+        public void testLambdaInEnumEntryConstructorCall() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/lambdaInEnumEntryConstructorCall.kt");
+        }
+
+        @Test
+        @TestMetadata("localClassUsedBeforeDeclaration.kt")
+        public void testLocalClassUsedBeforeDeclaration() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/localClassUsedBeforeDeclaration.kt");
+        }
+
+        @Test
+        @TestMetadata("localCompanion.kt")
+        public void testLocalCompanion() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/localCompanion.kt");
+        }
+
+        @Test
+        @TestMetadata("LocalSuspendFun.kt")
+        public void testLocalSuspendFun() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt");
+        }
+
+        @Test
+        @TestMetadata("readWriteProperty.kt")
+        public void testReadWriteProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/readWriteProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("recursiveCapturedTypeInPropertyReference.kt")
+        public void testRecursiveCapturedTypeInPropertyReference() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/recursiveCapturedTypeInPropertyReference.kt");
+        }
+
+        @Test
+        @TestMetadata("reflectGetOnNullableTypeAlias.kt")
+        public void testReflectGetOnNullableTypeAlias() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/reflectGetOnNullableTypeAlias.kt");
+        }
+
+        @Test
+        @TestMetadata("SafeLetWithReturn.kt")
+        public void testSafeLetWithReturn() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/SafeLetWithReturn.kt");
+        }
+
+        @Test
+        @TestMetadata("SignatureClash.kt")
+        public void testSignatureClash() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/SignatureClash.kt");
+        }
+
+        @Test
+        @TestMetadata("SimpleTypeMarker.kt")
+        public void testSimpleTypeMarker() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt");
+        }
+
+        @Test
+        @TestMetadata("thisInEnumConstructor.kt")
+        public void testThisInEnumConstructor() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/thisInEnumConstructor.kt");
+        }
+
+        @Test
+        @TestMetadata("timesInBuilder.kt")
+        public void testTimesInBuilder() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/timesInBuilder.kt");
+        }
+
+        @Test
+        @TestMetadata("TypeParameterBounds.kt")
+        public void testTypeParameterBounds() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/TypeParameterBounds.kt");
+        }
+
+        @Test
+        @TestMetadata("TypeParameterInNestedClass.kt")
+        public void testTypeParameterInNestedClass() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/TypeParameterInNestedClass.kt");
+        }
+
+        @Test
+        @TestMetadata("typeVariableAfterBuildMap.kt")
+        public void testTypeVariableAfterBuildMap() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/typeVariableAfterBuildMap.kt");
+        }
+
+        @Test
+        @TestMetadata("VarInInit.kt")
+        public void testVarInInit() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/VarInInit.kt");
+        }
+
+        @Test
+        @TestMetadata("VarargIntegerLiteral.kt")
+        public void testVarargIntegerLiteral() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/VarargIntegerLiteral.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/js")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Js {
+        @Test
+        public void testAllFilesPresentInJs() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/js"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/js/dynamic")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Dynamic {
+            @Test
+            public void testAllFilesPresentInDynamic() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/js/dynamic"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/js/external")
+        @TestDataPath("$PROJECT_ROOT")
+        public class External {
+            @Test
+            public void testAllFilesPresentInExternal() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/js/external"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/js/native")
+        @TestDataPath("$PROJECT_ROOT")
+        public class Native {
+            @Test
+            public void testAllFilesPresentInNative() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/js/native"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/lambdas")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Lambdas {
+        @Test
+        public void testAllFilesPresentInLambdas() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/lambdas"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("anonymousFunction.kt")
+        public void testAnonymousFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/anonymousFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("destructuringInLambda.kt")
+        public void testDestructuringInLambda() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/destructuringInLambda.kt");
+        }
+
+        @Test
+        @TestMetadata("extensionLambda.kt")
+        public void testExtensionLambda() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/extensionLambda.kt");
+        }
+
+        @Test
+        @TestMetadata("justLambda.kt")
+        public void testJustLambda() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/justLambda.kt");
+        }
+
+        @Test
+        @TestMetadata("lambdaReturningUnit.kt")
+        public void testLambdaReturningUnit() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/lambdaReturningUnit.kt");
+        }
+
+        @Test
+        @TestMetadata("localFunction.kt")
+        public void testLocalFunction() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/localFunction.kt");
+        }
+
+        @Test
+        @TestMetadata("multipleImplicitReceivers.kt")
+        public void testMultipleImplicitReceivers() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/multipleImplicitReceivers.kt");
+        }
+
+        @Test
+        @TestMetadata("nonLocalReturn.kt")
+        public void testNonLocalReturn() throws Exception {
+            runTest("compiler/testData/ir/irText/lambdas/nonLocalReturn.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/properties")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Properties {
+        @Test
+        public void testAllFilesPresentInProperties() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/properties"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/properties/backingField")
+        @TestDataPath("$PROJECT_ROOT")
+        public class BackingField {
+            @Test
+            public void testAllFilesPresentInBackingField() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/properties/backingField"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Test
+            @TestMetadata("backingFieldVisibility.kt")
+            public void testBackingFieldVisibility() throws Exception {
+                runTest("compiler/testData/ir/irText/properties/backingField/backingFieldVisibility.kt");
+            }
+
+            @Test
+            @TestMetadata("explicitBackingFieldType.kt")
+            public void testExplicitBackingFieldType() throws Exception {
+                runTest("compiler/testData/ir/irText/properties/backingField/explicitBackingFieldType.kt");
+            }
+
+            @Test
+            @TestMetadata("independentBackingFieldType.kt")
+            public void testIndependentBackingFieldType() throws Exception {
+                runTest("compiler/testData/ir/irText/properties/backingField/independentBackingFieldType.kt");
+            }
+
+            @Test
+            @TestMetadata("propertyTypeNarrowing.kt")
+            public void testPropertyTypeNarrowing() throws Exception {
+                runTest("compiler/testData/ir/irText/properties/backingField/propertyTypeNarrowing.kt");
+            }
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/regressions")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Regressions {
+        @Test
+        public void testAllFilesPresentInRegressions() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/regressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("coercionInLoop.kt")
+        public void testCoercionInLoop() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/coercionInLoop.kt");
+        }
+
+        @Test
+        @TestMetadata("integerCoercionToT.kt")
+        public void testIntegerCoercionToT() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/integerCoercionToT.kt");
+        }
+
+        @Test
+        @TestMetadata("kt24114.kt")
+        public void testKt24114() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/kt24114.kt");
+        }
+
+        @Test
+        @TestMetadata("newInferenceFixationOrder1.kt")
+        public void testNewInferenceFixationOrder1() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt");
+        }
+
+        @Test
+        @TestMetadata("typeAliasCtorForGenericClass.kt")
+        public void testTypeAliasCtorForGenericClass() throws Exception {
+            runTest("compiler/testData/ir/irText/regressions/typeAliasCtorForGenericClass.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/singletons")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Singletons {
+        @Test
+        public void testAllFilesPresentInSingletons() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/singletons"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("companion.kt")
+        public void testCompanion() throws Exception {
+            runTest("compiler/testData/ir/irText/singletons/companion.kt");
+        }
+
+        @Test
+        @TestMetadata("enumEntry.kt")
+        public void testEnumEntry() throws Exception {
+            runTest("compiler/testData/ir/irText/singletons/enumEntry.kt");
+        }
+
+        @Test
+        @TestMetadata("object.kt")
+        public void testObject() throws Exception {
+            runTest("compiler/testData/ir/irText/singletons/object.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/stubs")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Stubs {
+        @Test
+        public void testAllFilesPresentInStubs() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/stubs"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("genericClassInDifferentModule.kt")
+        public void testGenericClassInDifferentModule() throws Exception {
+            runTest("compiler/testData/ir/irText/stubs/genericClassInDifferentModule.kt");
+        }
+
+        @Test
+        @TestMetadata("kotlinInnerClass.kt")
+        public void testKotlinInnerClass() throws Exception {
+            runTest("compiler/testData/ir/irText/stubs/kotlinInnerClass.kt");
+        }
+
+        @Test
+        @TestMetadata("simple.kt")
+        public void testSimple() throws Exception {
+            runTest("compiler/testData/ir/irText/stubs/simple.kt");
+        }
+    }
+
+    @Nested
+    @TestMetadata("compiler/testData/ir/irText/types")
+    @TestDataPath("$PROJECT_ROOT")
+    public class Types {
+        @Test
+        @TestMetadata("abbreviatedTypes.kt")
+        public void testAbbreviatedTypes() throws Exception {
+            runTest("compiler/testData/ir/irText/types/abbreviatedTypes.kt");
+        }
+
+        @Test
+        public void testAllFilesPresentInTypes() throws Exception {
+            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/types"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+        }
+
+        @Test
+        @TestMetadata("castsInsideCoroutineInference.kt")
+        public void testCastsInsideCoroutineInference() throws Exception {
+            runTest("compiler/testData/ir/irText/types/castsInsideCoroutineInference.kt");
+        }
+
+        @Test
+        @TestMetadata("coercionToUnitInLambdaReturnValue.kt")
+        public void testCoercionToUnitInLambdaReturnValue() throws Exception {
+            runTest("compiler/testData/ir/irText/types/coercionToUnitInLambdaReturnValue.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNonNull.kt")
+        public void testDefinitelyNonNull() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNonNull.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNonNullOverride.kt")
+        public void testDefinitelyNonNullOverride() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNonNullOverride.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNonNullSAM.kt")
+        public void testDefinitelyNonNullSAM() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNonNullSAM.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNotNullAsArgument.kt")
+        public void testDefinitelyNotNullAsArgument() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNotNullAsArgument.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNotNullAsReceiver.kt")
+        public void testDefinitelyNotNullAsReceiver() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNotNullAsReceiver.kt");
+        }
+
+        @Test
+        @TestMetadata("definitelyNotNullWithIntersection1.kt")
+        public void testDefinitelyNotNullWithIntersection1() throws Exception {
+            runTest("compiler/testData/ir/irText/types/definitelyNotNullWithIntersection1.kt");
+        }
+
+        @Test
+        @TestMetadata("dontLeaveStubTypesInSetter.kt")
+        public void testDontLeaveStubTypesInSetter() throws Exception {
+            runTest("compiler/testData/ir/irText/types/dontLeaveStubTypesInSetter.kt");
+        }
+
+        @Test
+        @TestMetadata("genericDelegatedDeepProperty.kt")
+        public void testGenericDelegatedDeepProperty() throws Exception {
+            runTest("compiler/testData/ir/irText/types/genericDelegatedDeepProperty.kt");
+        }
+
+        @Test
+        @TestMetadata("genericFunWithStar.kt")
+        public void testGenericFunWithStar() throws Exception {
+            runTest("compiler/testData/ir/irText/types/genericFunWithStar.kt");
+        }
+
+        @Test
+        @TestMetadata("genericPropertyReferenceType.kt")
+        public void testGenericPropertyReferenceType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/genericPropertyReferenceType.kt");
+        }
+
+        @Test
+        @TestMetadata("inStarProjectionInReceiverType.kt")
+        public void testInStarProjectionInReceiverType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/inStarProjectionInReceiverType.kt");
+        }
+
+        @Test
+        @TestMetadata("intersectionType1.kt")
+        public void testIntersectionType1() throws Exception {
+            runTest("compiler/testData/ir/irText/types/intersectionType1.kt");
+        }
+
+        @Test
+        @TestMetadata("intersectionType2.kt")
+        public void testIntersectionType2() throws Exception {
+            runTest("compiler/testData/ir/irText/types/intersectionType2.kt");
+        }
+
+        @Test
+        @TestMetadata("intersectionType3.kt")
+        public void testIntersectionType3() throws Exception {
+            runTest("compiler/testData/ir/irText/types/intersectionType3.kt");
+        }
+
+        @Test
+        @TestMetadata("intersectionTypeInSamType.kt")
+        public void testIntersectionTypeInSamType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/intersectionTypeInSamType.kt");
+        }
+
+        @Test
+        @TestMetadata("kt36143.kt")
+        public void testKt36143() throws Exception {
+            runTest("compiler/testData/ir/irText/types/kt36143.kt");
+        }
+
+        @Test
+        @TestMetadata("kt49526.kt")
+        public void testKt49526() throws Exception {
+            runTest("compiler/testData/ir/irText/types/kt49526.kt");
+        }
+
+        @Test
+        @TestMetadata("localVariableOfIntersectionType.kt")
+        public void testLocalVariableOfIntersectionType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/localVariableOfIntersectionType.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCastOnFakeOverrideReceiver.kt")
+        public void testSmartCastOnFakeOverrideReceiver() throws Exception {
+            runTest("compiler/testData/ir/irText/types/smartCastOnFakeOverrideReceiver.kt");
+        }
+
+        @Test
+        @TestMetadata("smartCastOnReceiverOfGenericType.kt")
+        public void testSmartCastOnReceiverOfGenericType() throws Exception {
+            runTest("compiler/testData/ir/irText/types/smartCastOnReceiverOfGenericType.kt");
+        }
+
+        @Test
+        @TestMetadata("starProjection.kt")
+        public void testStarProjection() throws Exception {
+            runTest("compiler/testData/ir/irText/types/starProjection.kt");
+        }
+
+        @Test
+        @TestMetadata("typeAliasWithUnsafeVariance.kt")
+        public void testTypeAliasWithUnsafeVariance() throws Exception {
+            runTest("compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt");
+        }
+
+        @Test
+        @TestMetadata("typeCheckOnDefinitelyNotNull.kt")
+        public void testTypeCheckOnDefinitelyNotNull() throws Exception {
+            runTest("compiler/testData/ir/irText/types/typeCheckOnDefinitelyNotNull.kt");
+        }
+
+        @Nested
+        @TestMetadata("compiler/testData/ir/irText/types/nullChecks")
+        @TestDataPath("$PROJECT_ROOT")
+        public class NullChecks {
+            @Test
+            public void testAllFilesPresentInNullChecks() throws Exception {
+                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/types/nullChecks"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+            }
+
+            @Nested
+            @TestMetadata("compiler/testData/ir/irText/types/nullChecks/nullCheckOnLambdaResult")
+            @TestDataPath("$PROJECT_ROOT")
+            public class NullCheckOnLambdaResult {
+                @Test
+                public void testAllFilesPresentInNullCheckOnLambdaResult() throws Exception {
+                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/types/nullChecks/nullCheckOnLambdaResult"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true);
+                }
+            }
+        }
+    }
+}
diff --git a/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt b/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt
index 325fcbd..8fe7427 100644
--- a/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt
+++ b/native/native.tests/tests/org/jetbrains/kotlin/generators/tests/GenerateNativeTests.kt
@@ -20,7 +20,6 @@
 import org.jetbrains.kotlin.konan.diagnostics.AbstractDiagnosticsNativeTest
 import org.jetbrains.kotlin.konan.diagnostics.AbstractFirLightTreeNativeDiagnosticsTest
 import org.jetbrains.kotlin.konan.diagnostics.AbstractFirPsiNativeDiagnosticsTest
-import org.jetbrains.kotlin.konan.blackboxtest.AbstractClassicNativeIrTextTest
 import org.jetbrains.kotlin.test.TargetBackend
 import org.jetbrains.kotlin.test.utils.CUSTOM_TEST_DATA_EXTENSION_PATTERN
 import org.junit.jupiter.api.Tag
@@ -80,6 +79,12 @@
             testClass<AbstractClassicNativeIrTextTest> {
                 model("ir/irText")
             }
+            testClass<AbstractFirLightTreeNativeIrTextTest> {
+                model("ir/irText")
+            }
+            testClass<AbstractFirPsiNativeIrTextTest> {
+                model("ir/irText")
+            }
         }
 
         // Samples (how to utilize the abilities of new test infrastructure).
diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractFirNativeIrTextTestBase.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractFirNativeIrTextTestBase.kt
new file mode 100644
index 0000000..4d82e45
--- /dev/null
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractFirNativeIrTextTestBase.kt
@@ -0,0 +1,42 @@
+/*
+ * 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.konan.blackboxtest
+
+import org.jetbrains.kotlin.konan.blackboxtest.support.irtext.Fir2IrNativeResultsConverter
+import org.jetbrains.kotlin.test.Constructor
+import org.jetbrains.kotlin.test.FirParser
+import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
+import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
+import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
+import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
+import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
+import org.jetbrains.kotlin.test.model.FrontendFacade
+import org.jetbrains.kotlin.test.model.FrontendKind
+import org.jetbrains.kotlin.test.model.FrontendKinds
+import org.jetbrains.kotlin.test.runners.codegen.FirPsiCodegenTest
+
+abstract class AbstractFirNativeIrTextTestBase(private val parser: FirParser) : AbstractNativeIrTextTestBase<FirOutputArtifact>() {
+    override val frontend: FrontendKind<*>
+        get() = FrontendKinds.FIR
+
+    override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
+        get() = ::FirFrontendFacade
+
+    override val converter: Constructor<Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>>
+        get() = ::Fir2IrNativeResultsConverter
+
+    override fun configure(builder: TestConfigurationBuilder) {
+        super.configure(builder)
+        with(builder) {
+            commonConfigurationForK2(parser)
+        }
+    }
+}
+
+open class AbstractFirLightTreeNativeIrTextTest : AbstractFirNativeIrTextTestBase(FirParser.LightTree)
+
+@FirPsiCodegenTest
+open class AbstractFirPsiNativeIrTextTest : AbstractFirNativeIrTextTestBase(FirParser.Psi)
diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/irtext/Fir2IrNativeResultsConverter.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/irtext/Fir2IrNativeResultsConverter.kt
new file mode 100644
index 0000000..69e72c5
--- /dev/null
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/irtext/Fir2IrNativeResultsConverter.kt
@@ -0,0 +1,206 @@
+/*
+ * 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.konan.blackboxtest.support.irtext
+
+import org.jetbrains.kotlin.KtSourceFile
+import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
+import org.jetbrains.kotlin.backend.common.serialization.metadata.DynamicTypeDeserializer
+import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureDescriptor
+import org.jetbrains.kotlin.builtins.DefaultBuiltIns
+import org.jetbrains.kotlin.builtins.KotlinBuiltIns
+import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
+import org.jetbrains.kotlin.config.CommonConfigurationKeys
+import org.jetbrains.kotlin.config.CompilerConfiguration
+import org.jetbrains.kotlin.config.LanguageVersionSettings
+import org.jetbrains.kotlin.config.languageVersionSettings
+import org.jetbrains.kotlin.constant.EvaluatedConstTracker
+import org.jetbrains.kotlin.descriptors.ModuleDescriptor
+import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
+import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
+import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
+import org.jetbrains.kotlin.fir.backend.*
+import org.jetbrains.kotlin.fir.declarations.FirFile
+import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
+import org.jetbrains.kotlin.fir.pipeline.ModuleCompilerAnalyzedOutput
+import org.jetbrains.kotlin.incremental.components.LookupTracker
+import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
+import org.jetbrains.kotlin.ir.util.KotlinMangler
+import org.jetbrains.kotlin.konan.blackboxtest.support.CastCompatibleKotlinNativeClassLoader
+import org.jetbrains.kotlin.library.metadata.KlibMetadataFactories
+import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary
+import org.jetbrains.kotlin.library.unresolvedDependencies
+import org.jetbrains.kotlin.storage.LockBasedStorageManager
+import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
+import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
+import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
+import org.jetbrains.kotlin.test.frontend.fir.getAllNativeDependenciesPaths
+import org.jetbrains.kotlin.test.frontend.fir.resolveLibraries
+import org.jetbrains.kotlin.test.model.BackendKinds
+import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
+import org.jetbrains.kotlin.test.model.FrontendKinds
+import org.jetbrains.kotlin.test.model.TestModule
+import org.jetbrains.kotlin.test.services.TestServices
+import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
+import org.jetbrains.kotlin.test.services.libraryProvider
+
+class Fir2IrNativeResultsConverter(
+    testServices: TestServices
+) : Frontend2BackendConverter<FirOutputArtifact, IrBackendInput>(
+    testServices,
+    FrontendKinds.FIR,
+    BackendKinds.IrBackend
+) {
+
+    override fun transform(module: TestModule, inputArtifact: FirOutputArtifact): IrBackendInput? =
+        try {
+            transformInternal(module, inputArtifact)
+        } catch (e: Throwable) {
+            if (CodegenTestDirectives.IGNORE_FIR2IR_EXCEPTIONS_IF_FIR_CONTAINS_ERRORS in module.directives && inputArtifact.hasErrors) {
+                null
+            } else {
+                throw e
+            }
+        }
+
+    private fun transformInternal(
+        module: TestModule,
+        inputArtifact: FirOutputArtifact
+    ): IrBackendInput {
+        val configuration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
+
+        lateinit var mainIrPart: IrModuleFragment
+        val dependentIrParts = mutableListOf<IrModuleFragment>()
+        val sourceFiles = mutableListOf<KtSourceFile>()
+        val firFilesAndComponentsBySourceFile = mutableMapOf<KtSourceFile, Pair<FirFile, Fir2IrComponents>>()
+
+        lateinit var mainPluginContext: IrPluginContext
+        var irBuiltIns: IrBuiltInsOverFir? = null
+
+        // KT-61248: TODO Replace reflection for direct import of mangler object, when it would extracted out of `backend.native` module
+        val classLoader = CastCompatibleKotlinNativeClassLoader.kotlinNativeClassLoader.classLoader
+        val konanManglerIrClass = Class.forName("org.jetbrains.kotlin.backend.konan.serialization.KonanManglerIr", true, classLoader)
+        val konanManglerDescClass = Class.forName("org.jetbrains.kotlin.backend.konan.serialization.KonanManglerDesc", true, classLoader)
+        val konanManglerFirClass = Class.forName("org.jetbrains.kotlin.backend.konan.FirNativeKotlinMangler", true, classLoader)
+
+        val irMangler = konanManglerIrClass.kotlin.objectInstance as KotlinMangler.IrMangler
+        val descMangler = konanManglerDescClass.kotlin.objectInstance as KotlinMangler.DescriptorMangler
+        val firMangler = konanManglerFirClass.kotlin.objectInstance as FirMangler
+
+        val commonMemberStorage = Fir2IrCommonMemberStorage(IdSignatureDescriptor(descMangler), firMangler)
+
+        val diagnosticReporter = DiagnosticReporterFactory.createReporter()
+
+        for ((index, part) in inputArtifact.partsForDependsOnModules.withIndex()) {
+            val (irModuleFragment, components, pluginContext) =
+                part.firAnalyzerFacade.result.outputs.single().convertToNativeIr(
+                    testServices,
+                    module,
+                    configuration,
+                    diagnosticReporter,
+                    commonMemberStorage,
+                    irBuiltIns,
+                    irMangler
+                )
+            irBuiltIns = components.irBuiltIns
+            mainPluginContext = pluginContext
+
+            if (index < inputArtifact.partsForDependsOnModules.size - 1) {
+                dependentIrParts.add(irModuleFragment)
+            } else {
+                mainIrPart = irModuleFragment
+            }
+
+            sourceFiles.addAll(part.firFiles.mapNotNull { it.value.sourceFile })
+
+            for (firFile in part.firFiles.values) {
+                firFilesAndComponentsBySourceFile[firFile.sourceFile!!] = firFile to components
+            }
+        }
+
+        val result = IrBackendInput.NativeBackendInput(
+            mainIrPart,
+            dependentIrParts,
+            mainPluginContext,
+            diagnosticReporter = diagnosticReporter,
+            descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler,
+            irMangler = irMangler,
+            firMangler = commonMemberStorage.firSignatureComposer.mangler,
+        )
+
+        return result
+    }
+}
+
+fun ModuleCompilerAnalyzedOutput.convertToNativeIr(
+    testServices: TestServices,
+    module: TestModule,
+    configuration: CompilerConfiguration,
+    diagnosticReporter: DiagnosticReporter,
+    commonMemberStorage: Fir2IrCommonMemberStorage,
+    irBuiltIns: IrBuiltInsOverFir?,
+    irMangler: KotlinMangler.IrMangler,
+): Fir2IrResult {
+    // TODO: consider avoiding repeated libraries resolution
+    val libraries = resolveLibraries(configuration, getAllNativeDependenciesPaths(module, testServices))
+    val (dependencies, builtIns) = loadResolvedLibraries(libraries, configuration.languageVersionSettings, testServices)
+
+    val fir2IrConfiguration = Fir2IrConfiguration(
+        languageVersionSettings = configuration.languageVersionSettings,
+        diagnosticReporter = diagnosticReporter,
+        linkViaSignatures = true,
+        evaluatedConstTracker = configuration
+            .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()),
+        inlineConstTracker = null,
+        allowNonCachedDeclarations = false,
+    )
+    return convertToIr(
+        Fir2IrExtensions.Default,
+        fir2IrConfiguration,
+        commonMemberStorage,
+        irBuiltIns,
+        irMangler,
+        Fir2IrVisibilityConverter.Default,
+        builtIns ?: DefaultBuiltIns.Instance // TODO: consider passing externally,
+    ).also {
+        (it.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = dependencies }
+    }
+}
+
+internal val KlibFactories = KlibMetadataFactories(::KonanBuiltIns, DynamicTypeDeserializer)
+
+private fun loadResolvedLibraries(
+    resolvedLibraries: List<KotlinResolvedLibrary>,
+    languageVersionSettings: LanguageVersionSettings,
+    testServices: TestServices
+): Pair<List<ModuleDescriptor>, KotlinBuiltIns?> {
+    var builtInsModule: KotlinBuiltIns? = null
+    val dependencies = mutableListOf<ModuleDescriptorImpl>()
+
+    return resolvedLibraries.map { resolvedLibrary ->
+        // resolvedLibrary.library.libraryName in fact resolves to (modified) file path, which is confusing and maybe should be refactored
+        testServices.libraryProvider.getOrCreateStdlibByPath(resolvedLibrary.library.libraryName) {
+            // TODO: check safety of the approach of creating a separate storage manager per library
+            val storageManager = LockBasedStorageManager("ModulesStructure")
+
+            val moduleDescriptor = KlibFactories.DefaultDeserializedDescriptorFactory.createDescriptorOptionalBuiltIns(
+                resolvedLibrary.library,
+                languageVersionSettings,
+                storageManager,
+                builtInsModule,
+                packageAccessHandler = null,
+                lookupTracker = LookupTracker.DO_NOTHING
+            )
+            dependencies += moduleDescriptor
+            moduleDescriptor.setDependencies(ArrayList(dependencies))
+
+            Pair(moduleDescriptor, resolvedLibrary.library)
+        }.also {
+            val isBuiltIns = resolvedLibrary.library.unresolvedDependencies.isEmpty()
+            if (isBuiltIns) builtInsModule = it.builtIns
+        }
+    } to builtInsModule
+}
+