From 6d45b048cb4d1d85188433c19fe452589b61082a Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Fri, 24 Jan 2020 15:35:20 +0300 Subject: [PATCH] Check for presence of ir-folder in klibs additionally for Kotlin/Native --- .../kotlin/ide/konan/KotlinNativePluginUtil.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativePluginUtil.kt b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativePluginUtil.kt index 7f84e8e6c0b..bac7f7b5b86 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativePluginUtil.kt +++ b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativePluginUtil.kt @@ -19,10 +19,7 @@ import org.jetbrains.kotlin.ide.konan.decompiler.KotlinNativeLoadingMetadataCach import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.idea.decompiler.textBuilder.LoggingErrorReporter -import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION -import org.jetbrains.kotlin.library.KLIB_MANIFEST_FILE_NAME -import org.jetbrains.kotlin.library.KLIB_PROPERTY_UNIQUE_NAME -import org.jetbrains.kotlin.library.KotlinLibrary +import org.jetbrains.kotlin.library.* import org.jetbrains.kotlin.library.impl.KotlinLibraryImpl import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf import org.jetbrains.kotlin.library.metadata.PackageAccessHandler @@ -91,6 +88,11 @@ internal val VirtualFile.isKonanLibraryRoot: Boolean val manifestFile = findChild(KLIB_MANIFEST_FILE_NAME)?.takeIf { !it.isDirectory } ?: return false + // this is a hacky way to determine whether this is a Kotlin/Native .klib or common .klib (common .klibs don't have ir) + // TODO(dsavvinov): introduce more robust way to detect library platform + val irFolder = findChild(KLIB_IR_FOLDER_NAME) + if (irFolder == null || irFolder.children.isEmpty()) return false + val manifestProperties = try { manifestFile.inputStream.use { Properties().apply { load(it) } } } catch (_: IOException) {