Remove PackagePartProvider from ResolverForProjectImpl

To be able to move it to JVM-specific modules, and to provide a
replacement for common module analysis
This commit is contained in:
Alexander Udalov
2018-01-18 16:21:02 +01:00
parent 33bd1b23a2
commit e25bc2865f
7 changed files with 54 additions and 31 deletions
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.resolve.lazy.ResolveSession
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
class JvmPlatformParameters(
val packagePartProviderFactory: (ModuleContent<*>) -> PackagePartProvider,
val moduleByJavaClass: (JavaClass) -> ModuleInfo?
) : PlatformAnalysisParameters
@@ -52,8 +53,7 @@ object JvmAnalyzerFacade : ResolverForModuleFactory() {
targetEnvironment: TargetEnvironment,
resolverForProject: ResolverForProject<M>,
languageVersionSettings: LanguageVersionSettings,
targetPlatformVersion: TargetPlatformVersion,
packagePartProvider: PackagePartProvider
targetPlatformVersion: TargetPlatformVersion
): ResolverForModule {
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
val project = moduleContext.project
@@ -86,6 +86,7 @@ object JvmAnalyzerFacade : ResolverForModuleFactory() {
val trace = CodeAnalyzerInitializer.getInstance(project).createTrace()
val lookupTracker = LookupTracker.DO_NOTHING
val packagePartProvider = (platformParameters as JvmPlatformParameters).packagePartProviderFactory(moduleContent)
val container = createContainerForLazyResolveWithJava(
moduleContext,
trace,