KTIJ-664 [SealedClassInheritorsProvider]: IDE-specific implementation

This commit is contained in:
Andrei Klunnyi
2020-12-10 15:09:16 +01:00
parent f02b73103b
commit 3af0257b38
17 changed files with 181 additions and 24 deletions
@@ -32,6 +32,8 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.platform.TargetPlatformVersion
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.SealedClassInheritorsProvider
import org.jetbrains.kotlin.resolve.CliSealedClassInheritorsProvider
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.storage.getValue
import java.util.*
@@ -119,7 +121,8 @@ abstract class ResolverForModuleFactory {
moduleContext: ModuleContext,
moduleContent: ModuleContent<M>,
resolverForProject: ResolverForProject<M>,
languageVersionSettings: LanguageVersionSettings
languageVersionSettings: LanguageVersionSettings,
sealedInheritorsProvider: SealedClassInheritorsProvider = CliSealedClassInheritorsProvider
): ResolverForModule
}
@@ -85,7 +85,8 @@ class CommonResolverForModuleFactory(
moduleContext: ModuleContext,
moduleContent: ModuleContent<M>,
resolverForProject: ResolverForProject<M>,
languageVersionSettings: LanguageVersionSettings
languageVersionSettings: LanguageVersionSettings,
sealedInheritorsProvider: SealedClassInheritorsProvider
): ResolverForModule {
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
val project = moduleContext.project
@@ -51,8 +51,10 @@ fun StorageComponentContainer.configureModule(
platform: TargetPlatform,
analyzerServices: PlatformDependentAnalyzerServices,
trace: BindingTrace,
languageVersionSettings: LanguageVersionSettings
languageVersionSettings: LanguageVersionSettings,
sealedProvider: SealedClassInheritorsProvider = CliSealedClassInheritorsProvider
) {
useInstance(sealedProvider)
useInstance(moduleContext)
useInstance(moduleContext.module)
useInstance(moduleContext.project)
@@ -103,7 +105,6 @@ private fun StorageComponentContainer.configurePlatformIndependentComponents() {
useImpl<ClassicTypeSystemContextForCS>()
useImpl<ClassicConstraintSystemUtilContext>()
useInstance(ProgressManagerBasedCancellationChecker)
useInstance(SealedClassInheritorsProviderImpl)
}
/**