diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/descriptor/DescriptorMangleComputer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/descriptor/DescriptorMangleComputer.kt index 34c5bf236c1..d804f9720e0 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/descriptor/DescriptorMangleComputer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/descriptor/DescriptorMangleComputer.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.backend.common.serialization.mangle.MangleConstant import org.jetbrains.kotlin.backend.common.serialization.mangle.MangleMode import org.jetbrains.kotlin.backend.common.serialization.mangle.collect import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.resolve.descriptorUtil.module import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.typeUtil.isUnit import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty @@ -77,6 +76,8 @@ abstract class DescriptorMangleComputer(protected val builder: StringBuilder, pr open fun FunctionDescriptor.platformSpecificSuffix(): String? = null open fun PropertyDescriptor.platformSpecificSuffix(): String? = null + protected open fun addReturnType(): Boolean = false + open fun FunctionDescriptor.specialValueParamPrefix(param: ValueParameterDescriptor): String = "" private val CallableDescriptor.isRealStatic: Boolean @@ -122,7 +123,7 @@ abstract class DescriptorMangleComputer(protected val builder: StringBuilder, pr .collect(builder, MangleConstant.TYPE_PARAMETERS) { mangleTypeParameter(this, it) } returnType?.run { - if (!isCtor && !isUnit()) { + if (!isCtor && !isUnit() && addReturnType()) { mangleType(builder, this) } } 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 55f1ed83306..af8c17448b1 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 @@ -5,19 +5,16 @@ package org.jetbrains.kotlin.backend.common.serialization.mangle.ir -import org.jetbrains.kotlin.backend.common.ir.isStatic import org.jetbrains.kotlin.backend.common.serialization.mangle.KotlinMangleComputer import org.jetbrains.kotlin.backend.common.serialization.mangle.MangleConstant import org.jetbrains.kotlin.backend.common.serialization.mangle.MangleMode import org.jetbrains.kotlin.backend.common.serialization.mangle.collect -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.isVararg -import org.jetbrains.kotlin.ir.util.module import org.jetbrains.kotlin.ir.util.render import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.types.Variance @@ -34,6 +31,8 @@ abstract class IrMangleComputer(protected val builder: StringBuilder, private va open fun IrFunction.specialValueParamPrefix(param: IrValueParameter): String = "" + open fun addReturnType(): Boolean = false + abstract override fun copy(newMode: MangleMode): IrMangleComputer private fun StringBuilder.appendName(s: String) { @@ -117,7 +116,7 @@ abstract class IrMangleComputer(protected val builder: StringBuilder, private va } typeParameters.collect(builder, MangleConstant.TYPE_PARAMETERS) { mangleTypeParameter(this, it) } - if (!isCtor && !returnType.isUnit()) { + if (!isCtor && !returnType.isUnit() && addReturnType()) { mangleType(builder, returnType) } }