Add option for skipping calculating all names for optimizing reasons in LazyImportScope

This commit is contained in:
Ilya Muradyan
2022-10-12 01:25:42 +02:00
parent 4a58274056
commit 8d12342fc6
7 changed files with 56 additions and 9 deletions
@@ -52,6 +52,7 @@ import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
import org.jetbrains.kotlin.resolve.jvm.multiplatform.OptionalAnnotationPackageFragmentProvider
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
import org.jetbrains.kotlin.resolve.scopes.optimization.OptimizingOptions
fun createContainerForLazyResolveWithJava(
jvmPlatform: TargetPlatform,
@@ -71,11 +72,12 @@ fun createContainerForLazyResolveWithJava(
configureJavaClassFinder: (StorageComponentContainer.() -> Unit)? = null,
javaClassTracker: JavaClassesTracker? = null,
implicitsResolutionFilter: ImplicitsExtensionsResolutionFilter? = null,
sealedInheritorsProvider: SealedClassInheritorsProvider = CliSealedClassInheritorsProvider
sealedInheritorsProvider: SealedClassInheritorsProvider = CliSealedClassInheritorsProvider,
optimizingOptions: OptimizingOptions? = null,
): StorageComponentContainer = createContainer("LazyResolveWithJava", JvmPlatformAnalyzerServices) {
configureModule(
moduleContext, jvmPlatform, JvmPlatformAnalyzerServices, bindingTrace, languageVersionSettings,
sealedInheritorsProvider
sealedInheritorsProvider, optimizingOptions
)
configureIncrementalCompilation(lookupTracker, expectActualTracker, inlineConstTracker, enumWhenTracker)
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.resolve.TargetEnvironment
import org.jetbrains.kotlin.resolve.jvm.extensions.PackageFragmentProviderExtension
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
import org.jetbrains.kotlin.resolve.scopes.optimization.OptimizingOptions
import org.jetbrains.kotlin.utils.addIfNotNull
class JvmPlatformParameters(
@@ -62,7 +63,8 @@ class JvmResolverForModuleFactory(
moduleContent: ModuleContent<M>,
resolverForProject: ResolverForProject<M>,
languageVersionSettings: LanguageVersionSettings,
sealedInheritorsProvider: SealedClassInheritorsProvider
sealedInheritorsProvider: SealedClassInheritorsProvider,
resolveOptimizingOptions: OptimizingOptions?
): ResolverForModule {
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
val project = moduleContext.project
@@ -119,7 +121,8 @@ class JvmResolverForModuleFactory(
packagePartProvider,
languageVersionSettings,
sealedInheritorsProvider = sealedInheritorsProvider,
useBuiltInsProvider = platformParameters.useBuiltinsProviderForModule(moduleInfo)
useBuiltInsProvider = platformParameters.useBuiltinsProviderForModule(moduleInfo),
optimizingOptions = resolveOptimizingOptions,
)
val providersForModule = arrayListOf(