From 55092da03b3e1ccea25c4aaabca34086c04a7fca Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Thu, 3 Aug 2023 12:44:01 +0200 Subject: [PATCH] [PSI2IR] Check that a given function has the right descriptor The issue was discovered during work on IR serialization and this is just a safety check. #KT-56230 --- .../kotlin/psi2ir/generators/FunctionGenerator.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt index 0bbec1f5a90..a400d74f3e2 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/FunctionGenerator.kt @@ -87,6 +87,14 @@ internal class FunctionGenerator(declarationGenerator: DeclarationGenerator) : D generateBody: BodyGenerator.() -> IrBody? ): IrSimpleFunction = declareSimpleFunctionInner(descriptor, ktFunction, origin).buildWithScope { irFunction -> + if (descriptor != irFunction.descriptor) { + val message = """ + |IrSymbolTable contains function with wrong descriptor. + |Expected: $descriptor + |Actual: ${irFunction.descriptor} + """.trimMargin() + error(message) + } generateFunctionParameterDeclarationsAndReturnType(irFunction, ktFunction, ktReceiver, ktContextReceivers) irFunction.body = createBodyGenerator(irFunction.symbol, parentLoopResolver).generateBody() }