Debug string for project resolution facade
This commit is contained in:
+8
@@ -71,6 +71,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
private val facadeForScriptDependencies by lazy {
|
||||
val globalContext = GlobalContext()
|
||||
ProjectResolutionFacade(
|
||||
"facadeForScriptDependencies",
|
||||
project, globalContext,
|
||||
globalResolveSessionProvider(
|
||||
"dependencies of scripts",
|
||||
@@ -89,6 +90,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
private inner class GlobalFacade(platform: TargetPlatform, sdk: Sdk?) {
|
||||
private val sdkContext = GlobalContext()
|
||||
val facadeForSdk = ProjectResolutionFacade(
|
||||
"facadeForSdk",
|
||||
project, sdkContext,
|
||||
globalResolveSessionProvider(
|
||||
"sdk $sdk",
|
||||
@@ -103,6 +105,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
|
||||
private val librariesContext = sdkContext.contextWithNewLockAndCompositeExceptionTracker()
|
||||
val facadeForLibraries = ProjectResolutionFacade(
|
||||
"facadeForLibraries",
|
||||
project, librariesContext,
|
||||
globalResolveSessionProvider(
|
||||
"project libraries for platform $platform",
|
||||
@@ -120,6 +123,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
|
||||
private val modulesContext = librariesContext.contextWithNewLockAndCompositeExceptionTracker()
|
||||
val facadeForModules = ProjectResolutionFacade(
|
||||
"facadeForModules",
|
||||
project, modulesContext,
|
||||
globalResolveSessionProvider(
|
||||
"project source roots and libraries for platform $platform",
|
||||
@@ -180,6 +184,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
val modulesFacade = globalFacade(targetPlatform, sdk)
|
||||
val globalContext = modulesFacade.globalContext.contextWithNewLockAndCompositeExceptionTracker()
|
||||
ProjectResolutionFacade(
|
||||
"facadeForSynthetic in ModuleSourceInfo",
|
||||
project, globalContext,
|
||||
makeGlobalResolveSessionProvider(
|
||||
reuseDataFrom = modulesFacade,
|
||||
@@ -190,6 +195,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
syntheticFileModule is ScriptModuleInfo || syntheticFileModule is ScriptDependenciesModuleInfo -> {
|
||||
val globalContext = facadeForScriptDependencies.globalContext.contextWithNewLockAndCompositeExceptionTracker()
|
||||
ProjectResolutionFacade(
|
||||
"facadeForSynthetic in ScriptModuleInfo",
|
||||
project, globalContext,
|
||||
makeGlobalResolveSessionProvider(
|
||||
reuseDataFrom = facadeForScriptDependencies,
|
||||
@@ -203,6 +209,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
val librariesFacade = librariesFacade(targetPlatform, sdk)
|
||||
val globalContext = librariesFacade.globalContext.contextWithNewLockAndCompositeExceptionTracker()
|
||||
ProjectResolutionFacade(
|
||||
"facadeForSynthetic in LibrarySourceInfo or NotUnderContentRootModuleInfo",
|
||||
project, globalContext,
|
||||
makeGlobalResolveSessionProvider(
|
||||
reuseDataFrom = librariesFacade,
|
||||
@@ -218,6 +225,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
||||
LOG.warn("Creating cache with synthetic files ($files) in classes of library $syntheticFileModule")
|
||||
val globalContext = GlobalContext()
|
||||
ProjectResolutionFacade(
|
||||
"facadeForSynthetic for file under both classes and root",
|
||||
project, globalContext,
|
||||
makeGlobalResolveSessionProvider()
|
||||
)
|
||||
|
||||
+5
-1
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||
|
||||
internal class ProjectResolutionFacade(
|
||||
val debugString: String,
|
||||
val project: Project,
|
||||
val globalContext: GlobalContextImpl,
|
||||
computeModuleResolverProvider: (GlobalContextImpl, Project) -> CachedValueProvider.Result<ModuleResolverProvider>
|
||||
@@ -88,6 +89,10 @@ internal class ProjectResolutionFacade(
|
||||
//TODO: (module refactoring) several elements are passed here in debugger
|
||||
AnalysisResult.success(bindingContext, findModuleDescriptor(elements.first().getModuleInfo()))
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "$debugString@${Integer.toHexString(hashCode())}"
|
||||
}
|
||||
}
|
||||
|
||||
internal class ResolutionFacadeImpl(
|
||||
@@ -134,7 +139,6 @@ internal class ResolutionFacadeImpl(
|
||||
override fun <T : Any> getFrontendService(moduleDescriptor: ModuleDescriptor, serviceClass: Class<T>): T {
|
||||
return projectFacade.resolverForDescriptor(moduleDescriptor).componentProvider.getService(serviceClass)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun ResolutionFacade.findModuleDescriptor(ideaModuleInfo: IdeaModuleInfo): ModuleDescriptor? {
|
||||
|
||||
Reference in New Issue
Block a user