diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrTreeVerifierHandler.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrTreeVerifierHandler.kt index 847efd67203..d746461c974 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrTreeVerifierHandler.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrTreeVerifierHandler.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.test.backend.ir.IrBackendInput import org.jetbrains.kotlin.test.directives.CodegenTestDirectives import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.EXTERNAL_FILE import org.jetbrains.kotlin.test.directives.model.DirectivesContainer +import org.jetbrains.kotlin.test.model.FrontendKinds import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices @@ -27,7 +28,7 @@ class IrTreeVerifierHandler(testServices: TestServices) : AbstractIrHandler(test for ((testFile, irFile) in testFileToIrFile) { if (testFile?.directives?.contains(EXTERNAL_FILE) == true) continue - IrVerifier(assertions).verifyWithAssert(irFile) + IrVerifier(assertions, module.frontendKind == FrontendKinds.FIR).verifyWithAssert(irFile) val actualDump = irFile.dumpTreesFromLineNumber(lineNumber = 0, normalizeNames = true) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/ir/AbstractIrTextTestCase.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/ir/AbstractIrTextTestCase.kt index 204a88f77fc..b5908e2ea7d 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/ir/AbstractIrTextTestCase.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/ir/AbstractIrTextTestCase.kt @@ -140,7 +140,7 @@ abstract class AbstractIrTextTestCase : AbstractIrGeneratorTestCase() { } private fun verify(irFile: IrFile) { - IrVerifier(JUnit4Assertions).verifyWithAssert(irFile) + IrVerifier(JUnit4Assertions, isFir = false).verifyWithAssert(irFile) } internal class Expectations(val regexps: List, val irTreeFileLabels: List) diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/ir/IrVerifier.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/ir/IrVerifier.kt index d1a88159676..2b1248c4406 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/ir/IrVerifier.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/ir/IrVerifier.kt @@ -16,7 +16,10 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.test.Assertions -class IrVerifier(private val assertions: Assertions) : IrElementVisitorVoid { +class IrVerifier( + private val assertions: Assertions, + private val isFir: Boolean, +) : IrElementVisitorVoid { private val errors = ArrayList() private val symbolForDeclaration = HashMap() @@ -95,6 +98,10 @@ class IrVerifier(private val assertions: Assertions) : IrElementVisitorVoid { override fun visitFunction(declaration: IrFunction) { visitDeclaration(declaration) + // For FIR, we don't use descriptors to build IR, but vice versa + // And at some points, like context descriptors, they might differ + if (isFir) return + val functionDescriptor = declaration.descriptor checkTypeParameters(functionDescriptor, declaration, functionDescriptor.typeParameters)