Allow skipping extensions resolution for implicit receivers

This commit is contained in:
Ilya Muradyan
2020-06-04 13:43:31 +03:00
committed by Ilya Chernikov
parent e93bcc55ae
commit 017f640f26
7 changed files with 77 additions and 17 deletions
@@ -42,6 +42,7 @@ import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.resolve.*
import org.jetbrains.kotlin.resolve.calls.tower.ImplicitsExtensionsResolutionFilter
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
import org.jetbrains.kotlin.resolve.jvm.JvmDiagnosticComponents
import org.jetbrains.kotlin.resolve.jvm.multiplatform.OptionalAnnotationPackageFragmentProvider
@@ -63,7 +64,8 @@ fun createContainerForLazyResolveWithJava(
languageVersionSettings: LanguageVersionSettings,
useBuiltInsProvider: Boolean,
configureJavaClassFinder: (StorageComponentContainer.() -> Unit)? = null,
javaClassTracker: JavaClassesTracker? = null
javaClassTracker: JavaClassesTracker? = null,
implicitsResolutionFilter: ImplicitsExtensionsResolutionFilter? = null,
): StorageComponentContainer = createContainer("LazyResolveWithJava", JvmPlatformAnalyzerServices) {
configureModule(moduleContext, jvmPlatform, JvmPlatformAnalyzerServices, bindingTrace, languageVersionSettings)
@@ -73,6 +75,7 @@ fun createContainerForLazyResolveWithJava(
useInstance(moduleContentScope)
useInstance(packagePartProvider)
useInstance(declarationProviderFactory)
useInstanceIfNotNull(implicitsResolutionFilter)
useInstance(VirtualFileFinderFactory.getInstance(moduleContext.project).create(moduleContentScope))