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