PlatformConfigurator: create container for each platform (it contains static services, mostly checkers) ahead of time

This commit is contained in:
Pavel V. Talanov
2016-09-22 16:37:30 +03:00
parent be00a6ec49
commit 32daf048c2
10 changed files with 62 additions and 53 deletions
@@ -18,7 +18,10 @@ package org.jetbrains.kotlin.cli.jvm.repl.di
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.container.*
import org.jetbrains.kotlin.container.StorageComponentContainer
import org.jetbrains.kotlin.container.getValue
import org.jetbrains.kotlin.container.useImpl
import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.descriptors.PackagePartProvider
import org.jetbrains.kotlin.frontend.di.configureModule
@@ -30,6 +33,7 @@ import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver
import org.jetbrains.kotlin.resolve.BindingTrace
import org.jetbrains.kotlin.resolve.CompilerEnvironment
import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel
import org.jetbrains.kotlin.resolve.createContainer
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
@@ -41,7 +45,7 @@ fun createContainerForReplWithJava(
declarationProviderFactory: DeclarationProviderFactory,
moduleContentScope: GlobalSearchScope,
packagePartProvider: PackagePartProvider
): ContainerForReplWithJava = createContainer("ReplWithJava") {
): ContainerForReplWithJava = createContainer("ReplWithJava", JvmPlatform) {
useInstance(packagePartProvider)
configureModule(moduleContext, JvmPlatform, bindingTrace)
configureJavaTopDownAnalysis(moduleContentScope, moduleContext.project, LookupTracker.DO_NOTHING, LanguageVersionSettingsImpl.DEFAULT)