[KLIB] Do not include return type into mangle

This commit is contained in:
Roman Artemev
2020-03-06 18:27:34 +03:00
committed by romanart
parent 62621de4fc
commit 7fff4e78e5
2 changed files with 6 additions and 6 deletions
@@ -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.MangleMode
import org.jetbrains.kotlin.backend.common.serialization.mangle.collect import org.jetbrains.kotlin.backend.common.serialization.mangle.collect
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.resolve.descriptorUtil.module
import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.*
import org.jetbrains.kotlin.types.typeUtil.isUnit import org.jetbrains.kotlin.types.typeUtil.isUnit
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty 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 FunctionDescriptor.platformSpecificSuffix(): String? = null
open fun PropertyDescriptor.platformSpecificSuffix(): String? = null open fun PropertyDescriptor.platformSpecificSuffix(): String? = null
protected open fun addReturnType(): Boolean = false
open fun FunctionDescriptor.specialValueParamPrefix(param: ValueParameterDescriptor): String = "" open fun FunctionDescriptor.specialValueParamPrefix(param: ValueParameterDescriptor): String = ""
private val CallableDescriptor.isRealStatic: Boolean 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) } .collect(builder, MangleConstant.TYPE_PARAMETERS) { mangleTypeParameter(this, it) }
returnType?.run { returnType?.run {
if (!isCtor && !isUnit()) { if (!isCtor && !isUnit() && addReturnType()) {
mangleType(builder, this) mangleType(builder, this)
} }
} }
@@ -5,19 +5,16 @@
package org.jetbrains.kotlin.backend.common.serialization.mangle.ir 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.KotlinMangleComputer
import org.jetbrains.kotlin.backend.common.serialization.mangle.MangleConstant 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.MangleMode
import org.jetbrains.kotlin.backend.common.serialization.mangle.collect 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.IrElement
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.*
import org.jetbrains.kotlin.ir.util.isVararg 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.util.render
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.types.Variance 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 IrFunction.specialValueParamPrefix(param: IrValueParameter): String = ""
open fun addReturnType(): Boolean = false
abstract override fun copy(newMode: MangleMode): IrMangleComputer abstract override fun copy(newMode: MangleMode): IrMangleComputer
private fun StringBuilder.appendName(s: String) { 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) } typeParameters.collect(builder, MangleConstant.TYPE_PARAMETERS) { mangleTypeParameter(this, it) }
if (!isCtor && !returnType.isUnit()) { if (!isCtor && !returnType.isUnit() && addReturnType()) {
mangleType(builder, returnType) mangleType(builder, returnType)
} }
} }