Refactor AnalyzerFacade: move module.initialize() outside of createResolverForModule()
This commit is contained in:
@@ -21,6 +21,7 @@ import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analyzer.*
|
||||
import org.jetbrains.kotlin.context.ModuleContext
|
||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.di.InjectorForLazyResolveWithJava
|
||||
@@ -36,6 +37,7 @@ import kotlin.platform.platformStatic
|
||||
|
||||
public class JvmResolverForModule(
|
||||
override val lazyResolveSession: ResolveSession,
|
||||
override val packageFragmentProvider: PackageFragmentProvider,
|
||||
public val javaDescriptorResolver: JavaDescriptorResolver
|
||||
) : ResolverForModule
|
||||
|
||||
@@ -75,8 +77,7 @@ public object JvmAnalyzerFacade : AnalyzerFacade<JvmResolverForModule, JvmPlatfo
|
||||
val resolveSession = injector.getResolveSession()!!
|
||||
val javaDescriptorResolver = injector.getJavaDescriptorResolver()!!
|
||||
val providersForModule = listOf(resolveSession.getPackageFragmentProvider(), javaDescriptorResolver.packageFragmentProvider)
|
||||
moduleDescriptor.initialize(CompositePackageFragmentProvider(providersForModule))
|
||||
return JvmResolverForModule(resolveSession, javaDescriptorResolver)
|
||||
return JvmResolverForModule(resolveSession, CompositePackageFragmentProvider(providersForModule), javaDescriptorResolver)
|
||||
}
|
||||
|
||||
override val moduleParameters: ModuleParameters
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.context.ProjectContext
|
||||
import org.jetbrains.kotlin.context.withModule
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.impl.LazyModuleDependencies
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -34,6 +35,7 @@ import kotlin.properties.Delegates
|
||||
|
||||
public trait ResolverForModule {
|
||||
public val lazyResolveSession: ResolveSession
|
||||
public val packageFragmentProvider: PackageFragmentProvider
|
||||
}
|
||||
|
||||
public trait ResolverForProject<M : ModuleInfo,out R : ResolverForModule> {
|
||||
@@ -178,7 +180,7 @@ public trait AnalyzerFacade<A : ResolverForModule, in P : PlatformAnalysisParame
|
||||
module, descriptor, projectContext.withModule(descriptor),
|
||||
modulesContent(module), platformParameters, resolverForProject
|
||||
)
|
||||
assert(descriptor.isInitialized, "ModuleDescriptorImpl#initialize() should be called in createResolverForModule")
|
||||
descriptor.initialize(resolverForModule.packageFragmentProvider)
|
||||
resolverForProject.resolverByModuleDescriptor[descriptor] = resolverForModule
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public class ModuleDescriptorImpl(
|
||||
})
|
||||
}
|
||||
|
||||
public val isInitialized: Boolean
|
||||
private val isInitialized: Boolean
|
||||
get() = packageFragmentProviderForModuleContent != null
|
||||
|
||||
public fun setDependencies(dependencies: ModuleDependencies) {
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.intellij.util.PathUtil
|
||||
import org.jetbrains.kotlin.analyzer.*
|
||||
import org.jetbrains.kotlin.context.ModuleContext
|
||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.di.InjectorForLazyResolve
|
||||
@@ -36,10 +37,10 @@ import org.jetbrains.kotlin.types.DynamicTypesAllowed
|
||||
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
||||
|
||||
public class JsResolverForModule(
|
||||
override val lazyResolveSession: ResolveSession
|
||||
override val lazyResolveSession: ResolveSession,
|
||||
override val packageFragmentProvider: PackageFragmentProvider
|
||||
) : ResolverForModule
|
||||
|
||||
|
||||
public object JsAnalyzerFacade : AnalyzerFacade<JsResolverForModule, PlatformAnalysisParameters> {
|
||||
|
||||
override fun <M : ModuleInfo> createResolverForModule(
|
||||
@@ -72,8 +73,7 @@ public object JsAnalyzerFacade : AnalyzerFacade<JsResolverForModule, PlatformAna
|
||||
}
|
||||
}
|
||||
|
||||
moduleDescriptor.initialize(packageFragmentProvider)
|
||||
return JsResolverForModule(resolveSession)
|
||||
return JsResolverForModule(resolveSession, packageFragmentProvider)
|
||||
}
|
||||
|
||||
override val moduleParameters: ModuleParameters
|
||||
|
||||
Reference in New Issue
Block a user