IDE: Drop NativeLibraryInfo.NATIVE_LIBRARY_CAPABILITY

This commit is contained in:
Dmitriy Dolovov
2020-03-20 18:16:55 +07:00
parent 5f7a6d55a8
commit 816db96113
2 changed files with 8 additions and 15 deletions
@@ -14,7 +14,6 @@ import com.intellij.util.PathUtil
import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.analyzer.PlatformAnalysisParameters import org.jetbrains.kotlin.analyzer.PlatformAnalysisParameters
import org.jetbrains.kotlin.analyzer.ResolverForModuleFactory import org.jetbrains.kotlin.analyzer.ResolverForModuleFactory
import org.jetbrains.kotlin.analyzer.getCapability
import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.functions.functionInterfacePackageFragmentProvider import org.jetbrains.kotlin.builtins.functions.functionInterfacePackageFragmentProvider
@@ -91,8 +90,8 @@ class NativePlatformKindResolution : IdePlatformKindResolution {
languageVersionSettings: LanguageVersionSettings, languageVersionSettings: LanguageVersionSettings,
moduleDescriptor: ModuleDescriptor moduleDescriptor: ModuleDescriptor
): PackageFragmentProvider? { ): PackageFragmentProvider? {
val konanLibrary = moduleInfo.getCapability(NativeLibraryInfo.NATIVE_LIBRARY_CAPABILITY) ?: return null val library = (moduleInfo as? NativeLibraryInfo)?.resolvedKotlinLibrary ?: return null
return konanLibrary.createPackageFragmentProvider( return library.createPackageFragmentProvider(
storageManager, storageManager,
languageVersionSettings, languageVersionSettings,
moduleDescriptor moduleDescriptor
@@ -129,22 +128,22 @@ private fun createKotlinNativeBuiltIns(moduleInfo: ModuleInfo, projectContext: P
val storageManager = projectContext.storageManager val storageManager = projectContext.storageManager
val stdlibInfo = moduleInfo.findNativeStdlib() ?: return DefaultBuiltIns.Instance val stdlibInfo = moduleInfo.findNativeStdlib() ?: return DefaultBuiltIns.Instance
val konanLibrary = stdlibInfo.getCapability(NativeLibraryInfo.NATIVE_LIBRARY_CAPABILITY)!! val library = stdlibInfo.resolvedKotlinLibrary
val builtInsModule = NativeFactories.DefaultDescriptorFactory.createDescriptorAndNewBuiltIns( val builtInsModule = NativeFactories.DefaultDescriptorFactory.createDescriptorAndNewBuiltIns(
KotlinBuiltIns.BUILTINS_MODULE_NAME, KotlinBuiltIns.BUILTINS_MODULE_NAME,
storageManager, storageManager,
DeserializedKlibModuleOrigin(konanLibrary), DeserializedKlibModuleOrigin(library),
stdlibInfo.capabilities stdlibInfo.capabilities
) )
val languageSettings = IDELanguageSettingsProvider.getLanguageVersionSettings(stdlibInfo, project, isReleaseCoroutines = false) val languageSettings = IDELanguageSettingsProvider.getLanguageVersionSettings(stdlibInfo, project, isReleaseCoroutines = false)
val deserializationConfiguration = CompilerDeserializationConfiguration(languageSettings) val deserializationConfiguration = CompilerDeserializationConfiguration(languageSettings)
val libraryProto = CachingIdeKonanLibraryMetadataLoader.loadModuleHeader(konanLibrary) val libraryProto = CachingIdeKonanLibraryMetadataLoader.loadModuleHeader(library)
val stdlibFragmentProvider = NativeFactories.DefaultDeserializedDescriptorFactory.createPackageFragmentProvider( val stdlibFragmentProvider = NativeFactories.DefaultDeserializedDescriptorFactory.createPackageFragmentProvider(
konanLibrary, library,
CachingIdeKonanLibraryMetadataLoader, CachingIdeKonanLibraryMetadataLoader,
libraryProto.packageFragmentNameList, libraryProto.packageFragmentNameList,
storageManager, storageManager,
@@ -182,7 +181,6 @@ class NativeLibraryInfo(project: Project, library: Library, libraryRoot: String)
get() { get() {
val capabilities = super.capabilities.toMutableMap() val capabilities = super.capabilities.toMutableMap()
capabilities += KlibModuleOrigin.CAPABILITY to DeserializedKlibModuleOrigin(resolvedKotlinLibrary) capabilities += KlibModuleOrigin.CAPABILITY to DeserializedKlibModuleOrigin(resolvedKotlinLibrary)
capabilities += NATIVE_LIBRARY_CAPABILITY to resolvedKotlinLibrary
capabilities += ImplicitIntegerCoercion.MODULE_CAPABILITY to resolvedKotlinLibrary.readSafe(false) { isInterop } capabilities += ImplicitIntegerCoercion.MODULE_CAPABILITY to resolvedKotlinLibrary.readSafe(false) { isInterop }
return capabilities return capabilities
} }
@@ -191,8 +189,4 @@ class NativeLibraryInfo(project: Project, library: Library, libraryRoot: String)
get() = KonanPlatforms.defaultKonanPlatform get() = KonanPlatforms.defaultKonanPlatform
override fun toString() = "Native" + super.toString() override fun toString() = "Native" + super.toString()
companion object {
val NATIVE_LIBRARY_CAPABILITY = ModuleDescriptor.Capability<KotlinLibrary>("KotlinNativeLibrary")
}
} }
@@ -59,10 +59,9 @@ class NativeResolverForModuleFactory(
val moduleInfo = moduleContent.moduleInfo val moduleInfo = moduleContent.moduleInfo
val konanLibrary = moduleInfo.getCapability(NativeLibraryInfo.NATIVE_LIBRARY_CAPABILITY) if (moduleInfo is NativeLibraryInfo) {
if (konanLibrary != null) {
val libPackageFragmentProvider = val libPackageFragmentProvider =
konanLibrary.createPackageFragmentProvider( moduleInfo.resolvedKotlinLibrary.createPackageFragmentProvider(
moduleContext.storageManager, moduleContext.storageManager,
languageVersionSettings, languageVersionSettings,
moduleDescriptor moduleDescriptor