From 08a66b61c2b26060d6016f8b02924648ae087d22 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Thu, 6 Sep 2018 19:16:53 +0300 Subject: [PATCH] Create built-ins via ProjectContext instead of GlobalContext --- .../caches/resolve/CommonPlatformKindResolution.kt | 4 ++-- .../caches/resolve/IdePlatformKindResolution.kt | 4 ++-- .../caches/resolve/JsPlatformKindResolution.kt | 4 ++-- .../caches/resolve/JvmPlatformKindResolution.kt | 6 +++--- .../idea/caches/resolve/ProjectResolutionFacade.kt | 13 ++++++++----- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/CommonPlatformKindResolution.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/CommonPlatformKindResolution.kt index 2da9c840015..fe0e9b2055c 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/CommonPlatformKindResolution.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/CommonPlatformKindResolution.kt @@ -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 } } \ No newline at end of file diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/IdePlatformKindResolution.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/IdePlatformKindResolution.kt index 2de5ba91ab7..b78a8b7d842 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/IdePlatformKindResolution.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/IdePlatformKindResolution.kt @@ -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( "org.jetbrains.kotlin.idePlatformKindResolution", IdePlatformKindResolution::class.java diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/JsPlatformKindResolution.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/JsPlatformKindResolution.kt index 69421fa5488..6fa4d0340a9 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/JsPlatformKindResolution.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/JsPlatformKindResolution.kt @@ -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 } } \ No newline at end of file diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/JvmPlatformKindResolution.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/JvmPlatformKindResolution.kt index b324c07e2be..bec8d6b51a5 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/JvmPlatformKindResolution.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/caches/resolve/JvmPlatformKindResolution.kt @@ -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 } } \ No newline at end of file diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt index 3d0b81f9be1..d9541dd5172 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt @@ -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) } } }