IDE: Don't use direct refs on IdePlatformKindResolution EP instances
This commit is contained in:
+16
-16
@@ -72,6 +72,22 @@ class CommonPlatformKindResolution : IdePlatformKindResolution {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun createKlibPackageFragmentProvider(
|
||||||
|
moduleInfo: ModuleInfo,
|
||||||
|
storageManager: StorageManager,
|
||||||
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
|
moduleDescriptor: ModuleDescriptor
|
||||||
|
): PackageFragmentProvider? {
|
||||||
|
return (moduleInfo as? CommonKlibLibraryInfo)
|
||||||
|
?.resolvedKotlinLibrary
|
||||||
|
?.createKlibPackageFragmentProvider(
|
||||||
|
storageManager = storageManager,
|
||||||
|
metadataModuleDescriptorFactory = metadataModuleDescriptorFactory,
|
||||||
|
languageVersionSettings = languageVersionSettings,
|
||||||
|
moduleDescriptor = moduleDescriptor
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
override fun createResolverForModuleFactory(
|
override fun createResolverForModuleFactory(
|
||||||
settings: PlatformAnalysisParameters,
|
settings: PlatformAnalysisParameters,
|
||||||
environment: TargetEnvironment,
|
environment: TargetEnvironment,
|
||||||
@@ -94,22 +110,6 @@ class CommonPlatformKindResolution : IdePlatformKindResolution {
|
|||||||
metadataFactories.flexibleTypeDeserializer,
|
metadataFactories.flexibleTypeDeserializer,
|
||||||
metadataFactories.platformDependentTypeTransformer
|
metadataFactories.platformDependentTypeTransformer
|
||||||
)
|
)
|
||||||
|
|
||||||
fun createCommonKlibPackageFragmentProvider(
|
|
||||||
moduleInfo: ModuleInfo,
|
|
||||||
storageManager: StorageManager,
|
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
|
||||||
moduleDescriptor: ModuleDescriptor
|
|
||||||
): PackageFragmentProvider? {
|
|
||||||
return (moduleInfo as? CommonKlibLibraryInfo)
|
|
||||||
?.resolvedKotlinLibrary
|
|
||||||
?.createKlibPackageFragmentProvider(
|
|
||||||
storageManager = storageManager,
|
|
||||||
metadataModuleDescriptorFactory = metadataModuleDescriptorFactory,
|
|
||||||
languageVersionSettings = languageVersionSettings,
|
|
||||||
moduleDescriptor = moduleDescriptor
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-14
@@ -11,7 +11,6 @@ import com.intellij.psi.search.GlobalSearchScope
|
|||||||
import org.jetbrains.kotlin.analyzer.*
|
import org.jetbrains.kotlin.analyzer.*
|
||||||
import org.jetbrains.kotlin.analyzer.common.CommonAnalysisParameters
|
import org.jetbrains.kotlin.analyzer.common.CommonAnalysisParameters
|
||||||
import org.jetbrains.kotlin.analyzer.common.configureCommonSpecificComponents
|
import org.jetbrains.kotlin.analyzer.common.configureCommonSpecificComponents
|
||||||
import org.jetbrains.kotlin.caches.resolve.CommonPlatformKindResolution.Companion.createCommonKlibPackageFragmentProvider
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.container.*
|
import org.jetbrains.kotlin.container.*
|
||||||
import org.jetbrains.kotlin.context.ModuleContext
|
import org.jetbrains.kotlin.context.ModuleContext
|
||||||
@@ -29,10 +28,8 @@ import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolverImpl
|
|||||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||||
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory
|
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.platform.*
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
import org.jetbrains.kotlin.platform.has
|
|
||||||
import org.jetbrains.kotlin.platform.idePlatformKind
|
|
||||||
import org.jetbrains.kotlin.platform.isCommon
|
|
||||||
import org.jetbrains.kotlin.platform.js.isJs
|
import org.jetbrains.kotlin.platform.js.isJs
|
||||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatform
|
import org.jetbrains.kotlin.platform.jvm.JvmPlatform
|
||||||
import org.jetbrains.kotlin.platform.konan.NativePlatform
|
import org.jetbrains.kotlin.platform.konan.NativePlatform
|
||||||
@@ -122,7 +119,7 @@ class CompositeResolverForModuleFactory(
|
|||||||
|
|
||||||
val metadataProvider = container.get<MetadataPackageFragmentProvider>()
|
val metadataProvider = container.get<MetadataPackageFragmentProvider>()
|
||||||
|
|
||||||
val klibMetadataProvider = createCommonKlibPackageFragmentProvider(
|
val klibMetadataProvider = CommonPlatforms.defaultCommonPlatform.idePlatformKind.resolution.createKlibPackageFragmentProvider(
|
||||||
moduleInfo,
|
moduleInfo,
|
||||||
moduleContext.storageManager,
|
moduleContext.storageManager,
|
||||||
container.get<LanguageVersionSettings>(),
|
container.get<LanguageVersionSettings>(),
|
||||||
@@ -137,16 +134,15 @@ class CompositeResolverForModuleFactory(
|
|||||||
|
|
||||||
private fun getKonanProvidersIfAny(moduleInfo: ModuleInfo, container: StorageComponentContainer): List<PackageFragmentProvider> {
|
private fun getKonanProvidersIfAny(moduleInfo: ModuleInfo, container: StorageComponentContainer): List<PackageFragmentProvider> {
|
||||||
if (!targetPlatform.has<NativePlatform>()) return emptyList()
|
if (!targetPlatform.has<NativePlatform>()) return emptyList()
|
||||||
val resolution = NativePlatforms.defaultNativePlatform.idePlatformKind.resolution
|
|
||||||
|
|
||||||
val konanProvider = resolution.createPlatformSpecificPackageFragmentProvider(
|
return listOfNotNull(
|
||||||
moduleInfo,
|
NativePlatforms.defaultNativePlatform.idePlatformKind.resolution.createKlibPackageFragmentProvider(
|
||||||
container.get<StorageManager>(),
|
moduleInfo,
|
||||||
container.get<LanguageVersionSettings>(),
|
container.get<StorageManager>(),
|
||||||
container.get<ModuleDescriptor>()
|
container.get<LanguageVersionSettings>(),
|
||||||
) ?: return emptyList()
|
container.get<ModuleDescriptor>()
|
||||||
|
)
|
||||||
return listOf(konanProvider)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getJsProvidersIfAny(
|
private fun getJsProvidersIfAny(
|
||||||
|
|||||||
+2
-4
@@ -51,7 +51,7 @@ interface IdePlatformKindResolution {
|
|||||||
|
|
||||||
fun isLibraryFileForPlatform(virtualFile: VirtualFile): Boolean
|
fun isLibraryFileForPlatform(virtualFile: VirtualFile): Boolean
|
||||||
|
|
||||||
fun createPlatformSpecificPackageFragmentProvider(
|
fun createKlibPackageFragmentProvider(
|
||||||
moduleInfo: ModuleInfo,
|
moduleInfo: ModuleInfo,
|
||||||
storageManager: StorageManager,
|
storageManager: StorageManager,
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
@@ -60,9 +60,7 @@ interface IdePlatformKindResolution {
|
|||||||
|
|
||||||
val libraryKind: PersistentLibraryKind<*>?
|
val libraryKind: PersistentLibraryKind<*>?
|
||||||
|
|
||||||
fun createLibraryInfo(project: Project, library: Library): List<LibraryInfo> {
|
fun createLibraryInfo(project: Project, library: Library): List<LibraryInfo> = listOf(LibraryInfo(project, library))
|
||||||
return listOf(LibraryInfo(project, library))
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object : ApplicationExtensionDescriptor<IdePlatformKindResolution>(
|
companion object : ApplicationExtensionDescriptor<IdePlatformKindResolution>(
|
||||||
"org.jetbrains.kotlin.idePlatformKindResolution", IdePlatformKindResolution::class.java
|
"org.jetbrains.kotlin.idePlatformKindResolution", IdePlatformKindResolution::class.java
|
||||||
|
|||||||
+16
-16
@@ -78,6 +78,22 @@ class JsPlatformKindResolution : IdePlatformKindResolution {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun createKlibPackageFragmentProvider(
|
||||||
|
moduleInfo: ModuleInfo,
|
||||||
|
storageManager: StorageManager,
|
||||||
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
|
moduleDescriptor: ModuleDescriptor
|
||||||
|
): PackageFragmentProvider? {
|
||||||
|
return (moduleInfo as? JsKlibLibraryInfo)
|
||||||
|
?.resolvedKotlinLibrary
|
||||||
|
?.createKlibPackageFragmentProvider(
|
||||||
|
storageManager = storageManager,
|
||||||
|
metadataModuleDescriptorFactory = metadataModuleDescriptorFactory,
|
||||||
|
languageVersionSettings = languageVersionSettings,
|
||||||
|
moduleDescriptor = moduleDescriptor
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val metadataFactories = KlibMetadataFactories({ DefaultBuiltIns.Instance }, DynamicTypeDeserializer)
|
private val metadataFactories = KlibMetadataFactories({ DefaultBuiltIns.Instance }, DynamicTypeDeserializer)
|
||||||
|
|
||||||
@@ -87,22 +103,6 @@ class JsPlatformKindResolution : IdePlatformKindResolution {
|
|||||||
metadataFactories.flexibleTypeDeserializer,
|
metadataFactories.flexibleTypeDeserializer,
|
||||||
metadataFactories.platformDependentTypeTransformer
|
metadataFactories.platformDependentTypeTransformer
|
||||||
)
|
)
|
||||||
|
|
||||||
fun createJsKlibPackageFragmentProvider(
|
|
||||||
moduleInfo: ModuleInfo,
|
|
||||||
storageManager: StorageManager,
|
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
|
||||||
moduleDescriptor: ModuleDescriptor
|
|
||||||
): PackageFragmentProvider? {
|
|
||||||
return (moduleInfo as? JsKlibLibraryInfo)
|
|
||||||
?.resolvedKotlinLibrary
|
|
||||||
?.createKlibPackageFragmentProvider(
|
|
||||||
storageManager = storageManager,
|
|
||||||
metadataModuleDescriptorFactory = metadataModuleDescriptorFactory,
|
|
||||||
languageVersionSettings = languageVersionSettings,
|
|
||||||
moduleDescriptor = moduleDescriptor
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.caches.resolve
|
package org.jetbrains.kotlin.caches.resolve
|
||||||
|
|
||||||
import org.jetbrains.kotlin.analyzer.*
|
import org.jetbrains.kotlin.analyzer.*
|
||||||
import org.jetbrains.kotlin.caches.resolve.JsPlatformKindResolution.Companion.createJsKlibPackageFragmentProvider
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.container.StorageComponentContainer
|
import org.jetbrains.kotlin.container.StorageComponentContainer
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
@@ -17,6 +16,8 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
|||||||
import org.jetbrains.kotlin.frontend.di.createContainerForLazyResolve
|
import org.jetbrains.kotlin.frontend.di.createContainerForLazyResolve
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
|
import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
|
||||||
|
import org.jetbrains.kotlin.platform.idePlatformKind
|
||||||
|
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||||
import org.jetbrains.kotlin.resolve.BindingTraceContext
|
import org.jetbrains.kotlin.resolve.BindingTraceContext
|
||||||
import org.jetbrains.kotlin.resolve.TargetEnvironment
|
import org.jetbrains.kotlin.resolve.TargetEnvironment
|
||||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||||
@@ -74,7 +75,7 @@ internal fun <M : ModuleInfo> createPackageFragmentProvider(
|
|||||||
): List<PackageFragmentProvider> = when (moduleInfo) {
|
): List<PackageFragmentProvider> = when (moduleInfo) {
|
||||||
is JsKlibLibraryInfo -> {
|
is JsKlibLibraryInfo -> {
|
||||||
listOfNotNull(
|
listOfNotNull(
|
||||||
createJsKlibPackageFragmentProvider(
|
JsPlatforms.defaultJsPlatform.idePlatformKind.resolution.createKlibPackageFragmentProvider(
|
||||||
moduleInfo,
|
moduleInfo,
|
||||||
moduleContext.storageManager,
|
moduleContext.storageManager,
|
||||||
container.get<LanguageVersionSettings>(),
|
container.get<LanguageVersionSettings>(),
|
||||||
|
|||||||
+53
-61
@@ -55,13 +55,21 @@ class NativePlatformKindResolution : IdePlatformKindResolution {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createPlatformSpecificPackageFragmentProvider(
|
override fun createKlibPackageFragmentProvider(
|
||||||
moduleInfo: ModuleInfo,
|
moduleInfo: ModuleInfo,
|
||||||
storageManager: StorageManager,
|
storageManager: StorageManager,
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
moduleDescriptor: ModuleDescriptor
|
moduleDescriptor: ModuleDescriptor
|
||||||
): PackageFragmentProvider? =
|
): PackageFragmentProvider? {
|
||||||
createNativeKlibPackageFragmentProvider(moduleInfo, storageManager, languageVersionSettings, moduleDescriptor)
|
return (moduleInfo as? NativeKlibLibraryInfo)
|
||||||
|
?.resolvedKotlinLibrary
|
||||||
|
?.createKlibPackageFragmentProvider(
|
||||||
|
storageManager = storageManager,
|
||||||
|
metadataModuleDescriptorFactory = metadataFactories.DefaultDeserializedDescriptorFactory,
|
||||||
|
languageVersionSettings = languageVersionSettings,
|
||||||
|
moduleDescriptor = moduleDescriptor
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
override fun isLibraryFileForPlatform(virtualFile: VirtualFile): Boolean =
|
override fun isLibraryFileForPlatform(virtualFile: VirtualFile): Boolean =
|
||||||
virtualFile.isKlibLibraryRootForPlatform(NativePlatforms.defaultNativePlatform)
|
virtualFile.isKlibLibraryRootForPlatform(NativePlatforms.defaultNativePlatform)
|
||||||
@@ -84,69 +92,53 @@ class NativePlatformKindResolution : IdePlatformKindResolution {
|
|||||||
override fun createBuiltIns(moduleInfo: ModuleInfo, projectContext: ProjectContext, sdkDependency: SdkInfo?) =
|
override fun createBuiltIns(moduleInfo: ModuleInfo, projectContext: ProjectContext, sdkDependency: SdkInfo?) =
|
||||||
createKotlinNativeBuiltIns(moduleInfo, projectContext)
|
createKotlinNativeBuiltIns(moduleInfo, projectContext)
|
||||||
|
|
||||||
|
private fun createKotlinNativeBuiltIns(moduleInfo: ModuleInfo, projectContext: ProjectContext): KotlinBuiltIns {
|
||||||
|
val stdlibInfo = moduleInfo.findNativeStdlib() ?: return DefaultBuiltIns.Instance
|
||||||
|
|
||||||
|
val project = projectContext.project
|
||||||
|
val storageManager = projectContext.storageManager
|
||||||
|
|
||||||
|
val builtInsModule = metadataFactories.DefaultDescriptorFactory.createDescriptorAndNewBuiltIns(
|
||||||
|
KotlinBuiltIns.BUILTINS_MODULE_NAME,
|
||||||
|
storageManager,
|
||||||
|
DeserializedKlibModuleOrigin(stdlibInfo.resolvedKotlinLibrary),
|
||||||
|
stdlibInfo.capabilities
|
||||||
|
)
|
||||||
|
|
||||||
|
val languageVersionSettings = IDELanguageSettingsProvider.getLanguageVersionSettings(
|
||||||
|
stdlibInfo,
|
||||||
|
project,
|
||||||
|
isReleaseCoroutines = false
|
||||||
|
)
|
||||||
|
|
||||||
|
val stdlibPackageFragmentProvider = createKlibPackageFragmentProvider(
|
||||||
|
stdlibInfo,
|
||||||
|
storageManager,
|
||||||
|
languageVersionSettings,
|
||||||
|
builtInsModule
|
||||||
|
) ?: return DefaultBuiltIns.Instance
|
||||||
|
|
||||||
|
builtInsModule.initialize(
|
||||||
|
CompositePackageFragmentProvider(
|
||||||
|
listOf(
|
||||||
|
stdlibPackageFragmentProvider,
|
||||||
|
functionInterfacePackageFragmentProvider(storageManager, builtInsModule),
|
||||||
|
(metadataFactories.DefaultDeserializedDescriptorFactory as KlibMetadataModuleDescriptorFactoryImpl)
|
||||||
|
.createForwardDeclarationHackPackagePartProvider(storageManager, builtInsModule)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
builtInsModule.setDependencies(listOf(builtInsModule))
|
||||||
|
|
||||||
|
return builtInsModule.builtIns
|
||||||
|
}
|
||||||
|
|
||||||
object NativeBuiltInsCacheKey : BuiltInsCacheKey
|
object NativeBuiltInsCacheKey : BuiltInsCacheKey
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val metadataFactories = KlibMetadataFactories(::KonanBuiltIns, NullFlexibleTypeDeserializer)
|
private val metadataFactories = KlibMetadataFactories(::KonanBuiltIns, NullFlexibleTypeDeserializer)
|
||||||
|
|
||||||
fun createNativeKlibPackageFragmentProvider(
|
|
||||||
moduleInfo: ModuleInfo,
|
|
||||||
storageManager: StorageManager,
|
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
|
||||||
moduleDescriptor: ModuleDescriptor
|
|
||||||
): PackageFragmentProvider? {
|
|
||||||
return (moduleInfo as? NativeKlibLibraryInfo)
|
|
||||||
?.resolvedKotlinLibrary
|
|
||||||
?.createKlibPackageFragmentProvider(
|
|
||||||
storageManager = storageManager,
|
|
||||||
metadataModuleDescriptorFactory = metadataFactories.DefaultDeserializedDescriptorFactory,
|
|
||||||
languageVersionSettings = languageVersionSettings,
|
|
||||||
moduleDescriptor = moduleDescriptor
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun createKotlinNativeBuiltIns(moduleInfo: ModuleInfo, projectContext: ProjectContext): KotlinBuiltIns {
|
|
||||||
val stdlibInfo = moduleInfo.findNativeStdlib() ?: return DefaultBuiltIns.Instance
|
|
||||||
|
|
||||||
val project = projectContext.project
|
|
||||||
val storageManager = projectContext.storageManager
|
|
||||||
|
|
||||||
val builtInsModule = metadataFactories.DefaultDescriptorFactory.createDescriptorAndNewBuiltIns(
|
|
||||||
KotlinBuiltIns.BUILTINS_MODULE_NAME,
|
|
||||||
storageManager,
|
|
||||||
DeserializedKlibModuleOrigin(stdlibInfo.resolvedKotlinLibrary),
|
|
||||||
stdlibInfo.capabilities
|
|
||||||
)
|
|
||||||
|
|
||||||
val languageVersionSettings = IDELanguageSettingsProvider.getLanguageVersionSettings(
|
|
||||||
stdlibInfo,
|
|
||||||
project,
|
|
||||||
isReleaseCoroutines = false
|
|
||||||
)
|
|
||||||
|
|
||||||
val stdlibPackageFragmentProvider = createNativeKlibPackageFragmentProvider(
|
|
||||||
stdlibInfo,
|
|
||||||
storageManager,
|
|
||||||
languageVersionSettings,
|
|
||||||
builtInsModule
|
|
||||||
) ?: return DefaultBuiltIns.Instance
|
|
||||||
|
|
||||||
builtInsModule.initialize(
|
|
||||||
CompositePackageFragmentProvider(
|
|
||||||
listOf(
|
|
||||||
stdlibPackageFragmentProvider,
|
|
||||||
functionInterfacePackageFragmentProvider(storageManager, builtInsModule),
|
|
||||||
(metadataFactories.DefaultDeserializedDescriptorFactory as KlibMetadataModuleDescriptorFactoryImpl)
|
|
||||||
.createForwardDeclarationHackPackagePartProvider(storageManager, builtInsModule)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
builtInsModule.setDependencies(listOf(builtInsModule))
|
|
||||||
|
|
||||||
return builtInsModule.builtIns
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun ModuleInfo.findNativeStdlib(): NativeKlibLibraryInfo? =
|
private fun ModuleInfo.findNativeStdlib(): NativeKlibLibraryInfo? =
|
||||||
dependencies().lazyClosure { it.dependencies() }
|
dependencies().lazyClosure { it.dependencies() }
|
||||||
.filterIsInstance<NativeKlibLibraryInfo>()
|
.filterIsInstance<NativeKlibLibraryInfo>()
|
||||||
|
|||||||
+9
-7
@@ -6,14 +6,15 @@
|
|||||||
package org.jetbrains.kotlin.ide.konan.analyzer
|
package org.jetbrains.kotlin.ide.konan.analyzer
|
||||||
|
|
||||||
import org.jetbrains.kotlin.analyzer.*
|
import org.jetbrains.kotlin.analyzer.*
|
||||||
|
import org.jetbrains.kotlin.caches.resolve.resolution
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.context.ModuleContext
|
import org.jetbrains.kotlin.context.ModuleContext
|
||||||
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.frontend.di.createContainerForLazyResolve
|
import org.jetbrains.kotlin.frontend.di.createContainerForLazyResolve
|
||||||
import org.jetbrains.kotlin.ide.konan.NativePlatformKindResolution.Companion.createNativeKlibPackageFragmentProvider
|
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
|
import org.jetbrains.kotlin.platform.idePlatformKind
|
||||||
import org.jetbrains.kotlin.platform.konan.NativePlatforms
|
import org.jetbrains.kotlin.platform.konan.NativePlatforms
|
||||||
import org.jetbrains.kotlin.resolve.CodeAnalyzerInitializer
|
import org.jetbrains.kotlin.resolve.CodeAnalyzerInitializer
|
||||||
import org.jetbrains.kotlin.resolve.TargetEnvironment
|
import org.jetbrains.kotlin.resolve.TargetEnvironment
|
||||||
@@ -54,12 +55,13 @@ class NativeResolverForModuleFactory(
|
|||||||
|
|
||||||
var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider
|
var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider
|
||||||
|
|
||||||
val klibPackageFragmentProvider = createNativeKlibPackageFragmentProvider(
|
val klibPackageFragmentProvider =
|
||||||
moduleContent.moduleInfo,
|
NativePlatforms.defaultNativePlatform.idePlatformKind.resolution.createKlibPackageFragmentProvider(
|
||||||
moduleContext.storageManager,
|
moduleContent.moduleInfo,
|
||||||
languageVersionSettings,
|
moduleContext.storageManager,
|
||||||
moduleDescriptor
|
languageVersionSettings,
|
||||||
)
|
moduleDescriptor
|
||||||
|
)
|
||||||
|
|
||||||
if (klibPackageFragmentProvider != null) {
|
if (klibPackageFragmentProvider != null) {
|
||||||
packageFragmentProvider = CompositePackageFragmentProvider(listOf(packageFragmentProvider, klibPackageFragmentProvider))
|
packageFragmentProvider = CompositePackageFragmentProvider(listOf(packageFragmentProvider, klibPackageFragmentProvider))
|
||||||
|
|||||||
Reference in New Issue
Block a user