Create built-ins via ProjectContext instead of GlobalContext
This commit is contained in:
committed by
Mikhail Glukhikh
parent
d8937936a9
commit
08a66b61c2
+2
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.analyzer.ResolverForModuleFactory
|
||||
import org.jetbrains.kotlin.analyzer.common.CommonAnalyzerFacade
|
||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.context.GlobalContextImpl
|
||||
import org.jetbrains.kotlin.context.ProjectContext
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.PlatformAnalysisSettings
|
||||
import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind
|
||||
|
||||
@@ -19,7 +19,7 @@ class CommonPlatformKindResolution : IdePlatformKindResolution {
|
||||
override val resolverForModuleFactory: ResolverForModuleFactory
|
||||
get() = CommonAnalyzerFacade
|
||||
|
||||
override fun createBuiltIns(settings: PlatformAnalysisSettings, sdkContext: GlobalContextImpl): KotlinBuiltIns {
|
||||
override fun createBuiltIns(settings: PlatformAnalysisSettings, projectContext: ProjectContext): KotlinBuiltIns {
|
||||
return DefaultBuiltIns.Instance
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.caches.resolve
|
||||
import org.jetbrains.kotlin.extensions.ApplicationExtensionDescriptor
|
||||
import org.jetbrains.kotlin.analyzer.ResolverForModuleFactory
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.context.GlobalContextImpl
|
||||
import org.jetbrains.kotlin.context.ProjectContext
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.PlatformAnalysisSettings
|
||||
import org.jetbrains.kotlin.platform.IdePlatformKind
|
||||
|
||||
@@ -28,7 +28,7 @@ interface IdePlatformKindResolution {
|
||||
|
||||
val resolverForModuleFactory: ResolverForModuleFactory
|
||||
|
||||
fun createBuiltIns(settings: PlatformAnalysisSettings, sdkContext: GlobalContextImpl): KotlinBuiltIns
|
||||
fun createBuiltIns(settings: PlatformAnalysisSettings, projectContext: ProjectContext): KotlinBuiltIns
|
||||
|
||||
companion object : ApplicationExtensionDescriptor<IdePlatformKindResolution>(
|
||||
"org.jetbrains.kotlin.idePlatformKindResolution", IdePlatformKindResolution::class.java
|
||||
|
||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.caches.resolve
|
||||
|
||||
import org.jetbrains.kotlin.analyzer.ResolverForModuleFactory
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.context.GlobalContextImpl
|
||||
import org.jetbrains.kotlin.context.ProjectContext
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.JsAnalyzerFacade
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.PlatformAnalysisSettings
|
||||
import org.jetbrains.kotlin.js.resolve.JsPlatform
|
||||
@@ -19,7 +19,7 @@ class JsPlatformKindResolution : IdePlatformKindResolution {
|
||||
override val resolverForModuleFactory: ResolverForModuleFactory
|
||||
get() = JsAnalyzerFacade
|
||||
|
||||
override fun createBuiltIns(settings: PlatformAnalysisSettings, sdkContext: GlobalContextImpl): KotlinBuiltIns {
|
||||
override fun createBuiltIns(settings: PlatformAnalysisSettings, projectContext: ProjectContext): KotlinBuiltIns {
|
||||
return JsPlatform.builtIns
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.analyzer.ResolverForModuleFactory
|
||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
|
||||
import org.jetbrains.kotlin.context.GlobalContextImpl
|
||||
import org.jetbrains.kotlin.context.ProjectContext
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.PlatformAnalysisSettings
|
||||
import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind
|
||||
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
|
||||
@@ -20,7 +20,7 @@ class JvmPlatformKindResolution : IdePlatformKindResolution {
|
||||
override val resolverForModuleFactory: ResolverForModuleFactory
|
||||
get() = JvmAnalyzerFacade
|
||||
|
||||
override fun createBuiltIns(settings: PlatformAnalysisSettings, sdkContext: GlobalContextImpl): KotlinBuiltIns {
|
||||
return if (settings.sdk != null) JvmBuiltIns(sdkContext.storageManager) else DefaultBuiltIns.Instance
|
||||
override fun createBuiltIns(settings: PlatformAnalysisSettings, projectContext: ProjectContext): KotlinBuiltIns {
|
||||
return if (settings.sdk != null) JvmBuiltIns(projectContext.storageManager) else DefaultBuiltIns.Instance
|
||||
}
|
||||
}
|
||||
+8
-5
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
|
||||
import org.jetbrains.kotlin.caches.resolve.resolution
|
||||
import org.jetbrains.kotlin.context.GlobalContextImpl
|
||||
import org.jetbrains.kotlin.context.ProjectContext
|
||||
import org.jetbrains.kotlin.context.withProject
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.project.*
|
||||
@@ -101,10 +102,11 @@ internal class ProjectResolutionFacade(
|
||||
delegateResolverForProject = EmptyResolverForProject()
|
||||
delegateBuiltIns = null
|
||||
}
|
||||
val projectContext = globalContext.withProject(project)
|
||||
|
||||
val builtIns = delegateBuiltIns ?: createBuiltIns(
|
||||
settings,
|
||||
globalContext
|
||||
projectContext
|
||||
)
|
||||
|
||||
val allModuleInfos = (allModules ?: getModuleInfosFromIdeaModel(project, settings.platform)).toMutableSet()
|
||||
@@ -133,7 +135,7 @@ internal class ProjectResolutionFacade(
|
||||
|
||||
val resolverForProject = ResolverForProjectImpl(
|
||||
resolverDebugName,
|
||||
globalContext.withProject(project),
|
||||
projectContext,
|
||||
modulesToCreateResolversFor,
|
||||
modulesContentFactory,
|
||||
modulePlatforms = { module -> module.platform?.multiTargetPlatform },
|
||||
@@ -179,7 +181,8 @@ internal class ProjectResolutionFacade(
|
||||
?: cachedResolverForProject.diagnoseUnknownModuleInfo(infos.toList())
|
||||
}
|
||||
|
||||
internal fun resolverForDescriptor(moduleDescriptor: ModuleDescriptor) = cachedResolverForProject.resolverForModuleDescriptor(moduleDescriptor)
|
||||
internal fun resolverForDescriptor(moduleDescriptor: ModuleDescriptor) =
|
||||
cachedResolverForProject.resolverForModuleDescriptor(moduleDescriptor)
|
||||
|
||||
internal fun findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo): ModuleDescriptor {
|
||||
return cachedResolverForProject.descriptorForModule(ideaModuleInfo)
|
||||
@@ -211,8 +214,8 @@ internal class ProjectResolutionFacade(
|
||||
}
|
||||
|
||||
private companion object {
|
||||
private fun createBuiltIns(settings: PlatformAnalysisSettings, sdkContext: GlobalContextImpl): KotlinBuiltIns {
|
||||
return settings.platform.idePlatformKind.resolution.createBuiltIns(settings, sdkContext)
|
||||
private fun createBuiltIns(settings: PlatformAnalysisSettings, projectContext: ProjectContext): KotlinBuiltIns {
|
||||
return settings.platform.idePlatformKind.resolution.createBuiltIns(settings, projectContext)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user