[K/N] Run irText tests for Native backend

^KT-58240
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DumpIrTree.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DumpIrTree.kt
index 3e803c9..bac3840 100644
--- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DumpIrTree.kt
+++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DumpIrTree.kt
@@ -23,9 +23,11 @@
 import org.jetbrains.kotlin.ir.symbols.IrSymbol
 import org.jetbrains.kotlin.ir.types.IrErrorType
 import org.jetbrains.kotlin.ir.types.IrType
+import org.jetbrains.kotlin.ir.types.classFqName
 import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
 import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
 import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
+import org.jetbrains.kotlin.name.FqName
 import org.jetbrains.kotlin.utils.Printer
 
 fun IrElement.dump(options: DumpIrTreeOptions = DumpIrTreeOptions()): String =
@@ -53,6 +55,8 @@
  * @property printFlagsInDeclarationReferences If `false`, flags like `fake_override`, `inline` etc. are not printed in rendered declaration
  * references.
  * @property printSignatures Whether to print signatures for nodes that have public signatures
+ * @property annotationFilter Whether to print the provided annotation
+ * @property doPrintExternalFlag Whether to print "external" flag for the provided simple function
  */
 data class DumpIrTreeOptions(
     val normalizeNames: Boolean = false,
@@ -62,6 +66,8 @@
     val printFlagsInDeclarationReferences: Boolean = true,
     val printSignatures: Boolean = false,
     val printTypeAbbreviations: Boolean = true,
+    val annotationFilter: (IrConstructorCall) -> Boolean = { true },
+    val doPrintExternalFlag: (IrSimpleFunction) -> Boolean = { it.isExternal },
 )
 
 private fun IrFile.shouldSkipDump(): Boolean {
@@ -182,9 +188,11 @@
     }
 
     private fun dumpAnnotations(element: IrAnnotationContainer) {
-        element.annotations.dumpItems("annotations") { irAnnotation: IrConstructorCall ->
-            printer.println(elementRenderer.renderAsAnnotation(irAnnotation))
-        }
+        element.annotations
+            .filter { options.annotationFilter(it) }
+            .dumpItems("annotations") { irAnnotation: IrConstructorCall ->
+                printer.println(elementRenderer.renderAsAnnotation(irAnnotation))
+            }
     }
 
     private fun IrSymbol.dump(label: String? = null) =
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt
index d8ed550..c56372c 100644
--- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt
+++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt
@@ -150,7 +150,7 @@
 
                 if (options.printFlagsInDeclarationReferences) {
                     when (declaration) {
-                        is IrSimpleFunction -> append(declaration.renderSimpleFunctionFlags())
+                        is IrSimpleFunction -> append(declaration.renderSimpleFunctionFlags(options))
                         is IrConstructor -> append(declaration.renderConstructorFlags())
                     }
                 }
@@ -266,7 +266,7 @@
                     renderTypeParameters() + " " +
                     renderValueParameterTypes() + " " +
                     "returnType:${renderReturnType(this@RenderIrElementVisitor, options)} " +
-                    renderSimpleFunctionFlags()
+                    renderSimpleFunctionFlags(options)
         }
 
     private fun IrFunction.renderValueParameterTypes(): String =
@@ -678,11 +678,11 @@
         "static".takeIf { isStatic },
     )
 
