From 949e222305d4757e4dd0faa91709a029d00cb7e1 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 31 Jan 2022 13:39:51 +0500 Subject: [PATCH] [IR] Fixed a problem with signature search The function findDescriptorBySignature should return null if no such signature has been found letting the caller to handle this correctly. Fixes https://youtrack.jetbrains.com/issue/KT-50976 --- .../serialization/DescriptorByIdSignatureFinderImpl.kt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DescriptorByIdSignatureFinderImpl.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DescriptorByIdSignatureFinderImpl.kt index b19c053365d..0c205003e3a 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DescriptorByIdSignatureFinderImpl.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DescriptorByIdSignatureFinderImpl.kt @@ -151,13 +151,7 @@ class DescriptorByIdSignatureFinderImpl( } val candidates = acc - return when (candidates.size) { - 1 -> candidates.first() - else -> { - findDescriptorByHash(candidates, signature.id) - ?: error("No descriptor found for $signature") - } - } + return candidates.singleOrNull() ?: findDescriptorByHash(candidates, signature.id) } private fun findDescriptorByHash(candidates: Collection, id: Long?): DeclarationDescriptor? =