From f7d2dfd7293f814eaad4b6ce074a58447ce1b227 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Tue, 4 Oct 2022 10:55:12 +0200 Subject: [PATCH] [IR] Linker: Small improvements --- .../common/serialization/KotlinIrLinker.kt | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt index 681bad46be2..5518d8167df 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt @@ -113,31 +113,21 @@ abstract class KotlinIrLinker( } private fun findDeserializedDeclarationForSymbol(symbol: IrSymbol): DeclarationDescriptor? { - - if (symbol in triedToDeserializeDeclarationForSymbol) { - return null - } - triedToDeserializeDeclarationForSymbol.add(symbol) - - if (!symbol.hasDescriptor) return null - val descriptor = symbol.descriptor + if (!triedToDeserializeDeclarationForSymbol.add(symbol)) return null + val descriptor = if (symbol.hasDescriptor) symbol.descriptor else return null val moduleDeserializer = resolveModuleDeserializer(descriptor.module, symbol.signature) - moduleDeserializer.declareIrSymbol(symbol) deserializeAllReachableTopLevels() - if (!symbol.isBound) return null - return descriptor + + return if (symbol.isBound) descriptor else null } protected open fun platformSpecificSymbol(symbol: IrSymbol): Boolean = false private fun tryResolveCustomDeclaration(symbol: IrSymbol): IrDeclaration? { - if (!symbol.hasDescriptor) return null - - val descriptor = symbol.descriptor - + val descriptor = if (symbol.hasDescriptor) symbol.descriptor else return null if (descriptor is CallableMemberDescriptor) { if (descriptor.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) { // skip fake overrides