diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/MangleConstant.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/MangleConstant.kt index 03152fb8918..9c5de29d8f1 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/MangleConstant.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/MangleConstant.kt @@ -19,6 +19,8 @@ enum class MangleConstant(val prefix: Char, val separator: Char, val suffix: Cha const val EXPECT_MARK = "#expect" const val UNKNOWN_MARK = "" const val DYNAMIC_MARK = "" + const val ERROR_MARK = "" + const val ERROR_DECLARATION = "" const val STATIC_MEMBER_MARK = "#static" const val VARIANCE_SEPARATOR = '|' diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrExportCheckerVisitor.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrExportCheckerVisitor.kt index a5131cccc6c..7198da340c4 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrExportCheckerVisitor.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrExportCheckerVisitor.kt @@ -45,6 +45,7 @@ abstract class IrExportCheckerVisitor : IrElementVisitor, Kot override fun visitValueParameter(declaration: IrValueParameter, data: Nothing?) = false override fun visitVariable(declaration: IrVariable, data: Nothing?) = false override fun visitLocalDelegatedProperty(declaration: IrLocalDelegatedProperty, data: Nothing?) = false + override fun visitErrorDeclaration(declaration: IrErrorDeclaration, data: Nothing?): Boolean = false override fun visitTypeParameter(declaration: IrTypeParameter, data: Nothing?) = false diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrMangleComputer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrMangleComputer.kt index eaf68a0ae90..94dfc3aed27 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrMangleComputer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrMangleComputer.kt @@ -177,6 +177,7 @@ abstract class IrMangleComputer(protected val builder: StringBuilder, private va if (type.hasQuestionMark) tBuilder.appendSignature(MangleConstant.Q_MARK) } is IrDynamicType -> tBuilder.appendSignature(MangleConstant.DYNAMIC_MARK) + is IrErrorType -> tBuilder.appendSignature(MangleConstant.ERROR_MARK) else -> error("Unexpected type $type") } } @@ -187,6 +188,10 @@ abstract class IrMangleComputer(protected val builder: StringBuilder, private va declaration.parent.accept(this, data) } + override fun visitErrorDeclaration(declaration: IrErrorDeclaration, data: Boolean) { + declaration.mangleSimpleDeclaration(MangleConstant.ERROR_DECLARATION) + } + override fun visitClass(declaration: IrClass, data: Boolean) { isRealExpect = isRealExpect or declaration.isExpect typeParameterContainer.add(declaration)