Add ability to provide specific AbsentDescriptorHandler
#EA-457188 Merge-request: KT-MR-8900 Merged-by: Vladimir Dolzhenko <Vladimir.Dolzhenko@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
41278d0797
commit
3e99807436
@@ -51,6 +51,7 @@ import org.jetbrains.kotlin.resolve.jvm.extensions.SyntheticJavaResolveExtension
|
||||
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.AbsentDescriptorHandler
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.resolve.scopes.optimization.OptimizingOptions
|
||||
|
||||
@@ -74,10 +75,11 @@ fun createContainerForLazyResolveWithJava(
|
||||
implicitsResolutionFilter: ImplicitsExtensionsResolutionFilter? = null,
|
||||
sealedInheritorsProvider: SealedClassInheritorsProvider = CliSealedClassInheritorsProvider,
|
||||
optimizingOptions: OptimizingOptions? = null,
|
||||
absentDescriptorHandlerClass: Class<out AbsentDescriptorHandler>? = null
|
||||
): StorageComponentContainer = createContainer("LazyResolveWithJava", JvmPlatformAnalyzerServices) {
|
||||
configureModule(
|
||||
moduleContext, jvmPlatform, JvmPlatformAnalyzerServices, bindingTrace, languageVersionSettings,
|
||||
sealedInheritorsProvider, optimizingOptions
|
||||
sealedInheritorsProvider, optimizingOptions, absentDescriptorHandlerClass
|
||||
)
|
||||
|
||||
configureIncrementalCompilation(lookupTracker, expectActualTracker, inlineConstTracker, enumWhenTracker)
|
||||
@@ -96,7 +98,6 @@ fun createContainerForLazyResolveWithJava(
|
||||
)
|
||||
|
||||
targetEnvironment.configure(this)
|
||||
|
||||
}.apply {
|
||||
initializeJavaSpecificComponents(bindingTrace)
|
||||
}
|
||||
|
||||
+5
-3
@@ -19,8 +19,7 @@ package org.jetbrains.kotlin.resolve.jvm
|
||||
import org.jetbrains.kotlin.analyzer.*
|
||||
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltInsPackageFragmentProvider
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.container.get
|
||||
import org.jetbrains.kotlin.container.tryGetService
|
||||
import org.jetbrains.kotlin.container.*
|
||||
import org.jetbrains.kotlin.context.ModuleContext
|
||||
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
@@ -38,6 +37,7 @@ import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.resolve.SealedClassInheritorsProvider
|
||||
import org.jetbrains.kotlin.resolve.TargetEnvironment
|
||||
import org.jetbrains.kotlin.resolve.jvm.extensions.PackageFragmentProviderExtension
|
||||
import org.jetbrains.kotlin.resolve.lazy.AbsentDescriptorHandler
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
|
||||
import org.jetbrains.kotlin.resolve.scopes.optimization.OptimizingOptions
|
||||
@@ -64,7 +64,8 @@ class JvmResolverForModuleFactory(
|
||||
resolverForProject: ResolverForProject<M>,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
sealedInheritorsProvider: SealedClassInheritorsProvider,
|
||||
resolveOptimizingOptions: OptimizingOptions?
|
||||
resolveOptimizingOptions: OptimizingOptions?,
|
||||
absentDescriptorHandlerClass: Class<out AbsentDescriptorHandler>?
|
||||
): ResolverForModule {
|
||||
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
|
||||
val project = moduleContext.project
|
||||
@@ -123,6 +124,7 @@ class JvmResolverForModuleFactory(
|
||||
sealedInheritorsProvider = sealedInheritorsProvider,
|
||||
useBuiltInsProvider = platformParameters.useBuiltinsProviderForModule(moduleInfo),
|
||||
optimizingOptions = resolveOptimizingOptions,
|
||||
absentDescriptorHandlerClass = absentDescriptorHandlerClass
|
||||
)
|
||||
|
||||
val providersForModule = arrayListOf(
|
||||
|
||||
Reference in New Issue
Block a user