From d24e136ba8cf6459a6f3162e62b4a61a8edecc7d Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 10 Jun 2020 20:17:50 +0200 Subject: [PATCH] Minor, make IdSignature.PublicSignature not a data class --- .../src/org/jetbrains/kotlin/ir/util/IdSignature.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IdSignature.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IdSignature.kt index c4d73623cf7..8df53c7f79f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IdSignature.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IdSignature.kt @@ -46,7 +46,7 @@ sealed class IdSignature { return "${if (isPublic) "public" else "private"} ${render()}" } - data class PublicSignature(val packageFqn: FqName, val declarationFqn: FqName, val id: Long?, val mask: Long) : IdSignature() { + class PublicSignature(val packageFqn: FqName, val declarationFqn: FqName, val id: Long?, val mask: Long) : IdSignature() { override val isPublic = true override fun packageFqName() = packageFqn @@ -80,9 +80,14 @@ sealed class IdSignature { override fun render(): String = "${packageFqn.asString()}/${declarationFqn.asString()}|$id[${mask.toString(2)}]" - override fun toString() = super.toString() - override fun asPublic(): PublicSignature? = this + + override fun equals(other: Any?): Boolean = + other is PublicSignature && + packageFqn == other.packageFqn && declarationFqn == other.declarationFqn && id == other.id && mask == other.mask + + override fun hashCode(): Int = + ((packageFqn.hashCode() * 31 + declarationFqn.hashCode()) * 31 + id.hashCode()) * 31 + mask.hashCode() } class AccessorSignature(val propertySignature: IdSignature, val accessorSignature: PublicSignature) : IdSignature() {