Choose SDK consistently at least for non-COMPOSITE analysis
In COMPOSITE analysis we don't have a constant SDK dependency for whole ResolutionFacade, so we have to find it manually via calling 'findSdkAcrossDependencies' In SEPARATE mode we do have such a constant SDK dependency, but there was an assumption that it doesn't make a difference (i.e. findSdkAcrossDependencies always return the same SDK as passed constant one) Turns out that assumption was wrong, particularly for projects with duplicate SDK entries in project structure. Then we would choose one SDK in some cases, and the other one on other cases - even though they a bit-to-bit equal, we will create separate descriptors for them, which might lead to some issues, like in KT-34802 ^KT-34802 Fixed
This commit is contained in:
@@ -30,7 +30,9 @@ import org.jetbrains.kotlin.descriptors.konan.KlibModuleOrigin
|
||||
import org.jetbrains.kotlin.ide.konan.NativeLibraryInfo.Companion.safeAbiVersion
|
||||
import org.jetbrains.kotlin.ide.konan.NativeLibraryInfo.Companion.isCompatible
|
||||
import org.jetbrains.kotlin.ide.konan.analyzer.NativeResolverForModuleFactory
|
||||
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
||||
import org.jetbrains.kotlin.idea.caches.project.LibraryInfo
|
||||
import org.jetbrains.kotlin.idea.caches.project.SdkInfo
|
||||
import org.jetbrains.kotlin.idea.caches.project.lazyClosure
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.BuiltInsCacheKey
|
||||
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
||||
@@ -130,7 +132,7 @@ class NativePlatformKindResolution : IdePlatformKindResolution {
|
||||
|
||||
override fun getKeyForBuiltIns(moduleInfo: ModuleInfo): BuiltInsCacheKey = NativeBuiltInsCacheKey
|
||||
|
||||
override fun createBuiltIns(moduleInfo: ModuleInfo, projectContext: ProjectContext) =
|
||||
override fun createBuiltIns(moduleInfo: ModuleInfo, projectContext: ProjectContext, sdkDependency: SdkInfo?) =
|
||||
createKotlinNativeBuiltIns(moduleInfo, projectContext)
|
||||
|
||||
object NativeBuiltInsCacheKey : BuiltInsCacheKey
|
||||
|
||||
Reference in New Issue
Block a user