From 5f7a6d55a8c44dfd6522376b948f14db5c4612e8 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Thu, 12 Mar 2020 21:19:48 +0700 Subject: [PATCH] KLIB: Fix compilation --- .../resolve/CompositeResolverForModuleFactory.kt | 2 +- .../kotlin/idea/decompiler/klib/KlibMetaBinary.kt | 10 ---------- .../kotlin/idea/klib/AbstractKlibLibraryInfo.kt | 2 +- .../jetbrains/kotlin/idea/util/ProjectRootsUtil.kt | 2 ++ .../ide/konan/KotlinNativeModuleConfigurator.kt | 4 ++-- .../kotlin/ide/konan/NativeLibraryType.kt | 4 +++- .../kotlin/ide/konan/index/KlibMetaFileIndex.kt | 14 -------------- idea/resources/META-INF/native.xml | 2 +- 8 files changed, 10 insertions(+), 30 deletions(-) delete mode 100644 idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/klib/KlibMetaBinary.kt delete mode 100644 idea/idea-native/src/org/jetbrains/kotlin/ide/konan/index/KlibMetaFileIndex.kt diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/CompositeResolverForModuleFactory.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/CompositeResolverForModuleFactory.kt index 5ef801a8614..0e0e596aa4b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/CompositeResolverForModuleFactory.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/CompositeResolverForModuleFactory.kt @@ -131,7 +131,7 @@ class CompositeResolverForModuleFactory( var klibMetadataProvider: PackageFragmentProvider? = null if (moduleInfo is CommonKlibLibraryInfo && moduleInfo.compatibilityInfo.isCompatible) { - val library = moduleInfo.commonLibrary + val library = moduleInfo.resolvedKotlinLibrary val languageVersionSettings = container.get() val packageFragmentNames = parseModuleHeader(library.moduleHeaderData).packageFragmentNameList diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/klib/KlibMetaBinary.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/klib/KlibMetaBinary.kt deleted file mode 100644 index d87bfb21962..00000000000 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/klib/KlibMetaBinary.kt +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ -package org.jetbrains.kotlin.ide.konan.decompiler - -import org.jetbrains.kotlin.idea.klib.KlibMetaFileType -import org.jetbrains.kotlin.idea.util.KotlinBinaryExtension - -class KlibMetaBinary : KotlinBinaryExtension(KlibMetaFileType) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/AbstractKlibLibraryInfo.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/AbstractKlibLibraryInfo.kt index 13acf74384c..0c269ee0c6b 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/AbstractKlibLibraryInfo.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/AbstractKlibLibraryInfo.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.konan.file.File import org.jetbrains.kotlin.library.ToolingSingleFileKlibResolveStrategy import org.jetbrains.kotlin.library.resolveSingleFileKlib -abstract class AbstractKlibLibraryInfo(project: Project, library: Library, protected val libraryRoot: String) : LibraryInfo(project, library) { +abstract class AbstractKlibLibraryInfo(project: Project, library: Library, val libraryRoot: String) : LibraryInfo(project, library) { val resolvedKotlinLibrary = resolveSingleFileKlib( libraryFile = File(libraryRoot), diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt index 28e962e6598..74ef24a7465 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/util/ProjectRootsUtil.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.idea.KotlinModuleFileType import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType import org.jetbrains.kotlin.idea.decompiler.js.KotlinJavaScriptMetaFileType +import org.jetbrains.kotlin.idea.klib.KlibMetaFileType import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition import kotlin.script.experimental.api.ScriptAcceptedLocation @@ -50,6 +51,7 @@ class JavaClassBinary : KotlinBinaryExtension(JavaClassFileType.INSTANCE) class KotlinBuiltInBinary : KotlinBinaryExtension(KotlinBuiltInFileType) class KotlinModuleBinary : KotlinBinaryExtension(KotlinModuleFileType.INSTANCE) class KotlinJsMetaBinary : KotlinBinaryExtension(KotlinJavaScriptMetaFileType) +class KlibMetaBinary : KotlinBinaryExtension(KlibMetaFileType) fun FileType.isKotlinBinary(): Boolean = this in KotlinBinaryExtension.kotlinBinaries diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeModuleConfigurator.kt b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeModuleConfigurator.kt index 2e521c44334..17d2e0ebe82 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeModuleConfigurator.kt +++ b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeModuleConfigurator.kt @@ -8,10 +8,10 @@ package org.jetbrains.kotlin.ide.konan import com.intellij.openapi.module.Module import com.intellij.openapi.project.Project import com.intellij.psi.search.GlobalSearchScope -import org.jetbrains.kotlin.ide.konan.index.KotlinNativeMetaFileIndex import org.jetbrains.kotlin.idea.configuration.LibraryKindSearchScope import org.jetbrains.kotlin.idea.configuration.hasKotlinFilesOnlyInTests import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode +import org.jetbrains.kotlin.idea.vfilefinder.KlibMetaFileIndex import org.jetbrains.kotlin.idea.vfilefinder.hasSomethingInPackage import org.jetbrains.kotlin.name.FqName @@ -23,5 +23,5 @@ fun hasKotlinNativeRuntimeInScope(module: Module): Boolean = module.project.runR private val KOTLIN_NATIVE_FQ_NAME = FqName("kotlin.native") fun hasKotlinNativeMetadataFile(project: Project, scope: GlobalSearchScope): Boolean = project.runReadActionInSmartMode { - KotlinNativeMetaFileIndex.hasSomethingInPackage(KOTLIN_NATIVE_FQ_NAME, scope) + KlibMetaFileIndex.hasSomethingInPackage(KOTLIN_NATIVE_FQ_NAME, scope) } diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/NativeLibraryType.kt b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/NativeLibraryType.kt index a1dfa8fdc07..5b63f9fae25 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/NativeLibraryType.kt +++ b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/NativeLibraryType.kt @@ -11,6 +11,8 @@ import com.intellij.openapi.roots.libraries.LibraryType import com.intellij.openapi.roots.libraries.ui.LibraryEditorComponent import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.kotlin.idea.KotlinIcons +import org.jetbrains.kotlin.idea.klib.isKlibLibraryRootForPlatform +import org.jetbrains.kotlin.platform.konan.KonanPlatforms import javax.swing.Icon import javax.swing.JComponent @@ -23,7 +25,7 @@ object NativeLibraryType : LibraryType(NativeLibraryKind // However this does not work for libraries that are to be just created during project build, e.g. C-interop Kotlin/Native KLIBs. // The code below helps to perform postponed detection of Kotlin/Native libraries. override fun detect(classesRoots: List): DummyLibraryProperties? = - if (classesRoots.firstOrNull()?.isKonanLibraryRoot == true) + if (classesRoots.firstOrNull()?.isKlibLibraryRootForPlatform(KonanPlatforms.defaultKonanPlatform) == true) DummyLibraryProperties.INSTANCE!! else null diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/index/KlibMetaFileIndex.kt b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/index/KlibMetaFileIndex.kt deleted file mode 100644 index cf503e6a2f9..00000000000 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/index/KlibMetaFileIndex.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.ide.konan.index - -import com.intellij.util.indexing.FileBasedIndex -import org.jetbrains.kotlin.idea.klib.KlibLoadingMetadataCache -import org.jetbrains.kotlin.idea.klib.KlibMetaFileType -import org.jetbrains.kotlin.idea.vfilefinder.KotlinFileIndexBase -import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf -import org.jetbrains.kotlin.name.FqName - diff --git a/idea/resources/META-INF/native.xml b/idea/resources/META-INF/native.xml index 0befe6c1b49..339fb374f3b 100644 --- a/idea/resources/META-INF/native.xml +++ b/idea/resources/META-INF/native.xml @@ -26,7 +26,7 @@ - +