-private fun IrSimpleFunction.renderSimpleFunctionFlags(): String =
+private fun IrSimpleFunction.renderSimpleFunctionFlags(options: DumpIrTreeOptions): String =
     renderFlagsList(
         "tailrec".takeIf { isTailrec },
         "inline".takeIf { isInline },
-        "external".takeIf { isExternal },
+        "external".takeIf { options.doPrintExternalFlag(this) },
         "suspend".takeIf { isSuspend },
         "expect".takeIf { isExpect },
         "fake_override".takeIf { isFakeOverride },
diff --git a/compiler/testData/ir/irText/classes/clashingFakeOverrideSignatures.kt b/compiler/testData/ir/irText/classes/clashingFakeOverrideSignatures.kt
index a720d89..ae82cc0 100644
--- a/compiler/testData/ir/irText/classes/clashingFakeOverrideSignatures.kt
+++ b/compiler/testData/ir/irText/classes/clashingFakeOverrideSignatures.kt
@@ -5,6 +5,9 @@
 // IGNORE_BACKEND_K1: JS_IR
 // IGNORE_BACKEND_K1: JS_IR_ES6
 
+// KT-61141: IrSimpleFunctionPublicSymbolImpl for /Derived.foo|foo(kotlin.String){}[0] is already bound
+// IGNORE_BACKEND_K1: NATIVE
+
 open class Base<T> {
     fun foo(x: T) {}
     fun foo(y: String) {}
diff --git a/compiler/testData/ir/irText/classes/classes.kt b/compiler/testData/ir/irText/classes/classes.kt
index 3526ee2..41a6e58 100644
--- a/compiler/testData/ir/irText/classes/classes.kt
+++ b/compiler/testData/ir/irText/classes/classes.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 class TestClass
 
 interface TestInterface
diff --git a/compiler/testData/ir/irText/classes/cloneable.kt b/compiler/testData/ir/irText/classes/cloneable.kt
index 48948ed..14e1af5 100644
--- a/compiler/testData/ir/irText/classes/cloneable.kt
+++ b/compiler/testData/ir/irText/classes/cloneable.kt
@@ -1,7 +1,8 @@
 // FIR_IDENTICAL
 // SKIP_KLIB_TEST
 // IGNORE_BACKEND: JS_IR, JS_IR_ES6
-// STATUS: This should not work in JS, Cloneable is JVM-specific API
+// IGNORE_BACKEND: NATIVE
+// STATUS: This should not work in JS & NATIVE: Cloneable is JVM-specific API
 
 class A : Cloneable
 
diff --git a/compiler/testData/ir/irText/classes/enum.kt b/compiler/testData/ir/irText/classes/enum.kt
index 7fa416f..b0d0b25 100644
--- a/compiler/testData/ir/irText/classes/enum.kt
+++ b/compiler/testData/ir/irText/classes/enum.kt
@@ -5,6 +5,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: ANY
 // ^ KT-57775
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class TestEnum1 {
     TEST1, TEST2
 }
diff --git a/compiler/testData/ir/irText/classes/enumClassModality.kt b/compiler/testData/ir/irText/classes/enumClassModality.kt
index e302807..f716215 100644
--- a/compiler/testData/ir/irText/classes/enumClassModality.kt
+++ b/compiler/testData/ir/irText/classes/enumClassModality.kt
@@ -4,6 +4,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: ANY
 // ^ KT-57775
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class TestFinalEnum1 {
     X1
 }
diff --git a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.kt b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.kt
index c697bc4..8ce53c0 100644
--- a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.kt
+++ b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.kt
@@ -4,6 +4,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: ANY
 // ^ KT-57775
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class A {
     X("asd"),
     Y() {
diff --git a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.kt b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.kt
index 5f84766..fc9f475 100644
--- a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.kt
+++ b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.kt
@@ -5,6 +5,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: ANY
 // ^ KT-57775
 
+// KT-61141: absent enum fake_overrides: finalize(K1), getDeclaringClass(K1), clone(K2),
+// IGNORE_BACKEND: NATIVE
+
 enum class Test0(val x: Int) {
     ZERO;
     constructor() : this(0)
diff --git a/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.kt b/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.kt
index 81e5baa..61a1288 100644
--- a/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.kt
+++ b/compiler/testData/ir/irText/declarations/annotations/classesWithAnnotations.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 annotation class TestAnn(val x: String)
 
 @TestAnn("class")
diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt
index 74bc53f..a416798 100644
--- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt
+++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt
@@ -4,6 +4,9 @@
 // SKIP_SIGNATURE_DUMP
 // ^ Difference in annotations generated by K1 and K2
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 annotation class TestAnn(val x: String)
 
 enum class TestEnum {
diff --git a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.kt b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.kt
index 3af7753..db9fef7 100644
--- a/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.kt
+++ b/compiler/testData/ir/irText/declarations/annotations/enumsInAnnotationArguments.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class En { A, B, C, D }
 
 annotation class TestAnn(val x: En)
diff --git a/compiler/testData/ir/irText/declarations/classLevelProperties.kt b/compiler/testData/ir/irText/declarations/classLevelProperties.kt
index 16d6038..6c89c32 100644
--- a/compiler/testData/ir/irText/declarations/classLevelProperties.kt
+++ b/compiler/testData/ir/irText/declarations/classLevelProperties.kt
@@ -1,6 +1,8 @@
 // WITH_STDLIB
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
+// KT-61141: kotlin.collections.HashMap instead of java.util.HashMap
+// IGNORE_BACKEND: NATIVE
 
 class C {
     val test1 = 0
diff --git a/compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/compareTo.kt b/compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/compareTo.kt
index d84093d..133054e 100644
--- a/compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/compareTo.kt
+++ b/compiler/testData/ir/irText/declarations/contextReceivers/fromKEEP/compareTo.kt
@@ -1,6 +1,9 @@
 // !LANGUAGE: +ContextReceivers
 // IGNORE_BACKEND: JS_IR
 
+// KT-61141: kotlin.Comparator instead of java.util.Comparator
+// IGNORE_BACKEND: NATIVE
+
 data class Pair<A, B>(val first: A, val second: B)
 
 context(Comparator<T>)
diff --git a/compiler/testData/ir/irText/declarations/delegatedProperties.kt b/compiler/testData/ir/irText/declarations/delegatedProperties.kt
index a1b3a91..589399a 100644
--- a/compiler/testData/ir/irText/declarations/delegatedProperties.kt
+++ b/compiler/testData/ir/irText/declarations/delegatedProperties.kt
@@ -1,6 +1,8 @@
 // WITH_STDLIB
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
+// KT-61141: kotlin.collections.HashMap instead of java.util.HashMap
+// IGNORE_BACKEND: NATIVE
 
 val test1 by lazy { 42 }
 
diff --git a/compiler/testData/ir/irText/declarations/kt52677.kt b/compiler/testData/ir/irText/declarations/kt52677.kt
index d87dd28..9f800b3 100644
--- a/compiler/testData/ir/irText/declarations/kt52677.kt
+++ b/compiler/testData/ir/irText/declarations/kt52677.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: throws kotlin.RuntimeException instead of java.lang.RuntimeException
+// IGNORE_BACKEND: NATIVE
+
 @Target(AnnotationTarget.TYPE)
 annotation class MySerializable(val c: kotlin.reflect.KClass<*>)
 
diff --git a/compiler/testData/ir/irText/declarations/localDelegatedProperties.kt b/compiler/testData/ir/irText/declarations/localDelegatedProperties.kt
index f8730b7..b0db78e 100644
--- a/compiler/testData/ir/irText/declarations/localDelegatedProperties.kt
+++ b/compiler/testData/ir/irText/declarations/localDelegatedProperties.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Any?)`
+// IGNORE_BACKEND: NATIVE
+
 fun test1() {
     val x by lazy { 42 }
     println(x)
diff --git a/compiler/testData/ir/irText/declarations/multiplatform/expectClassInherited.kt b/compiler/testData/ir/irText/declarations/multiplatform/expectClassInherited.kt
index 7b665d7..2d8865f 100644
--- a/compiler/testData/ir/irText/declarations/multiplatform/expectClassInherited.kt
+++ b/compiler/testData/ir/irText/declarations/multiplatform/expectClassInherited.kt
@@ -1,6 +1,8 @@
 // IGNORE_BACKEND_K2: JVM_IR
 // IGNORE_BACKEND_K2: JS_IR
 // IGNORE_BACKEND_K2: JS_IR_ES6
+// KT-61141: ACTUAL_WITHOUT_EXPECT: actual class A : Any has no corresponding expected declaration at expectClassInherited.kt:(312,313)
+// IGNORE_BACKEND_K2: NATIVE
 // !LANGUAGE: +MultiPlatformProjects
 
 expect abstract class A protected constructor() {
diff --git a/compiler/testData/ir/irText/declarations/multiplatform/expectIntersectionOverride.kt b/compiler/testData/ir/irText/declarations/multiplatform/expectIntersectionOverride.kt
index d369161..ae86cde 100644
--- a/compiler/testData/ir/irText/declarations/multiplatform/expectIntersectionOverride.kt
+++ b/compiler/testData/ir/irText/declarations/multiplatform/expectIntersectionOverride.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND_K1: JVM_IR, JS_IR
 // !LANGUAGE: +MultiPlatformProjects
 
+// KT-61141: NO_ACTUAL_FOR_EXPECT: Expected class 'C' has no actual declaration in module <common> for Native (21,14) in /common.kt
+// IGNORE_BACKEND_K1: NATIVE
+
 // MODULE: common
 // FILE: common.kt
 
diff --git a/compiler/testData/ir/irText/declarations/multiplatform/expectMemberInNotExpectClassFir.kt b/compiler/testData/ir/irText/declarations/multiplatform/expectMemberInNotExpectClassFir.kt
index caf98ac..156cb47 100644
--- a/compiler/testData/ir/irText/declarations/multiplatform/expectMemberInNotExpectClassFir.kt
+++ b/compiler/testData/ir/irText/declarations/multiplatform/expectMemberInNotExpectClassFir.kt
@@ -3,6 +3,9 @@
 // SKIP_KLIB_TEST
 // LANGUAGE: +MultiPlatformProjects
 
+// KT-61141: NO_ACTUAL_FOR_EXPECT: Expected class 'C1' has no actual declaration in module <common> for Native (9,19) in /common.kt
+// IGNORE_BACKEND_K1: NATIVE
+
 // MODULE: common
 // FILE: common.kt
 
diff --git a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.kt b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.kt
index ba443a3..f72e8c2 100644
--- a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.kt
+++ b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass.kt
@@ -5,6 +5,9 @@
 // IGNORE_BACKEND_K1: JS_IR
 // IGNORE_BACKEND_K1: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND_K1: NATIVE
+
 expect enum class MyEnum {
     FOO,
     BAR
diff --git a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass2.kt b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass2.kt
index 79f04dd..4022da8 100644
--- a/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass2.kt
+++ b/compiler/testData/ir/irText/declarations/multiplatform/expectedEnumClass2.kt
@@ -3,7 +3,8 @@
 // IGNORE_BACKEND_K1: ANY
 // IGNORE_BACKEND_K2: JS_IR
 // IGNORE_BACKEND_K2: JS_IR_ES6
-
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND_K2: NATIVE
 // MODULE: lib
 // FILE: lib.kt
 expect enum class MyEnum {
diff --git a/compiler/testData/ir/irText/declarations/multiplatform/expectedSealedClass.kt b/compiler/testData/ir/irText/declarations/multiplatform/expectedSealedClass.kt
index 8cc0fd1..ab3240b 100644
--- a/compiler/testData/ir/irText/declarations/multiplatform/expectedSealedClass.kt
+++ b/compiler/testData/ir/irText/declarations/multiplatform/expectedSealedClass.kt
@@ -1,6 +1,8 @@
 // IGNORE_BACKEND_K2: JVM_IR
 // IGNORE_BACKEND_K2: JS_IR
 // IGNORE_BACKEND_K2: JS_IR_ES6
+// KT-61141: ACTUAL_WITHOUT_EXPECT: actual class Ops : Any has no corresponding expected declaration at expectedSealedClass.kt:(217,220)
+// IGNORE_BACKEND_K2: NATIVE
 // !LANGUAGE: +MultiPlatformProjects
 // SKIP_KLIB_TEST
 
diff --git a/compiler/testData/ir/irText/declarations/packageLevelProperties.kt b/compiler/testData/ir/irText/declarations/packageLevelProperties.kt
index 6002807..d2e1df3 100644
--- a/compiler/testData/ir/irText/declarations/packageLevelProperties.kt
+++ b/compiler/testData/ir/irText/declarations/packageLevelProperties.kt
@@ -1,6 +1,8 @@
 // WITH_STDLIB
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
+// KT-61141: kotlin.collections.HashMap instead of java.util.HashMap
+// IGNORE_BACKEND: NATIVE
 
 val test1 = 0
 
diff --git a/compiler/testData/ir/irText/declarations/parameters/useNextParamInLambda.kt b/compiler/testData/ir/irText/declarations/parameters/useNextParamInLambda.kt
index 6ca1ce3..8e4ac91 100644
--- a/compiler/testData/ir/irText/declarations/parameters/useNextParamInLambda.kt
+++ b/compiler/testData/ir/irText/declarations/parameters/useNextParamInLambda.kt
@@ -3,6 +3,8 @@
 // LANGUAGE: -ProhibitIllegalValueParameterUsageInDefaultArguments
 // IGNORE_BACKEND_K1: JS_IR
 // IGNORE_BACKEND_K1: JS_IR_ES6
+// KT-61141: catches kotlin.Exception instead of java.lang.Exception
+// IGNORE_BACKEND_K1: NATIVE
 
 fun f(
     f1: () -> String = { f2() },
diff --git a/compiler/testData/ir/irText/errors/unresolvedReference.kt b/compiler/testData/ir/irText/errors/unresolvedReference.kt
index b7ed945..70fdb5f1 100644
--- a/compiler/testData/ir/irText/errors/unresolvedReference.kt
+++ b/compiler/testData/ir/irText/errors/unresolvedReference.kt
@@ -3,6 +3,9 @@
 // IGNORE_BACKEND: JS_IR_ES6
 // !IGNORE_ERRORS
 
+// KT-61141: org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtNameReferenceExpression: unresolved
+// IGNORE_BACKEND: NATIVE
+
 val test1 = unresolved
 
 val test2: Unresolved =
diff --git a/compiler/testData/ir/irText/expressions/badBreakContinue.kt b/compiler/testData/ir/irText/expressions/badBreakContinue.kt
index d0be6d9..f6fc98a 100644
--- a/compiler/testData/ir/irText/expressions/badBreakContinue.kt
+++ b/compiler/testData/ir/irText/expressions/badBreakContinue.kt
@@ -3,6 +3,9 @@
 // IGNORE_BACKEND: JS_IR_ES6
 // !IGNORE_ERRORS
 
+// KT-61141: java.lang.RuntimeException: Loop not found for break expression: break
+// IGNORE_BACKEND: NATIVE
+
 fun test1() {
     break
     continue
diff --git a/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt b/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt
index 44be979..88cd917 100644
--- a/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt
+++ b/compiler/testData/ir/irText/expressions/badInlinedBreakContinue.kt
@@ -5,6 +5,9 @@
 // !IGNORE_ERRORS
 // WITH_STDLIB
 
+// KT-61141: NPE at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.pregenerateValueArgumentsUsing()
+// IGNORE_BACKEND: NATIVE
+
 inline fun foo(block: () -> Unit) { block() }
 
 inline fun bar(block1: () -> Unit, noinline block2: () -> Unit) {
diff --git a/compiler/testData/ir/irText/expressions/breakContinueInWhen.kt b/compiler/testData/ir/irText/expressions/breakContinueInWhen.kt
index e04505c..98687cc 100644
--- a/compiler/testData/ir/irText/expressions/breakContinueInWhen.kt
+++ b/compiler/testData/ir/irText/expressions/breakContinueInWhen.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: throws kotlin.AssertionError instead of java.lang.AssertionError
+// IGNORE_BACKEND: NATIVE
+
 fun testBreakFor() {
     val xs = IntArray(10) { i -> i }
     var k = 0
diff --git a/compiler/testData/ir/irText/expressions/catchParameterAccess.kt b/compiler/testData/ir/irText/expressions/catchParameterAccess.kt
index bcedd20..1759cd9 100644
--- a/compiler/testData/ir/irText/expressions/catchParameterAccess.kt
+++ b/compiler/testData/ir/irText/expressions/catchParameterAccess.kt
@@ -2,5 +2,8 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: rethrows kotlin.Exception instead of java.lang.Exception
+// IGNORE_BACKEND: NATIVE
+
 fun test(f: () -> Unit) =
         try { f() } catch (e: Exception) { throw e }
diff --git a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.kt b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.kt
index 1d4eeb9..6b5a18d 100644
--- a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.kt
+++ b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.kt
@@ -4,6 +4,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: ANY
 // ^ KT-57427, KT-57430
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class X {
 
     B {
diff --git a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt
index 0adaf32..76411e8 100644
--- a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt
+++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt
@@ -4,6 +4,9 @@
 // SKIP_SIGNATURE_DUMP
 // ^ Types of properties of anonymous classes generated by K1 and K2 are different
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class MyEnum {
     Z {
         var counter = 0
diff --git a/compiler/testData/ir/irText/expressions/exhaustiveWhenElseBranch.kt b/compiler/testData/ir/irText/expressions/exhaustiveWhenElseBranch.kt
index 4b25ae6..832b32e 100644
--- a/compiler/testData/ir/irText/expressions/exhaustiveWhenElseBranch.kt
+++ b/compiler/testData/ir/irText/expressions/exhaustiveWhenElseBranch.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class A { V1 }
 
 fun testVariableAssignment_throws(a: A) {
diff --git a/compiler/testData/ir/irText/expressions/for.kt b/compiler/testData/ir/irText/expressions/for.kt
index 543479b..0f8aec6 100644
--- a/compiler/testData/ir/irText/expressions/for.kt
+++ b/compiler/testData/ir/irText/expressions/for.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Any?)`
+// IGNORE_BACKEND: NATIVE
+
 fun testEmpty(ss: List<String>) {
     for (s in ss);
 }
diff --git a/compiler/testData/ir/irText/expressions/forWithImplicitReceivers.kt b/compiler/testData/ir/irText/expressions/forWithImplicitReceivers.kt
index 0cf433e..8888e35 100644
--- a/compiler/testData/ir/irText/expressions/forWithImplicitReceivers.kt
+++ b/compiler/testData/ir/irText/expressions/forWithImplicitReceivers.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Int)`
+// IGNORE_BACKEND: NATIVE
+
 object FiveTimes
 
 class IntCell(var value: Int)
diff --git a/compiler/testData/ir/irText/expressions/funInterface/functionSupertype.sig.kt.txt b/compiler/testData/ir/irText/expressions/funInterface/functionSupertype.sig.kt.txt
index 5b72fff..dab9161 100644
--- a/compiler/testData/ir/irText/expressions/funInterface/functionSupertype.sig.kt.txt
+++ b/compiler/testData/ir/irText/expressions/funInterface/functionSupertype.sig.kt.txt
@@ -7,6 +7,10 @@
   //   Mangled name: Foo#invoke(){}kotlin.Int
   //   Public signature: /Foo.invoke|906964710558498066[0]
   //   Public signature debug description: invoke(){}kotlin.Int
+  // CHECK JS_IR NATIVE:
+  //   Mangled name: Foo#invoke(){}
+  //   Public signature: /Foo.invoke|-4663091332620260873[0]
+  //   Public signature debug description: invoke(){}
   abstract /* fake */ override operator fun invoke(): Int
 
 }
@@ -15,6 +19,10 @@
 //   Mangled name: #id(Foo){}kotlin.Any
 //   Public signature: /id|-7816997914602483733[0]
 //   Public signature debug description: id(Foo){}kotlin.Any
+// CHECK JS_IR NATIVE:
+//   Mangled name: #id(Foo){}
+//   Public signature: /id|-443964874282345181[0]
+//   Public signature debug description: id(Foo){}
 fun id(foo: Foo): Any
 
 // CHECK:
diff --git a/compiler/testData/ir/irText/expressions/kt24804.kt b/compiler/testData/ir/irText/expressions/kt24804.kt
index 68860d9..1e5c3ed 100644
--- a/compiler/testData/ir/irText/expressions/kt24804.kt
+++ b/compiler/testData/ir/irText/expressions/kt24804.kt
@@ -1,6 +1,8 @@
 // IGNORE_BACKEND_K2: JVM_IR
 // IGNORE_BACKEND_K2: JS_IR
 // IGNORE_BACKEND_K2: JS_IR_ES6
+// KT-61141: NOT_A_LOOP_LABEL: The label does not denote a loop at kt24804.kt:(256,267)
+// IGNORE_BACKEND_K2: NATIVE
 inline fun foo() = false
 
 fun run(x: Boolean, y: Boolean): String {
diff --git a/compiler/testData/ir/irText/expressions/kt30020.kt b/compiler/testData/ir/irText/expressions/kt30020.kt
index 724dc64..d89268c 100644
--- a/compiler/testData/ir/irText/expressions/kt30020.kt
+++ b/compiler/testData/ir/irText/expressions/kt30020.kt
@@ -1,5 +1,5 @@
 // WITH_STDLIB
-// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
+// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6, NATIVE
 // ^ the order of fake overrides is different on K2
 
 interface X {
diff --git a/compiler/testData/ir/irText/expressions/kt30796.kt b/compiler/testData/ir/irText/expressions/kt30796.kt
index dabd5b3..2f72221 100644
--- a/compiler/testData/ir/irText/expressions/kt30796.kt
+++ b/compiler/testData/ir/irText/expressions/kt30796.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: throws kotlin.Exception instead of java.lang.Exception
+// IGNORE_BACKEND: NATIVE
+
 fun <T> magic(): T = throw Exception()
 
 fun <T> test(value: T, value2: T) {
diff --git a/compiler/testData/ir/irText/expressions/kt48708.kt b/compiler/testData/ir/irText/expressions/kt48708.kt
index bb01b35..b873222 100644
--- a/compiler/testData/ir/irText/expressions/kt48708.kt
+++ b/compiler/testData/ir/irText/expressions/kt48708.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND: JS_IR_ES6
 // ISSUE: KT-48708
 
+// KT-61141: throws kotlin.Exception instead of java.lang.Exception
+// IGNORE_BACKEND: NATIVE
+
 fun test(b: Boolean) {
     val x = if (b) {
         3
diff --git a/compiler/testData/ir/irText/expressions/kt48806.kt b/compiler/testData/ir/irText/expressions/kt48806.kt
index 136d18d..d32fbb2 100644
--- a/compiler/testData/ir/irText/expressions/kt48806.kt
+++ b/compiler/testData/ir/irText/expressions/kt48806.kt
@@ -3,6 +3,9 @@
 // IGNORE_BACKEND: JS_IR_ES6
 // ISSUE: KT-48806
 
+// KT-61141: throws kotlin.RuntimeException instead of java.lang.RuntimeException,  and catches kotlin.Exception instead of java.lang.Exception
+// IGNORE_BACKEND: NATIVE
+
 class A {
     val test_1: Int = try{
         throw RuntimeException()
diff --git a/compiler/testData/ir/irText/expressions/objectAsCallable.kt b/compiler/testData/ir/irText/expressions/objectAsCallable.kt
index 35167f2..c903bf68 100644
--- a/compiler/testData/ir/irText/expressions/objectAsCallable.kt
+++ b/compiler/testData/ir/irText/expressions/objectAsCallable.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 object A
 
 enum class En { X }
diff --git a/compiler/testData/ir/irText/expressions/primitivesImplicitConversions.kt b/compiler/testData/ir/irText/expressions/primitivesImplicitConversions.kt
index 4e188ca..00dc773 100644
--- a/compiler/testData/ir/irText/expressions/primitivesImplicitConversions.kt
+++ b/compiler/testData/ir/irText/expressions/primitivesImplicitConversions.kt
@@ -4,6 +4,9 @@
 // IGNORE_BACKEND_K1: JS_IR
 // IGNORE_BACKEND_K1: JS_IR_ES6
 
+// KT-61141: Extra invocations of toLong(), toShort(), etc.. after unaryMinus()
+// IGNORE_BACKEND_K1: NATIVE
+
 val test1: Long = 42
 val test2: Short = 42
 val test3: Byte = 42
diff --git a/compiler/testData/ir/irText/expressions/smartCasts.kt b/compiler/testData/ir/irText/expressions/smartCasts.kt
index 300a3cf..63ec438 100644
--- a/compiler/testData/ir/irText/expressions/smartCasts.kt
+++ b/compiler/testData/ir/irText/expressions/smartCasts.kt
@@ -3,6 +3,8 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Any?)`
+// IGNORE_BACKEND: NATIVE
 fun expectsString(s: String) {}
 fun expectsInt(i: Int) {}
 
diff --git a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.kt b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.kt
index bb84e7a..778bacf 100644
--- a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.kt
+++ b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 val n: Any? = null
 
 enum class En(val x: String?) {
diff --git a/compiler/testData/ir/irText/expressions/values.kt b/compiler/testData/ir/irText/expressions/values.kt
index c98a648..bcde79c 100644
--- a/compiler/testData/ir/irText/expressions/values.kt
+++ b/compiler/testData/ir/irText/expressions/values.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class Enum { A }
 object A
 val a = 0
diff --git a/compiler/testData/ir/irText/expressions/whenSmartCastToEnum.kt b/compiler/testData/ir/irText/expressions/whenSmartCastToEnum.kt
index 9b6dea1..d666003 100644
--- a/compiler/testData/ir/irText/expressions/whenSmartCastToEnum.kt
+++ b/compiler/testData/ir/irText/expressions/whenSmartCastToEnum.kt
@@ -1,6 +1,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class En { A, B, C }
 
 fun test() {
diff --git a/compiler/testData/ir/irText/firProblems/ArrayMap.kt b/compiler/testData/ir/irText/firProblems/ArrayMap.kt
index 55955fb..bfd733c 100644
--- a/compiler/testData/ir/irText/firProblems/ArrayMap.kt
+++ b/compiler/testData/ir/irText/firProblems/ArrayMap.kt
@@ -3,6 +3,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: `set()` throws kotlin.IllegalStateException instead of java.lang.IllegalStateException
+// IGNORE_BACKEND: NATIVE
+
 sealed class ArrayMap<T : Any> : Iterable<T> {
     abstract val size: Int
 
diff --git a/compiler/testData/ir/irText/firProblems/ImplicitReceiverStack.kt b/compiler/testData/ir/irText/firProblems/ImplicitReceiverStack.kt
index a308de1..55c2b6f 100644
--- a/compiler/testData/ir/irText/firProblems/ImplicitReceiverStack.kt
+++ b/compiler/testData/ir/irText/firProblems/ImplicitReceiverStack.kt
@@ -7,6 +7,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: ANY
 // ^ KT-57788
 
+// KT-61141: ImplicitReceiverStack & PersistentImplicitReceiverStack miss fake overrides `forEach` & `spliterator`
+// IGNORE_BACKEND: NATIVE
+
 interface SymbolOwner<E : SymbolOwner<E>>
 
 interface Symbol<E : SymbolOwner<E>>
diff --git a/compiler/testData/ir/irText/firProblems/kt43342.kt b/compiler/testData/ir/irText/firProblems/kt43342.kt
index 2ddee9d..85f7c81 100644
--- a/compiler/testData/ir/irText/firProblems/kt43342.kt
+++ b/compiler/testData/ir/irText/firProblems/kt43342.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND_K2: JS_IR
 // IGNORE_BACKEND_K2: JS_IR_ES6
 
+// KT-61141: Missing fake override `getOrDefault()`
+// IGNORE_BACKEND_K2: NATIVE
+
 open class ControlFlowInfo<K, V>(val map: Map<K, V>): Map<K, V> by map
 
 class StringFlowInfo(map: Map<String, String>): ControlFlowInfo<String, String>(map) {
diff --git a/compiler/testData/ir/irText/firProblems/kt55458.kt b/compiler/testData/ir/irText/firProblems/kt55458.kt
index d0d71c6..7ca59c2 100644
--- a/compiler/testData/ir/irText/firProblems/kt55458.kt
+++ b/compiler/testData/ir/irText/firProblems/kt55458.kt
@@ -4,6 +4,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
 // ^ KT-57755
 
+// KT-61141: `println (message: kotlin.Any?)` instead of `println (message: kotlin.Int)`
+// IGNORE_BACKEND_K1: NATIVE
+
 fun main() {
     val (a: Any, _) = 1 to 2
     println(a)
diff --git a/compiler/testData/ir/irText/firProblems/lambdaInEnumEntryConstructorCall.kt b/compiler/testData/ir/irText/firProblems/lambdaInEnumEntryConstructorCall.kt
index 6faa4a6..5df3111 100644
--- a/compiler/testData/ir/irText/firProblems/lambdaInEnumEntryConstructorCall.kt
+++ b/compiler/testData/ir/irText/firProblems/lambdaInEnumEntryConstructorCall.kt
@@ -7,6 +7,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: ANY
 // ^ KT-57427
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 class Wrapper(var baseUrl: String)
 
 enum class ConfigurationParameter {
diff --git a/compiler/testData/ir/irText/firProblems/thisInEnumConstructor.kt b/compiler/testData/ir/irText/firProblems/thisInEnumConstructor.kt
index 79113da..b94ade4 100644
--- a/compiler/testData/ir/irText/firProblems/thisInEnumConstructor.kt
+++ b/compiler/testData/ir/irText/firProblems/thisInEnumConstructor.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class EE(val myName: String = this.toString().lowercase()) {
     ENTRY;
 }
diff --git a/compiler/testData/ir/irText/firProblems/typeVariableAfterBuildMap.kt b/compiler/testData/ir/irText/firProblems/typeVariableAfterBuildMap.kt
index 23b9c5c..93ec158 100644
--- a/compiler/testData/ir/irText/firProblems/typeVariableAfterBuildMap.kt
+++ b/compiler/testData/ir/irText/firProblems/typeVariableAfterBuildMap.kt
@@ -2,6 +2,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: mustCheckInImports throws kotlin.IllegalStateException instead of java.lang.IllegalStateException
+// IGNORE_BACKEND: NATIVE
+
 abstract class Visibility(val name: String, val isPublicAPI: Boolean) {
     open val internalDisplayName: String
         get() = name
diff --git a/compiler/testData/ir/irText/firProblems/valueClassEquals.kt b/compiler/testData/ir/irText/firProblems/valueClassEquals.kt
index ad55071..7522611 100644
--- a/compiler/testData/ir/irText/firProblems/valueClassEquals.kt
+++ b/compiler/testData/ir/irText/firProblems/valueClassEquals.kt
@@ -3,6 +3,9 @@
 // WITH_STDLIB
 // LANGUAGE: +ValueClasses
 
+// KT-61141: OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE: Declaration annotated with '@OptionalExpectation' can only be used in common module sources (6,19) in /valueClassEquals.kt
+// IGNORE_BACKEND: NATIVE
+
 import kotlin.jvm.JvmInline
 
 @JvmInline
diff --git a/compiler/testData/ir/irText/lambdas/nonLocalReturn.kt b/compiler/testData/ir/irText/lambdas/nonLocalReturn.kt
index 40f9608..1557691 100644
--- a/compiler/testData/ir/irText/lambdas/nonLocalReturn.kt
+++ b/compiler/testData/ir/irText/lambdas/nonLocalReturn.kt
@@ -3,6 +3,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: In testLrmFoo1 and testLrmFoo2, `print (message: kotlin.Any?)` instead of `print (message: kotlin.Int)`
+// IGNORE_BACKEND: NATIVE
+
 fun test0() {
     run {
         return
diff --git a/compiler/testData/ir/irText/singletons/enumEntry.kt b/compiler/testData/ir/irText/singletons/enumEntry.kt
index 8a47a1b..40b6b38 100644
--- a/compiler/testData/ir/irText/singletons/enumEntry.kt
+++ b/compiler/testData/ir/irText/singletons/enumEntry.kt
@@ -4,6 +4,9 @@
 // MUTE_SIGNATURE_COMPARISON_K2: ANY
 // ^ KT-57775, KT-57430
 
+// KT-61141: absent enum fake_overrides: finalize, getDeclaringClass, clone
+// IGNORE_BACKEND: NATIVE
+
 enum class Z {
     ENTRY {
         fun test() {}
diff --git a/compiler/testData/ir/irText/stubs/kotlinInnerClass.kt b/compiler/testData/ir/irText/stubs/kotlinInnerClass.kt
index 1e752b7..6cc776b 100644
--- a/compiler/testData/ir/irText/stubs/kotlinInnerClass.kt
+++ b/compiler/testData/ir/irText/stubs/kotlinInnerClass.kt
@@ -1,6 +1,9 @@
 // FIR_IDENTICAL
 // DUMP_EXTERNAL_CLASS: Outer
 
+// KT-61141: No [primary] flag on 'DELEGATING_CONSTRUCTOR_CALL <init>'; no [operator] on kotlin.Any.equals() as "overridden:" for fake_override "equals"
+// IGNORE_BACKEND: NATIVE
+
 // FILE: external.kt
 // EXTERNAL_FILE
 class Outer {
diff --git a/compiler/testData/ir/irText/types/intersectionTypeInSamType.kt b/compiler/testData/ir/irText/types/intersectionTypeInSamType.kt
index 455ec43..c6cc27b 100644
--- a/compiler/testData/ir/irText/types/intersectionTypeInSamType.kt
+++ b/compiler/testData/ir/irText/types/intersectionTypeInSamType.kt
@@ -2,6 +2,8 @@
 // IGNORE_BACKEND_K1: JS_IR
 // IGNORE_BACKEND_K1: JS_IR_ES6
 
+// KT-61141: difference in IR for implicit cast
+// IGNORE_BACKEND_K1: NATIVE
 interface X
 interface Z
 
diff --git a/compiler/testData/ir/irText/types/kt49526.kt b/compiler/testData/ir/irText/types/kt49526.kt
index d2e5988..1132dc8 100644
--- a/compiler/testData/ir/irText/types/kt49526.kt
+++ b/compiler/testData/ir/irText/types/kt49526.kt
@@ -3,6 +3,9 @@
 // IGNORE_BACKEND: JS_IR
 // IGNORE_BACKEND: JS_IR_ES6
 
+// KT-61141: For result of `+`, Native backend inferred type Comparable instead of Nothing
+// IGNORE_BACKEND: NATIVE
+
 fun test(): Boolean {
     val ref = (listOf('a') + "-")::contains
     return ref('a')
diff --git a/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt
index d7c7b42..1d3ac82 100644
--- a/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt
+++ b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt
@@ -1,6 +1,9 @@
 // KT-42036
 // IGNORE_BACKEND: JS_IR
 
+// KT-61141: getTag() throws kotlin.Exception instead of java.lang.Exception
+// IGNORE_BACKEND: NATIVE
+
 typealias Action<RenderingT> = (@UnsafeVariance RenderingT) -> Unit
 
 data class Tag<out RenderingT>(val action: Action<RenderingT>)
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrTextDumpHandler.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrTextDumpHandler.kt
index c99c1c7..9eed7f5 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrTextDumpHandler.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrTextDumpHandler.kt
@@ -32,7 +32,7 @@
 import org.jetbrains.kotlin.test.utils.withSuffixAndExtension
 import java.io.File
 
-class IrTextDumpHandler(
+open class IrTextDumpHandler(
     testServices: TestServices,
     artifactKind: BackendKind<IrBackendInput>,
 ) : AbstractIrHandler(testServices, artifactKind) {
@@ -62,20 +62,19 @@
 
     private val baseDumper = MultiModuleInfoDumper()
     private val buildersForSeparateFileDumps: MutableMap<File, StringBuilder> = mutableMapOf()
+    open val dumpOptions = DumpIrTreeOptions(
+        normalizeNames = true,
+        printFacadeClassInFqNames = false,
+        printFlagsInDeclarationReferences = false,
+        // KT-60248 Abbreviations should not be rendered to make K2 IR dumps closer to K1 IR dumps during irText tests.
+        // PSI2IR assigns field `abbreviation` with type abbreviation. It serves only debugging purposes, and no compiler functionality relies on it.
+        // FIR2IR does not initialize field `abbreviation` at all.
+        printTypeAbbreviations = false,
+    )
 
     override fun processModule(module: TestModule, info: IrBackendInput) {
         if (DUMP_IR !in module.directives) return
 
-        val dumpOptions = DumpIrTreeOptions(
-            normalizeNames = true,
-            printFacadeClassInFqNames = false,
-            printFlagsInDeclarationReferences = false,
-            // KT-60248 Abbreviations should not be rendered to make K2 IR dumps closer to K1 IR dumps during irText tests.
-            // PSI2IR assigns field `abbreviation` with type abbreviation. It serves only debugging purposes, and no compiler functionality relies on it.
-            // FIR2IR does not initialize field `abbreviation` at all.
-            printTypeAbbreviations = false,
-        )
-
         info.processAllIrModuleFragments(module) { irModuleFragment, moduleName ->
             val builder = baseDumper.builderForModule(moduleName)
             val testFileToIrFile = irModuleFragment.files.groupWithTestFiles(module)
@@ -101,7 +100,7 @@
         assertions.assertAll(
             externalClassIds.map { externalClassId ->
                 {
-                    val classDump = info.irPluginContext.findExternalClass(externalClassId).dump()
+                    val classDump = info.irPluginContext.findExternalClass(externalClassId).dump(dumpOptions)
                     val suffix = ".__${externalClassId.replace("/", ".")}"
                     val expectedFile = baseFile.withSuffixAndExtension(suffix, module.getDumpExtension(ignoreFirIdentical = true))
                     assertions.assertEqualsToFile(expectedFile, classDump)
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrBackendInput.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrBackendInput.kt
index 3f48a69..1e97735 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrBackendInput.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/ir/IrBackendInput.kt
@@ -146,4 +146,18 @@
         override val diagnosticReporter: BaseDiagnosticsCollector
             get() = state.diagnosticReporter as BaseDiagnosticsCollector
     }
+
+    // Actually, class won't be used as real input for native backend during blackbox testing, since such testing is done via different engine.
+    // In irText tests, this class is used only as native-specific FIR2IR output to render and dump IR.
+    // So, no source files, icData, error flag, serialization lambda, etc are needed.
+    class NativeBackendInput(
+        override val irModuleFragment: IrModuleFragment,
+        override val dependentIrModuleFragments: List<IrModuleFragment>,
+        override val irPluginContext: IrPluginContext,
+        override val diagnosticReporter: BaseDiagnosticsCollector,
+        override val descriptorMangler: KotlinMangler.DescriptorMangler,
+        override val irMangler: KotlinMangler.IrMangler,
+        override val firMangler: FirMangler?,
+        override var irActualizerResult: IrActualizedResult? = null,
+    ) : IrBackendInput()
 }
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt
index d4bb99f..aa9e27d 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt
@@ -196,7 +196,7 @@
     val dependencies = mutableListOf<ModuleDescriptorImpl>()
 
     return resolvedLibraries.map { resolvedLibrary ->
-        // resolvedLibrary.library.libraryName in fact resolves to (modified) file path, which is confising and maybe should be refactored
+        // 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")
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrResultsConverter.kt
index be23455..c4e2466 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrResultsConverter.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrResultsConverter.kt
@@ -8,6 +8,7 @@
 import org.jetbrains.kotlin.platform.isCommon
 import org.jetbrains.kotlin.platform.isJs
 import org.jetbrains.kotlin.platform.jvm.isJvm
+import org.jetbrains.kotlin.platform.konan.isNative
 import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
 import org.jetbrains.kotlin.test.model.BackendKinds
 import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
@@ -32,6 +33,12 @@
         module.targetPlatform.isJs() -> {
             jsResultsConverter.transform(module, inputArtifact)
         }
+        module.targetPlatform.isNative() -> {
+            throw NotImplementedError(
+                "Please invoke Fir2IrNativeResultsConverter.transform() directly from `native` module, " +
+                        "since it's unreachable from current module `tests-common-new`"
+            )
+        }
         else -> error("Unsupported platform: ${module.targetPlatform}")
     }
 }
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt
index 86ee7d5..90b1420 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt
@@ -192,7 +192,7 @@
     val dependencies = mutableListOf<ModuleDescriptorImpl>()
 
     return resolvedLibraries.map { resolvedLibrary ->
-        // resolvedLibrary.library.libraryName in fact resolves to (modified) file path, which is confising and maybe should be refactored
+        // 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")
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt
index 8e1f9d5..060c844 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt
@@ -24,6 +24,7 @@
 import org.jetbrains.kotlin.test.directives.configureFirParser
 import org.jetbrains.kotlin.test.model.*
 import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest
+import org.jetbrains.kotlin.test.services.TestServices
 import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider
 import org.jetbrains.kotlin.test.services.sourceProviders.CodegenHelpersSourceFilesProvider
 import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider
@@ -36,6 +37,8 @@
     abstract val frontendFacade: Constructor<FrontendFacade<FrontendOutput>>
     abstract val converter: Constructor<Frontend2BackendConverter<FrontendOutput, IrBackendInput>>
 
+    open val irTextDumpHandler = ::IrTextDumpHandler
+
     open fun TestConfigurationBuilder.applyConfigurators() {}
 
     override fun TestConfigurationBuilder.configuration() {
@@ -83,7 +86,7 @@
 
         irHandlersStep {
             useHandlers(
-                ::IrTextDumpHandler,
+                irTextDumpHandler,
                 ::IrTreeVerifierHandler,
                 ::IrPrettyKotlinDumpHandler,
                 ::IrMangledNameAndSignatureDumpHandler,
diff --git a/native/native.tests/build.gradle.kts b/native/native.tests/build.gradle.kts
index 74a2f28..8a67dc2 100644
--- a/native/native.tests/build.gradle.kts
+++ b/native/native.tests/build.gradle.kts
@@ -23,6 +23,9 @@
     testApiJUnit5()
     testImplementation(commonDependency("org.jetbrains.kotlinx", "kotlinx-metadata-klib"))
     testImplementation(commonDependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false }
+    if (kotlinBuildProperties.isKotlinNativeEnabled) {
+        testImplementation(project(":kotlin-native:backend.native")) { isTransitive = false }
+    }
 
     testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
 }
diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/irText/ClassicNativeIrTextTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/irText/ClassicNativeIrTextTestGenerated.java
new file mode 100644
index 0000000..9a0d035
--- /dev/null
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/irText/ClassicNativeIrTextTestGenerated.java
@@ -0,0 +1,2929 @@
+/*
+ * 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.irText;
+
+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 ClassicNativeIrTextTestGenerated extends AbstractClassicNativeIrTextTest {
+    @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("cloneable.kt")
+        public void testCloneable() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/cloneable.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("valueClassEquals.kt")
+        public void testValueClassEquals() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/valueClassEquals.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/irText/FirLightTreeNativeIrTextTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/irText/FirLightTreeNativeIrTextTestGenerated.java
new file mode 100644
index 0000000..422446d
--- /dev/null
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/irText/FirLightTreeNativeIrTextTestGenerated.java
@@ -0,0 +1,2929 @@
+/*
+ * 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.irText;
+
+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("cloneable.kt")
+        public void testCloneable() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/cloneable.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("valueClassEquals.kt")
+        public void testValueClassEquals() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/valueClassEquals.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/irText/FirPsiNativeIrTextTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/irText/FirPsiNativeIrTextTestGenerated.java
new file mode 100644
index 0000000..db91aea
--- /dev/null
+++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/irText/FirPsiNativeIrTextTestGenerated.java
@@ -0,0 +1,2929 @@
+/*
+ * 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.irText;
+
+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("cloneable.kt")
+        public void testCloneable() throws Exception {
+            runTest("compiler/testData/ir/irText/classes/cloneable.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("valueClassEquals.kt")
+        public void testValueClassEquals() throws Exception {
+            runTest("compiler/testData/ir/irText/firProblems/valueClassEquals.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 d1f27e9..8502d24 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,6 +20,9 @@
 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.irText.AbstractClassicNativeIrTextTest
+import org.jetbrains.kotlin.konan.irText.AbstractFirLightTreeNativeIrTextTest
+import org.jetbrains.kotlin.konan.irText.AbstractFirPsiNativeIrTextTest
 import org.jetbrains.kotlin.test.TargetBackend
 import org.jetbrains.kotlin.test.utils.CUSTOM_TEST_DATA_EXTENSION_PATTERN
 import org.junit.jupiter.api.Tag
@@ -76,6 +79,15 @@
                 model("codegen/box", targetBackend = TargetBackend.NATIVE)
                 model("codegen/boxInline", targetBackend = TargetBackend.NATIVE)
             }
+            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/irText/AbstractClassicNativeIrTextTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/AbstractClassicNativeIrTextTest.kt
new file mode 100644
index 0000000..96b6893
--- /dev/null
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/AbstractClassicNativeIrTextTest.kt
@@ -0,0 +1,37 @@
+/*
+ * 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.irText
+
+import org.jetbrains.kotlin.test.Constructor
+import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
+import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
+import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
+import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
+import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
+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
+
+open class AbstractClassicNativeIrTextTest: AbstractNativeIrTextTestBase<ClassicFrontendOutputArtifact>() {
+    override val frontend: FrontendKind<*>
+        get() = FrontendKinds.ClassicFrontend
+
+    override val frontendFacade: Constructor<FrontendFacade<ClassicFrontendOutputArtifact>>
+        get() = ::ClassicFrontendFacade
+
+    override val converter: Constructor<Frontend2BackendConverter<ClassicFrontendOutputArtifact, IrBackendInput>>
+        get() = ::ClassicFrontend2NativeIrConverter
+
+    override fun configure(builder: TestConfigurationBuilder) {
+        super.configure(builder)
+        with(builder) {
+            defaultDirectives {
+                +WITH_STDLIB
+            }
+        }
+    }
+}
diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/AbstractFirNativeIrTextTestBase.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/AbstractFirNativeIrTextTestBase.kt
new file mode 100644
index 0000000..5eaf94e
--- /dev/null
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/AbstractFirNativeIrTextTestBase.kt
@@ -0,0 +1,41 @@
+/*
+ * 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.irText
+
+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/irText/AbstractNativeIrTextTestBase.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/AbstractNativeIrTextTestBase.kt
new file mode 100644
index 0000000..e364fa5
--- /dev/null
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/AbstractNativeIrTextTestBase.kt
@@ -0,0 +1,46 @@
+/*
+ * 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.irText
+
+import org.jetbrains.kotlin.platform.konan.NativePlatforms
+import org.jetbrains.kotlin.test.TargetBackend
+import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler
+import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
+import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
+import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
+import org.jetbrains.kotlin.test.model.BackendKind
+import org.jetbrains.kotlin.test.model.ResultingArtifact
+import org.jetbrains.kotlin.test.runners.ir.AbstractIrTextTest
+import org.jetbrains.kotlin.test.services.LibraryProvider
+import org.jetbrains.kotlin.test.services.TestServices
+import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
+import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator
+import kotlin.reflect.KFunction2
+
+abstract class AbstractNativeIrTextTestBase<FrontendOutput : ResultingArtifact.FrontendOutput<FrontendOutput>> :
+    AbstractIrTextTest<FrontendOutput>(NativePlatforms.unspecifiedNativePlatform, TargetBackend.NATIVE) {
+
+    override val irTextDumpHandler: KFunction2<TestServices, BackendKind<IrBackendInput>, IrTextDumpHandler> = ::NativeIrTextDumpHandler
+
+    final override fun TestConfigurationBuilder.applyConfigurators() {
+        useConfigurators(
+            ::CommonEnvironmentConfigurator,
+            ::NativeEnvironmentConfigurator,
+        )
+
+        useAdditionalService(::LibraryProvider)
+    }
+
+    override fun configure(builder: TestConfigurationBuilder) {
+        super.configure(builder)
+        with(builder) {
+            defaultDirectives {
+                // Kotlin/Native does not have "minimal" stdlib(like other backends do), so full stdlib is needed to resolve `Any`, `String`, `println`, etc.
+                +ConfigurationDirectives.WITH_STDLIB
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/ClassicFrontend2NativeIrConverter.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/ClassicFrontend2NativeIrConverter.kt
new file mode 100644
index 0000000..cc3d88f
--- /dev/null
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/ClassicFrontend2NativeIrConverter.kt
@@ -0,0 +1,76 @@
+/*
+ * 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.irText
+
+import org.jetbrains.kotlin.backend.konan.serialization.KonanManglerIr
+import org.jetbrains.kotlin.cli.js.klib.generateIrForKlibSerialization
+import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
+import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
+import org.jetbrains.kotlin.ir.backend.js.*
+import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
+import org.jetbrains.kotlin.ir.symbols.IrSymbol
+import org.jetbrains.kotlin.ir.util.SymbolTable
+import org.jetbrains.kotlin.test.TargetBackend
+import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
+import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
+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.*
+
+class ClassicFrontend2NativeIrConverter(
+    testServices: TestServices
+) : Frontend2BackendConverter<ClassicFrontendOutputArtifact, IrBackendInput>(
+    testServices,
+    FrontendKinds.ClassicFrontend,
+    BackendKinds.IrBackend
+) {
+    override val additionalServices: List<ServiceRegistrationData>
+        get() = listOf(service(::LibraryProvider))
+
+    override fun transform(module: TestModule, inputArtifact: ClassicFrontendOutputArtifact): IrBackendInput {
+        return when (module.targetBackend) {
+            TargetBackend.NATIVE -> transformToNativeIr(module, inputArtifact)
+            else -> testServices.assertions.fail { "Target backend ${module.targetBackend} not supported for transformation into IR" }
+        }
+    }
+
+    private fun transformToNativeIr(module: TestModule, inputArtifact: ClassicFrontendOutputArtifact): IrBackendInput {
+        val (psiFiles, analysisResult, project, _) = inputArtifact
+
+        val configuration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
+        val verifySignatures = true //JsEnvironmentConfigurationDirectives.SKIP_MANGLE_VERIFICATION !in module.directives
+
+        val sourceFiles = psiFiles.values.toList()
+        val icData = configuration.incrementalDataProvider?.getSerializedData(sourceFiles) ?: emptyList()
+        val expectDescriptorToSymbol = mutableMapOf<DeclarationDescriptor, IrSymbol>()
+
+        val (moduleFragment, pluginContext) = generateIrForKlibSerialization(
+            project,
+            sourceFiles,
+            configuration,
+            analysisResult,
+            listOf(),
+            icData,
+            expectDescriptorToSymbol,
+            IrFactoryImpl,
+            verifySignatures
+        ) {
+            testServices.libraryProvider.getDescriptorByCompiledLibrary(it)
+        }
+
+        return IrBackendInput.NativeBackendInput(
+            moduleFragment,
+            dependentIrModuleFragments = emptyList(),
+            pluginContext,
+            diagnosticReporter = DiagnosticReporterFactory.createReporter(),
+            descriptorMangler = (pluginContext.symbolTable as SymbolTable).signaturer.mangler,
+            irMangler = KonanManglerIr,
+            firMangler = null,
+        )
+    }
+}
\ No newline at end of file
diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/Fir2IrNativeResultsConverter.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/Fir2IrNativeResultsConverter.kt
new file mode 100644
index 0000000..7f6b8f9
--- /dev/null
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/Fir2IrNativeResultsConverter.kt
@@ -0,0 +1,195 @@
+/*
+ * 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.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.backend.konan.FirNativeKotlinMangler
+import org.jetbrains.kotlin.backend.konan.serialization.KonanManglerDesc
+import org.jetbrains.kotlin.backend.konan.serialization.KonanManglerIr
+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.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
+
+        val commonMemberStorage = Fir2IrCommonMemberStorage(IdSignatureDescriptor(KonanManglerDesc), FirNativeKotlinMangler())
+
+        val irMangler = KonanManglerIr
+        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,
+                )
+            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?
+): 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,
+        KonanManglerIr,
+        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
+}
diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/NativeIrTextDumpHandler.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/NativeIrTextDumpHandler.kt
new file mode 100644
index 0000000..e1e8738
--- /dev/null
+++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/irText/NativeIrTextDumpHandler.kt
@@ -0,0 +1,31 @@
+/*
+ * 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.irText
+
+import org.jetbrains.kotlin.backend.konan.KonanFqNames
+import org.jetbrains.kotlin.ir.types.classFqName
+import org.jetbrains.kotlin.ir.util.DumpIrTreeOptions
+import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler
+import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
+import org.jetbrains.kotlin.test.model.BackendKind
+import org.jetbrains.kotlin.test.services.TestServices
+
+class NativeIrTextDumpHandler(
+    testServices: TestServices,
+    artifactKind: BackendKind<IrBackendInput>,
+) : IrTextDumpHandler(
+    testServices,
+    artifactKind
+) {
+    override val dumpOptions = super.dumpOptions.copy(
+        annotationFilter = {
+            it.type.classFqName != KonanFqNames.gcUnsafeCall
+        },
+        doPrintExternalFlag = { // KT-61141
+            it.isExternal  && !(it.isFakeOverride && it.name.asString() == "equals")
+        },
+    )
+}
\ No newline at end of file