fixup! [K/N] Check type of forward declaration in resolve
diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/impl/KlibMetadataDeserializedPackageFragmentsFactoryImpl.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/impl/KlibMetadataDeserializedPackageFragmentsFactoryImpl.kt
index 3b24008..24fda4d 100644
--- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/impl/KlibMetadataDeserializedPackageFragmentsFactoryImpl.kt
+++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/impl/KlibMetadataDeserializedPackageFragmentsFactoryImpl.kt
@@ -176,11 +176,16 @@
abstract fun check(classifierDescriptor: ClassifierDescriptor): Boolean
- // We can check that there is kotlinx.cinterop.ObjCObjectBase among supertypes, but it seems slower.
- protected fun ClassifierDescriptor.isExternalObjCClass(): Boolean =
- annotations.hasAnnotation(FqName("kotlinx.cinterop.ExternalObjCClass"))
+ companion object {
+ private val cStructVarFqName = FqName("kotlinx.cinterop.CStructVar")
+ private val externalObjCClassFqName = FqName("kotlinx.cinterop.ExternalObjCClass")
- protected fun ClassifierDescriptor.isCStructVar(): Boolean =
- getAllSuperClassifiers().find { it.fqNameSafe.asString() == "kotlinx.cinterop.CStructVar" } != null
+ // We can check that there is kotlinx.cinterop.ObjCObjectBase among supertypes, but it seems slower.
+ private fun ClassifierDescriptor.isExternalObjCClass(): Boolean =
+ annotations.hasAnnotation(externalObjCClassFqName)
+
+ private fun ClassifierDescriptor.isCStructVar(): Boolean =
+ getAllSuperClassifiers().any { it.fqNameSafe == cStructVarFqName }
+ }
}