From 14e23a7d844d93daf04971ece2f5cdce38f697c2 Mon Sep 17 00:00:00 2001 From: Sergej Jaskiewicz Date: Wed, 13 Sep 2023 13:37:08 +0200 Subject: [PATCH] [K/N] Cache `FqName`s computed from `ClassId`s in KonanMangler --- .../kotlin/backend/konan/serialization/KonanMangler.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanMangler.kt b/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanMangler.kt index 322a48ed9ce..0f17ee93680 100644 --- a/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanMangler.kt +++ b/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanMangler.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.util.hasAnnotation +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.NativeRuntimeNames import org.jetbrains.kotlin.name.NativeStandardInteropNames @@ -29,6 +30,8 @@ val ANNOTATIONS_TO_TREAT_AS_EXPORTED = listOf( NativeRuntimeNames.Annotations.exportForCompilerClassId, ) +private val ANNOTATIONS_TO_TREAT_AS_EXPORTED_FQNS = ANNOTATIONS_TO_TREAT_AS_EXPORTED.map(ClassId::asSingleFqName) + abstract class AbstractKonanIrMangler( private val withReturnType: Boolean, private val allowOutOfScopeTypeParameters: Boolean = false @@ -89,7 +92,7 @@ abstract class AbstractKonanDescriptorMangler : DescriptorBasedKotlinManglerImpl if (kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) return false } - return ANNOTATIONS_TO_TREAT_AS_EXPORTED.any { annotations.hasAnnotation(it.asSingleFqName()) } + return ANNOTATIONS_TO_TREAT_AS_EXPORTED_FQNS.any(annotations::hasAnnotation) }