diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt index 5c57f7a8f72..f4453f3918e 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt @@ -25,6 +25,9 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid +/** + * A mangle computer that generates a mangled name for a Kotlin declaration represented by [FirDeclaration]. + */ class FirJvmMangleComputer( builder: StringBuilder, mode: MangleMode, diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/KotlinMangleComputer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/KotlinMangleComputer.kt index 2a62a8c05e3..0c8bb6b79ee 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/KotlinMangleComputer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/KotlinMangleComputer.kt @@ -5,9 +5,28 @@ package org.jetbrains.kotlin.backend.common.serialization.mangle -interface KotlinMangleComputer { +/** + * Something capable of producing a mangled name for a Kotlin declaration. + * + * @param Declaration A class representing a Kotlin declaration. + */ +interface KotlinMangleComputer { - fun computeMangle(declaration: D): String + /** + * Computes the mangled name of [declaration]. + * + * @param declaration The Kotlin declaration to compute a mangle name for. + * @return The mangled name of [declaration]. + */ + fun computeMangle(declaration: Declaration): String - fun copy(newMode: MangleMode): KotlinMangleComputer -} \ No newline at end of file + /** + * Creates a copy of this mangle computer with a different mangle mode but otherwise the same state. + * + * Useful for temporarily switching the mangle mode. + * + * @param newMode The mangle mode to use in the new mangle computer. + * @return A copy of this mangle computer. + */ + fun copy(newMode: MangleMode): KotlinMangleComputer +} 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 afb5a55a90c..f074d7bf2a3 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 @@ -15,6 +15,9 @@ import org.jetbrains.kotlin.types.checker.SimpleClassicTypeSystemContext import org.jetbrains.kotlin.types.model.TypeSystemContext import org.jetbrains.kotlin.types.typeUtil.isUnit +/** + * The descriptor-based mangle computer. Used to compute a mangled name for a declaration given its [DeclarationDescriptor]. + */ abstract class DescriptorMangleComputer(builder: StringBuilder, mode: MangleMode) : BaseKotlinMangleComputer< /*Declaration=*/DeclarationDescriptor, 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 82bb68a6543..fb15c0e7b94 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 @@ -16,6 +16,9 @@ import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid +/** + * A mangle computer that generates a mangled name for a Kotlin declaration represented by [IrDeclaration]. + */ abstract class IrMangleComputer( builder: StringBuilder, mode: MangleMode,