[K/N] Move Native-specific mangle constants to more suitable places

They shouldn't be mixed with target-independent constants.
This commit is contained in:
Sergej Jaskiewicz
2023-09-05 16:55:34 +02:00
committed by teamcity
parent 08a9e7eae9
commit 9eba17d631
4 changed files with 18 additions and 20 deletions
@@ -30,6 +30,11 @@ import org.jetbrains.kotlin.name.Name
// TODO: do not serialize descriptors of non-exported declarations.
object KonanBinaryInterface {
internal const val MANGLE_FUN_PREFIX = "kfun"
internal const val MANGLE_CLASS_PREFIX = "kclass"
internal const val MANGLE_FIELD_PREFIX = "kfield"
private val mangler = object : AbstractKonanIrMangler(withReturnType = true, allowOutOfScopeTypeParameters = true) {}
private val exportChecker = mangler.getExportChecker(compatibleMode = true)
@@ -43,7 +48,7 @@ object KonanBinaryInterface {
return funSymbolNameImpl(null)
}
val IrField.symbolName: String get() = withPrefix(MangleConstant.FIELD_PREFIX, fieldSymbolNameImpl())
val IrField.symbolName: String get() = withPrefix(MANGLE_FIELD_PREFIX, fieldSymbolNameImpl())
val IrClass.typeInfoSymbolName: String get() = typeInfoSymbolNameImpl(null)
@@ -70,7 +75,7 @@ object KonanBinaryInterface {
}
val mangle = mangler.run { mangleString(compatibleMode = true) }
return withPrefix(MangleConstant.FUN_PREFIX, containerName?.plus(".$mangle") ?: mangle)
return withPrefix(MANGLE_FUN_PREFIX, containerName?.plus(".$mangle") ?: mangle)
}
private fun IrField.fieldSymbolNameImpl(): String {
@@ -82,7 +87,7 @@ object KonanBinaryInterface {
private fun IrClass.typeInfoSymbolNameImpl(containerName: String?): String {
val fqName = fqNameForIrSerialization.toString()
return withPrefix(MangleConstant.CLASS_PREFIX, containerName?.plus(".$fqName") ?: fqName)
return withPrefix(MANGLE_CLASS_PREFIX, containerName?.plus(".$fqName") ?: fqName)
}
}
@@ -7,19 +7,16 @@ package org.jetbrains.kotlin.backend.konan.llvm
import kotlinx.cinterop.toCValues
import llvm.*
import org.jetbrains.kotlin.backend.common.serialization.mangle.MangleConstant
import org.jetbrains.kotlin.backend.konan.*
import org.jetbrains.kotlin.backend.konan.descriptors.ClassLayoutBuilder
import org.jetbrains.kotlin.backend.konan.descriptors.isTypedIntrinsic
import org.jetbrains.kotlin.backend.konan.descriptors.requiredAlignment
import org.jetbrains.kotlin.backend.konan.ir.*
import org.jetbrains.kotlin.backend.konan.lower.isStaticInitializer
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.objcinterop.*
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.objcinterop.*
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
import org.jetbrains.kotlin.library.KotlinLibrary
@@ -210,7 +207,7 @@ private class DeclarationsGeneratorVisitor(override val generationState: NativeG
declaration.computeTypeInfoSymbolName()
} else {
if (!context.config.producePerFileCache)
"${MangleConstant.CLASS_PREFIX}:$internalName"
"${KonanBinaryInterface.MANGLE_CLASS_PREFIX}:$internalName"
else {
val containerName = (generationState.cacheDeserializationStrategy as CacheDeserializationStrategy.SingleFile).filePath
declaration.computePrivateTypeInfoSymbolName(containerName)
@@ -389,7 +386,7 @@ private class DeclarationsGeneratorVisitor(override val generationState: NativeG
}
} else {
if (!context.config.producePerFileCache)
"${MangleConstant.FUN_PREFIX}:${qualifyInternalName(declaration)}"
"${KonanBinaryInterface.MANGLE_FUN_PREFIX}:${qualifyInternalName(declaration)}"
else {
val containerName = declaration.parentClassOrNull?.fqNameForIrSerialization?.asString()
?: (generationState.cacheDeserializationStrategy as CacheDeserializationStrategy.SingleFile).filePath