From 21dbe2e7e731d63fe6abfc0b731a00171e890e0d Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Tue, 19 Mar 2019 13:51:51 +0300 Subject: [PATCH] IR: symbolName mangling for IrTypeParameter (original author: Alexander Gorshenev) --- .../kotlin/backend/common/serialization/KotlinMangler.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinMangler.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinMangler.kt index ac7fd01e502..ef571dee1a6 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinMangler.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinMangler.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.backend.common.serialization.* import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.* @@ -199,6 +198,11 @@ abstract class KotlinManglerImpl: KotlinMangler { return "ktype:" + this.fqNameSafe.toString() } + val IrTypeParameter.symbolName: String + get() { + val containingDeclarationPart = parent.fqNameSafe + return "ktypeparam:$containingDeclarationPart$name" + } // This is a little extension over what's used in real mangling // since some declarations never appear in the bitcode symbols. @@ -214,6 +218,8 @@ abstract class KotlinManglerImpl: KotlinMangler { -> this.symbolName is IrEnumEntry -> this.symbolName + is IrTypeParameter + -> this.symbolName else -> error("Unexpected exported declaration: $this") }